Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Desvantagens do MARS (Multiple Active Result Sets)?


Aparentemente, existem pelo menos duas desvantagens (potenciais) conhecidas (deste (1) Blog da equipe ):

  1. Obviamente, isso pode causar problemas em potencial para qualquer sistema legado que não foi projetado para ser executado em um design habilitado para MARS - "código existente otimizado para execução no mundo não MARS pode mostrar uma ligeira queda de desempenho quando executado sem modificações com MARTE"

  2. “Com MARS, você pode enviar vários lotes de várias instruções para o servidor. O servidor intercalará a execução de tais lotes, o que significa que se os lotes alterarem o estado do servidor por meio de instruções SET ou USE, por exemplo, ou usarem instruções de gerenciamento de transações TSQL (BEGIN TRAN, COMMIT, ROLLBACK), você e o servidor podem ficar confusos sobre qual é sua intenção real.”

Ainda não experimentei um design habilitado para MARS, mas estou muito perto de fazê-lo no meu projeto atual. Temos um pequeno problema com operações de consulta concorrentes (e às vezes dependentes) (como carregamento lento de dados de configuração do mesmo banco de dados que um conjunto de registros ativo está executando).

Há mais informações no site do MSDN (2) aqui

[ (1) https://web.archive.org/web/20190911155929/https://blogs.msdn.microsoft.com/sqlnativeclient/2006/09/27/using- mars-with-sql-native-client/ ]
[ (2) http://msdn.microsoft. com/en-us/library/ms131686.aspx ]