94 votes

Inconvénients de MARS (plusieurs ensembles de résultats actifs)?

Est-ce que quelqu'un connaît les inconvénients de MARS (Multiple Active Result Set)? Est-ce que quelqu'un connaît une raison pour laquelle il faut éviter d'utiliser MARS, comme dans les cas où les curseurs sont plus utiles que MARS?

64voto

RobS Points 6280

Il y aurait au moins deux connus (potentiel) inconvénients (à partir de ce (1) du blog de l'Équipe):

  1. Évidemment, cela peut provoquer des problèmes pour les systèmes hérités qui n'était pas conçu pour s'exécuter sur un MARS activé design "code existant optimisé pour fonctionner dans le non-MARS monde peut présenter une légère performance dip lors d'une exécution non-modifiée avec MARS"

  2. "Avec MARS vous pouvez envoyer plusieurs multi-déclaration des lots pour le serveur. Le serveur s'entrelacent l'exécution de ces lots, ce qui signifie que si les lots de changement de l'état du serveur via le JEU ou UTILISER des déclarations, par exemple, ou de l'utilisation TSQL opération de gestion annuels (BEGIN TRAN, COMMIT, ROLLBACK), à la fois vous et le serveur peuvent obtenir confus quant à ce que votre objectif réel est."

Je n'ai pas encore essayer un MARS activé le design, mais je suis venue très près de le faire sur mon projet en cours. Nous avons un léger problème avec la concurrence (et parfois dépendantes) les opérations de requête (comme paresseux chargement des données de configuration de la base de données qu'un actif jeu d'enregistrements est en cours d'exécution).

Il n'y a plus d'informations sur le site MSDN (2) ici

[ (1) http://blogs.msdn.com/sqlnativeclient/archive/2006/09/27/774290.aspx ]
[ (2) http://msdn.microsoft.com/en-us/library/ms131686.aspx ]

6voto

Dave Markle Points 44637
  • Cela prend un peu plus de ressources serveur que de faire une connexion à la fois.
  • Vous devez exécuter SQL Server 2005 ou une version ultérieure. Cela peut donc poser problème dans les environnements hérités (ack!).

2voto

Mladen Prajdic Points 10337

en fonction de quoi? il n'y a pas de réel inconvénient.

ils ne prennent pas en charge les points de sauvegarde Transaction. mais je ne pense pas à cela comme un inconvénient.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X