Já vi várias pessoas ligarem SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
antes de ler os DMVs do sistema. Existe algum motivo para fazer isso, supondo que você não esteja misturando chamadas para DMVs e tabelas na mesma transação?
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Como um dos caras escreve consultas DMV de demonstração dessa maneira, explicarei o porquê.
Importa se você está apenas consultando DMVs? Não. Mas, mais cedo ou mais tarde, você pegará um de seus scripts DMV e adicionará uma junção a sys.databases ou sys.tables ou algum outro objeto do sistema para obter mais informações sobre o que está vendo. Se você não tiver lido não confirmado lá, poderá ser bloqueado por outras consultas e bloquear outras consultas. Eu fui queimado por isso repetidamente, então eu apenas uso READ UNCOMMITTED por padrão sempre que estou fazendo qualquer trabalho de diagnóstico.
Não vejo que faça diferença.
Se eu tentar o seguinte e comparar a saída de bloqueio para ambos os níveis de isolamento no winmerge, eles são exatamente os mesmos (e mesmo colocá-lo para
SERIALIZABLE
não altera a saída).