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?
Réponses
Trop de publicités?Il y aurait au moins deux connus (potentiel) inconvénients (à partir de ce (1) du blog de l'Équipe):
É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"
"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 ]