Share via


Optimizar seguimiento de SQL

Aunque la ejecución de Traza de SQL supone un costo de rendimiento porque utiliza recursos del sistema para recopilar datos, dicho costo se puede reducir al mínimo de muchas maneras. Para minimizar el costo de rendimiento que provoca una traza, intente las siguientes acciones:

  • Considere el uso del símbolo del sistema para ejecutar seguimientos. El uso de una interfaz gráfica de usuario afecta negativamente al rendimiento. Para obtener más información, vea sp_trace_create (Transact-SQL).

  • Evite incluir eventos que tienen lugar con frecuencia. Si es posible, ajuste la traza con clases de eventos específicas y filtros. Si se recopilan menos eventos de traza, serán necesarios menos recursos del sistema para admitir las trazas.

  • Ajuste la traza para que sólo recopile eventos que proporcionen datos relevantes. Por ejemplo, si la traza va a identificar interbloqueos, incluya la clase de evento Lock:Deadlock, pero no la clase Lock:Acquired. Si incluye ambas clases de eventos, la traza debe responder a todos los bloqueos que se adquieren y el costo de ejecución se duplica.

  • Evite recopilar datos duplicados. Por ejemplo, si recopila datos de SQL:BatchStarted y SQL:BatchCompleted, puede minimizar el tamaño del conjunto de resultados recopilando datos de texto únicamente para la clase de evento SQL:BatchStarted.

  • Utilice filtros en la definición de la traza. Por ejemplo, si sabe que determinado usuario obtiene un rendimiento lento durante las consultas ad hoc, cree un filtro por LoginName. Configure el filtro para incluir sólo los eventos en los que LoginName coincida con el nombre de usuario.

Si debe ejecutar una traza para eventos que afectan significativamente al rendimiento, considere la posibilidad de limitar el impacto en el servidor mediante uno de los siguientes métodos:

  • Ejecute las trazas durante períodos más breves. Puede controlar el tiempo de ejecución de una traza habilitando una hora de detención. Esto es especialmente importante si no puede limitar las clases de eventos o filtrar un evento. La habilitación de una hora de detención asegura que la duración del costo de rendimiento no es indefinida.

  • Limite el tamaño de los resultados de la traza. Puede limitar el tamaño de los resultados de la traza a un tamaño de archivo máximo. Esta estrategia asegura que el costo de rendimiento se detiene cuando se alcanza el límite de tamaño del archivo (si no está habilitada la sustitución incremental de archivos).

  • Limite el número de eventos que se devuelven. Con SQL Server Profiler, puede limitar el número de eventos devueltos guardando la traza en una tabla y configurando el número máximo de filas. Los resultados de la traza siguen mostrándose en la pantalla de SQL Server Profiler tras alcanzar el número máximo de filas, pero se elimina el costo de registrar los resultados en una tabla.

Vea también

Conceptos