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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top