Estou executando uma importação de dados (usando C # / Linq) e, naturalmente, estou tentando otimizar minhas consultas o máximo possível. Para esse fim, estou executando um rastreamento no banco de dados usando o SQL Server Profiler, com meu rastreamento filtrado pelo meu nome de login do SQL (é um nome que pode ser atribuído exclusivamente ao meu processo de importação de dados).
Estranhamente, a maioria das minhas instruções SQL são realmente rápidas :) - muito poucas consultas ultrapassam a marca de 1 ms. Mas espaçadas entre todas as minhas consultas estão várias linhas onde a EventClass é "Audit Login" ou "Audit Logout" - e a duração de um "Audit Logout" pode ser de até um minuto!
Isso tem algo a ver com o fato de que estou usando transações na minha importação? Em caso afirmativo, há alguma maneira de descobrir quais são as consultas de maior impacto para que eu possa limpá-las?
fonte
Respostas:
Se bem me lembro, a duração de um logout de auditoria é a quantidade de tempo que a conexão ficou aberta. Por exemplo, nada a ver com a velocidade do comando - apenas a quantidade de tempo que o login permaneceu 'conectado'.
fonte
Reads
respostas à medição do tempo?Reads
coluna não representa as linhas retornadas pelas consultas, mas o número de leituras do disco lógico. Uma consulta que nem mesmo retorna nada pode varrer uma tabela inteira de 1 milhão de registros procurando o nada a ser retornado, o que geraria um número muito grande de leituras. Portanto, o número de leituras não está realmente correlacionado com o número de consultas.Os eventos de login / logout estão relacionados à configuração / desativação. IIRC o tempo é o 'estava conectado por tempo', em oposição a uma duração de processamento como com outros eventos de log.
Em geral, esses eventos são ocultados, a menos que você suspeite que haja um problema com o gerenciamento do pool de conexões, etc.
Os tempos brutos para os lotes devem ser suficientes para diagnosticar o tempo que a atividade real está levando, incluindo o impacto de quaisquer transações, etc.
fonte
A classe de evento Audit Logout indica que um usuário fez logoff (logoff) do Microsoft SQL Server. Os eventos nesta classe são disparados por novas conexões ou por conexões que são reutilizadas de um pool de conexão.
é o tempo total durante o qual a conexão esteve conectada, incluindo o tempo ocioso, portanto, não indica um problema de desempenho. Além disso, a criação de perfil de logins / logouts é muito improvável de causar problemas de desempenho. Seria melhor você procurar consultas de baixo desempenho, possivelmente consultas de longa duração.
Para obter mais informações, sugiro https://msdn.microsoft.com/en-us/library/ms175827.aspx :)
fonte
Também vale a pena observar que, nesta resposta, o Login / Logout de Auditoria pode significar apenas que a conexão está sendo reutilizada / retornada ao pool de conexão.
fonte