02 troubleshooting essentials sql server profiler - sql pass peru
TRANSCRIPT
Troubleshooting en SQL Server 2012 con SQL Server Profiler
Guillermo Taylor F.Consultor Senior TI & Especialista SQL [email protected] http://mastergt68.wordpress.com
Hoy hablaremos de…
Repaso de la Metodología de TroubleshootingSQL Profiler
VentajasConceptosArquitecturaObjetosAlgunos “Cómo Usar”
Correlación entre SQL Profiler & System MonitorConclusionesDocumentación y referencia
Desempeño o rendimiento
Escribir consultas eficientesGenerar índices adecuadosCrear vistas donde deben de crearse vistasCrear funciones de usuario e invocarlas donde correspondeCrear procedimientos almacenados adecuados a nuestros requerimientosUsar los distintos niveles de aislamiento de manera adecuadaManejo de transacciones (commit/rollback)
Metodología de Troubleshooting
Monitorear
Troubleshoot
Afinar/ OptimizarProbar
Desplegar
Círculo virtuoso…
Clasificación de herramientas
Sistema Operativo
• Monitor de Sistema
SQL Server
• SQL Profiler / SQL Trace
• Monitor de actividad
• Dynamic Management Objects (DMO)
Nivel de Query
• Database Engine Tuning Advisor
• Planes de ejecución
SQL Profiler en SQL Server 2012
Se anuncia el desuso de SQL Server Profiler para captura y reproducción de seguimiento de Motor de base de datos. Estas características se admitirán en la próxima versión de SQL Server, pero se quitarán en una versión posterior. No se ha determinado la versión específica de SQL Server. El espacio de nombres Microsoft.SqlServer.Management.Trace que contiene los objetos Trace y Replay de Microsoft SQL Server también estarán en desuso. Tenga en cuenta que SQL Server Profiler para las cargas de trabajo de Analysis Services no se desusarán y seguirá habiendo compatibilidad.
Ventajas de SQL Server Profiler
Seguir los pasos de consultas con problemas para buscar la causa de los mismos.Buscar y diagnosticar consultas de ejecución lenta.Capturar la serie de instrucciones Transact-SQL que ha causado un problema.
El seguimiento guardado se puede utilizar después para replicar el problema en un servidor de prueba en el que se pueda diagnosticar el problema.
Supervisar el rendimiento de SQL Server para optimizar las cargas de trabajo.
Asistente para la optimización de motor de base de datos. Establecer correlaciones entre contadores de rendimiento para diagnosticar problemas.
Conceptos
Propósitos:Interfaz gráfica para administrar SQL Trace.Monitor de eventos importantes.Capturar datos de desempeño y de utilización de recursos de SQL Server.Replicar capturas de datos de ejecuciones.Identificar cuellos de botella de desempeño.Correlación de datos con Monitor de Sistema.Cargas para Database Tuning Advisor.
Ejemplos:Listar el top N de queries más lentos.Tener un registro de accesos fallidos.Identificar bloqueos en aplicaciones.
Arquitectura
Eventos de SQL Server
Generados por
clientes o procesos de SQL Server
SQL Trace
Filtro
Cola
Tabla
Archivo
SMO
SQL Server Profiler
Aplicación de
Usuario
Arquitectura
Términos de SQL Profiler:Definiciones de trazas.Eventos.Columnas.Filtros.
Creación y gestión de “SQL Traces”:SQL Profiler (GUI)Procedimientos almacenados de sistema (T-SQL)
Plantillas de trazas (En el producto)Standard (Default), SP_CountsTSQL, TSQL_Duration, TSQL_Grouped,TSQL_Replay, TSQL_SPsAfinamiento
Eventos en SQL Profiler
Un evento es una acción generada dentro de una instancia del Motor de base de datos de SQL Server.
TSQLStored ProceduresPerformanceErrors and WarningsSecurity auditing
Un poco más de 170.Conocimiento y captura de los adecuados o requeridos…
Columnas en SQL Profiler
Una columna de datos es un atributo de una clase de evento capturada en el seguimiento.Como la clase de evento determina el tipo de datos que se pueden recopilar, no se aplicarán todas las columnas de datos a todas las clases de evento.Especifica los detalles a grabar.Las columnas pueden ordenarse y agruparse.Los valores pueden filtrarse.Ejemplos:
StartTime / EndTimeTextDataDurationResource Usage (CPU, Reads, Writes)Information: User, Database, App. Names
Filtros
Al crear un seguimiento o una plantilla, puede definir criterios para filtrar los datos recopilados por el evento.Para que los seguimientos no sean demasiado grandes, puede filtrarlos de forma que solo se recopile un subconjunto de los datos del evento.
Por ejemplo, puede limitar los nombres de usuario de Microsoft Windows del seguimiento a usuarios específicos, con lo que reducirá los datos de salida.
Si no se establece un filtro, se devolverán todos los eventos de las clases de eventos seleccionadas en el resultado del seguimiento.
Opciones de salida
InteractivaIdeal para monitoreo “en vivo” de pequeños conjuntos de datos.
Archivos de traza (*.trc)Ideal para seguimiento detallado, replica de datos o alimentación para el DB Tuning Advisor.Puede crecer mucho y por eso habilita “file rollover” de acuerdo con el tamaño del archivo.Opción para “Server processes trace data”.
Tabla de trazaIdeal para seguimiento detallado, replica de datos o alimentación para el DB Tuning Advisor.Creará la tabla de manera automática.Puede especificarse un máximo número de registros.
Programación de trazas (stop time)
Revisión de SQL Profiler
demo
Monitor de Sistema & SQL Profiler
Propósito:Generar correlación entre el desempeño del servidor y el desempeño de la base de datos.
Para qué:Mejor aproximación de impacto de la base de datos en el servidor
Proceso:Definir e iniciar una bitácora de contadoresDefinir e iniciar una traza en SQL ProfilerImportar datos de desempeño en SQL Profiler
Propiedades requeridas en la traza:StartTimeEndTime
Correlación Monitor de Sistema & SQL Profiler
demo
Otras opciones…
Creación de nuevas plantillasScripting de definiciones de trazasExtracción de eventos de SQL Server
Transact-SQLShowPlanDeadlock
Alimentación del Database Engine Tuning Advisor
Automatización de captura de traza (SQL Server 2005)
semi-demo
Libro de referencia…
Conclusiones
Aunque SQL Profiler va a desaparecer en versiones a futuro, todavía lo podemos usar para entender que pasa en mi servidor.La correlación entre la traza de SQL Profiler y la traza de System Monitor, me permite analizar el impacto a nivel del servidor.Aunque se debe ser proactivo en lugar de ser reactivo, SQL Profiler es más reactivo que proactivo.
Excepto si se usa para Database Engine Tuning Advisor.Tener en cuenta las prácticas recomendadas tratadas en esta sesión.
Referencias
eBook gratuito “Mastering SQL Server Profiler“http://www.red-gate.com/community/books/mastering-sql-server-profiler
Books Online: SQL Server Profilerhttp://msdn.microsoft.com/es-es/library/ms181091.aspx
Contadores para Rendimiento de SQL Serverhttp://msdn.microsoft.com/es-es/library/bb972264.aspx#EIAA
SQLServerPedia - SQL Server Profiler Tutorial Videohttp://sqlserverpedia.com/wiki/Using_SQL_Server_Profiler
Simple-Talk: Correlating SQL Server Profiler with Performance Monitor
http://www.simple-talk.com/sql/database-administration/correlating-sql-server-profiler-with-performance-monitor/
Troubleshooting en SQL Server 2012 con SQL Server Profiler
Guillermo Taylor F.Consultor Senior TI & Especialista SQL [email protected] http://mastergt68.wordpress.com