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?
fuente
Respuestas:
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".
fuente
Reads
respuestas a la medición del tiempo?Reads
columna 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.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.
fuente
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 :)
fuente
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.
fuente