¿Qué es "Audit Logout" en SQL Server Profiler?

91

Estoy ejecutando una importación de datos (usando C # / Linq) y, naturalmente, estoy tratando de optimizar mis consultas tanto como sea posible. Con este fin, estoy ejecutando un seguimiento en la base de datos utilizando SQL Server Profiler, con mi seguimiento filtrado por mi nombre de inicio de sesión de SQL (es un nombre que se puede atribuir únicamente a mi proceso de importación de datos).

Curiosamente, la mayoría de mis sentencias SQL son realmente rápidas :) - muy pocas consultas superan la marca de 1 ms. Pero espaciados entre todas mis consultas hay varias filas donde EventClass es "Audit Login" o "Audit Logout" - ¡y la duración de un "Audit Logout" puede ser de hasta un minuto!

¿Tiene esto algo que ver con el hecho de que estoy usando transacciones en mi importación? Si es así, ¿hay alguna forma de encontrar cuáles son las consultas de mayor éxito para poder limpiarlas?

Shaul Behr
fuente
relacionado: stackoverflow.com/questions/279401/…
Ruben Bartelink

Respuestas:

81

Si mal no recuerdo, la duración de un cierre de sesión de auditoría es la cantidad de tiempo que la conexión estuvo abierta. Por ejemplo, nada que ver con la velocidad del comando, solo la cantidad de tiempo que el inicio de sesión estuvo "conectado".

Thies
fuente
9
Interesante, gracias! Pero entonces, ¿por qué el número de lecturas es tan alto (~ 400.000) cuando el número de lecturas para las consultas entre el "inicio de sesión" y el "cierre de sesión" es sólo 56?
Shaul Behr
Es el número de ms desde el inicio de sesión hasta el cierre de sesión. No es la cantidad real de veces que se utilizaron las consultas dentro de la conexión. 400 000ms son aproximadamente 7 minutos. Mire la CPU, lea y escriba columnas para tratar de localizar consultas que tengan un alto uso de CPU y / o disco, ambos matando el rendimiento.
Thies
Lo siento, ¿te refieres a las Readsrespuestas a la medición del tiempo?
Johnny_D
1
El valor de "Lecturas" de cierre de sesión parece muy alto en el mío, considerando que sólo hay una operación con 3 lecturas entre ella y el inicio de sesión.
Triynko
1
Cabe señalar que la Readscolumna no representa las filas devueltas por las consultas, sino el número de lecturas del disco lógico. Una consulta que ni siquiera devuelve nada puede escanear una tabla completa de 1 millón de registros en busca de nada que devolver, lo que generaría una gran cantidad de lecturas. Por lo tanto, el número de lecturas no está realmente correlacionado de forma natural con el número de consultas.
Ritmo
12

Los eventos de inicio de sesión / cierre de sesión están relacionados con la configuración / eliminación. IIRC el tiempo es el "tiempo de inicio de sesión" en lugar de una duración de procesamiento como con otros eventos de registro.

En general, uno oculta estos eventos a menos que sospeche que hay un problema con la administración del grupo de conexiones, etc.

Los tiempos sin procesar de los lotes deben ser suficientes para diagnosticar el tiempo que tarda la actividad real, incluido el impacto de cualquier transacción, etc.

Ruben Bartelink
fuente
¿Es posible inspeccionar ese "montaje / desmontaje" con más detalle? Consulte la siguiente pregunta relacionada: stackoverflow.com/questions/44920375/…
Stefan
3

La clase de evento Audit Logout indica que un usuario se ha desconectado (desconectado) de Microsoft SQL Server. Los eventos de esta clase son activados por nuevas conexiones o por conexiones que se reutilizan desde un grupo de conexiones.

es el tiempo total durante el que se inició sesión en la conexión, incluido el tiempo de inactividad, por lo que no indica un problema de rendimiento. Además, es muy poco probable que la creación de perfiles de inicios de sesión / cierre de sesión cause un problema de rendimiento. Es mejor que busque consultas de bajo rendimiento, posiblemente consultas de larga duración.

Para obtener más información, sugiero https://msdn.microsoft.com/en-us/library/ms175827.aspx :)

Michele Caggiano
fuente
1
¿Está seguro de que los eventos de cierre de sesión de auditoría se activan cuando las conexiones se reutilizan desde un grupo de conexiones? Pensé agrupaciones de conexiones eran un ejemplo de una razón por la cual se pueden ver altas duraciones de Auditoría cierre de sesión, debido a que la conexión está abierta pero inactiva durante la mayor parte de su vida,
Adam Goodwin
2

También vale la pena señalar, como en esta respuesta, que Auditar inicio de sesión / cierre de sesión puede significar que la conexión se está reutilizando / devolviendo al grupo de conexiones.

Rory
fuente