SNIReadSync execução entre 120-500 ms para uma consulta simples. O que eu procuro?
-
05-07-2019 - |
Pergunta
Estou executando uma consulta simples contra SQL Server 2005:
protected static void InitConnection(IDbCommand cmd) {
cmd.CommandText = "set transaction isolation level read uncommitted ";
cmd.ExecuteNonQuery();
}
Sempre que um perfil com dotTrace 3.1, que afirma que o método SNIReadSync está tomando entre 100 -. 500 ms
Que tipo de coisas que eu preciso estar procurando a fim de obter desta vez para baixo?
Obrigado!
Solução
Eu não testei, mas me pergunto se você tem o mesmo problema se você usou um TransactionScope com as opções de IsolationLevel.ReadUncommitted. Você teria que encapsular o seu conjunto completo de chamadas e que deve negar a necessidade de esta declaração. Sei que esta afirmação não é sua preocupação básica, mas em geral.
Outra coisa que você pode fazer é criar uma classe DBConnectionScope (ou alavancagem classe de um fornecedor confiável) e reduzir o número total de conexões que são abertos.
Outras dicas
Certifique-se que o pool de conexão é habilitado ou receberá uma penalidade significativa cada vez que uma conexão é aberta. Em sua seqüência de conexão definir Pooling = True, ou remover qualquer referência a pooling. Eu acredito que o padrão é habilitado.
Esta corrigiu o problema para mim. Espero que ajude para você e outros.