¿Qué herramienta de servidor SQL ayuda a los administradores de bases de datos a analizar y depurar el rendimiento del servidor?
1. Introducción a la herramienta SQL Profiler
SQL Profiler es una interfaz gráfica y un conjunto de procedimientos almacenados del sistema. Sus funciones son las siguientes:
Gráficamente. monitorear consultas de SQL Server;
Recopilar información de consultas en segundo plano;
Analizar el rendimiento;
Diagnosticar problemas como interbloqueos;
Depurar T - Sentencias SQL;
Simular la reproducción de la actividad de SQL Server;
También puede utilizar SQL Profiler para capturar actividades realizadas en una instancia de SQL Server. Esta actividad se denomina seguimiento de Profiler.
1. Seguimiento de Profiler
Inicio=》Todos los programas=》Microsoft SQL Server 2008=》Herramientas de rendimiento para abrir la herramienta Profiler, también puede abrir SQL Server Management Studio=》Herramientas. =》 Perfilador de SQL Server.
Luego seleccione Archivo => Nuevo => Seguimiento para abrir una ventana de conexión, seleccione la instancia del servidor a rastrear y conéctese. Abra el siguiente cuadro de diálogo "Propiedades de seguimiento".
Si tiene muchos seguimientos, puede proporcionar un nombre de seguimiento para ayudar a ordenarlos más adelante. Diferentes plantillas de seguimiento ayudan a configurar el seguimiento para diferentes propósitos.
Con la ventana de propiedades de seguimiento abierta, haga clic en la pestaña Selección de eventos para proporcionar una definición más detallada del seguimiento.
2. Eventos
Un evento representa varias actividades realizadas en SQL Server. Estas actividades se pueden clasificar simplemente en clases de eventos: eventos de cursor, eventos de bloqueo, eventos de procedimiento almacenado y eventos T-SQL son clases de eventos comunes.
Para el análisis de rendimiento, lo que le interesa principalmente es el evento del nivel de presión de recursos de diversas actividades realizadas en SQL Server. La presión de recursos incluye principalmente los siguientes contenidos:
¿Qué tipo de uso de CPU está involucrado en las actividades de SQL?
¿Cuánta memoria se utiliza?
¿Cuántas operaciones I/0 están involucradas?
¿Cuánto tiempo tomó la actividad SQL?
¿Con qué frecuencia se ejecuta una consulta en particular?
¿Qué tipos de errores y advertencias enfrenta la consulta?
Los eventos que rastrean el final de la consulta se detallan a continuación:
Descripción del evento de clase de evento
Procedimientos almacenados RPC: evento de finalización de RPC completado
SP: evento de finalización del procedimiento almacenado completado
SP: evento de finalización StmtCompleted de una declaración SQL en el procedimiento almacenado
T-SQL SQL: evento de finalización por lotes T-SQL BatchCompleted
SQL: StmtCompleted Un evento de finalización de declaración T-SQL
El evento RPC indica que el procedimiento almacenado se ejecuta a través de comandos OLEDB utilizando el mecanismo de llamada a procedimiento remoto (RPC). Si una aplicación de base de datos utiliza la instrucción T-SQL EXECUTE para ejecutar un procedimiento almacenado, el procedimiento almacenado se convertirá en un lote SQL en lugar de un RPC. Las solicitudes RPC son generalmente más rápidas que las solicitudes EXECUTE porque omiten gran parte del análisis de declaraciones y el manejo de parámetros en SQL Server.
T-SQL consta de una o más sentencias T-SQL. Las declaraciones o declaraciones T-SQL también son separadas y discretas en los procedimientos almacenados.
Capturar declaraciones individuales con el evento SP:StmtCompleted o SQL:StmtCompleted puede ser una operación costosa, dependiendo del número de declaraciones individuales. Suponga que cada procedimiento almacenado en el sistema contiene y tiene solo una declaración T-SQL. En este caso, el conjunto de declaraciones completadas es bastante pequeño. Ahora supongamos que hay varias declaraciones en un procedimiento y que algunos de estos procedimientos utilizan otras declaraciones para llamar a otros procedimientos. Recopilar todos estos datos adicionales ahora se convierte en una carga muy pesada para el sistema. Asegúrese de usarlo con precaución en máquinas de producción.
Ahora regresa al panel de selección de eventos. Solo se mostrarán los eventos que hayan sido seleccionados. Si desea mostrar todos los eventos disponibles, solo necesita seleccionar el botón de opción "Mostrar todos los eventos". Para agregar un evento de seguimiento, busque un evento en una clase de evento en la columna Evento y haga clic en la casilla de verificación a la izquierda del mismo. ; Para eliminar eventos no deseados, desmarque la casilla de selección de eventos.
Hay muchas cosas que decir solo sobre la clasificación:
Los siguientes son algunos otros eventos relacionados con el diagnóstico de desempeño:
Descripción de los eventos del evento
Security Audit (auditoría de seguridad) Audit Login (auditoría de inicio de sesión) registra la conexión de la base de datos cuando el usuario se conecta o desconecta de SQL Server
Audit Logout (auditoría de cierre de sesión)
Sessions( Session) ExistingConnection (conexión existente) Representa todos los usuarios conectados a SQL Server entre el comienzo del seguimiento
Cursors (cursor) CursorImplicitConversion (conversión implícita del cursor) Indica que el tipo de cursor creado es consistente con el solicitado escriba Diferente
Errores y Advertencias (errores y advertencias) Atención (nota) indica que la solicitud se interrumpe debido a que el cliente cancela la consulta o se destruye la conexión a la base de datos
Excepción (excepción ) indica que ha ocurrido una excepción en SQL Server
Advertencia de ejecución (Execution Warning) indica que ocurrió una advertencia durante la ejecución de una consulta o procedimiento almacenado
Hash Warning (Advertencia de Hash) indica que ocurrió un error en la operación hash
Estadísticas de columna faltantes (las estadísticas de la columna se pierden) indica que las estadísticas de clase requeridas por el optimizador para determinar la estrategia de procesamiento se pierden
Unión faltante Predicado (se pierde la aserción de conexión) indica que la consulta se ejecuta sin una aserción de unión entre las dos tablas
Advertencia de clasificación (advertencia de clasificación) indica que no hay memoria adecuada para realizar operaciones de clasificación en consultas como SELECT
Bloqueos (bloqueo) Bloqueo: Punto muerto (punto muerto) indica la aparición de un punto muerto
Bloqueo: Cadena de punto muerto (cadena de punto muerto) muestra la cadena de consulta que generó el punto muerto
lock: Timeout (tiempo de espera de bloqueo) indica que el bloqueo ha excedido su parámetro de tiempo de espera, que está determinado por la configuración del comando SETLOCK_TIMEOUT timeout_perious(ms)
Procedimientos almacenados (procedimientos almacenados) SP: Recompilar (recompilar) indica que el plan de ejecución de un procedimiento almacenado debe recompilarse porque el plan de ejecución no existe, recompilación forzada o El plan de ejecución existente no se puede reutilizar
SP: Iniciando (start)
SP: StmtStarting (inicio de declaración)
Representa un SP: StmtStarting procedimiento almacenado y el comienzo de una declaración SQL en un procedimiento almacenado. Son útiles para identificar consultas que comenzaron con un evento de Atención que no pudo finalizar debido a una operación
Transacciones SQLTransaction (transacción SQL) Proporciona información de transacciones de la base de datos, incluida la hora de inicio/finalización de la transacción, la duración de la transacción Eventos y otros información
3. Columnas de eventos
Los eventos están representados por diferentes características (llamadas columnas de datos).
La lista de datos representa varias características de un evento, como la clase del evento, la declaración SQL utilizada para el evento, la sobrecarga de recursos del evento y el origen del evento.
Descripción de la columna de datos
Tipo de evento EventClass (clase de evento), como SQL: StatementCompleted
TextData Declaración SQL utilizada en el evento, como SELECT * FROM Persona
p>
CPU es la sobrecarga de CPU del evento (expresada en ms. Por ejemplo, para una instrucción SELECT, CPU=100 significa que la instrucción se ejecuta durante 100 ms). >
Lecturas es el número de operaciones de lectura lógica realizadas por un evento. Por ejemplo, para una instrucción SELECT, Lecturas=800 significa que la instrucción requiere 800 operaciones de lectura lógica
Escrituras es el número de operaciones de escritura lógica realizadas para un evento
La duración es la ejecución hora del evento (ms)
Identificador del proceso SPID SQL Server utilizado para el evento
StartTime La hora en que comenzó el evento
Los anteriores son datos de uso común columnas, y hay algunas otras columnas de datos muy utilizadas:
BinaryData (datos binarios)
IntegerData (datos enteros)
EventSubClass (subclase de eventos)
DatabaseID (identificador de base de datos)
ObjectID (identificador de objeto)
IndexID (identificador de índice)
TransactionID (identificador de transacción)
Error(error)
EndTime(hora de finalización)
Los datos de las columnas se pueden reorganizar para ajustarse a su estilo preferido. Para controlar la ubicación de los datos de las columnas, haga clic en Organizar columnas. , se abrirá el siguiente cuadro de diálogo. La posición de la columna se puede modificar haciendo clic en los botones Arriba y Abajo; mover la columna a Grupos significa que se convertirá en una columna total.
4. Filtro de columnas
Además de definir eventos y columnas de datos para un seguimiento de Profiler, también se pueden definir varias condiciones de filtro. Estas condiciones ayudan a limitar la salida del seguimiento, lo que suele ser una buena idea. A continuación se proporciona una lista de las condiciones de filtrado más utilizadas.
Uso de instancia de condición de filtro de eventos
ApplicationName (nombre de la aplicación) No como: SQL Profiler filtra los eventos generados por Profiler. Este es el comportamiento predeterminado
DatabaseID (identificador de base de datos) Es igual a:
Duración Mayor o igual: 2 Para el análisis de rendimiento, los seguimientos a menudo se capturan para una carga de trabajo grande. En un seguimiento grande, muchos El registro de eventos tiene una duración menor. que lo que es de interés.
Filtre este registro de eventos ya que hay poco margen para optimizar estas actividades SQL
Lecturas (número de operaciones de lectura) mayor o igual"2 Filtrar eventos con operaciones de lectura más pequeñas
SPID p>
Igual a: lt; Usuarios de la base de datos a monitoreargt;
Ubicar consultas enviadas por usuarios específicos de la base de datos
La siguiente es una forma de configurar columnas de filtro:
p>