Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Qué herramienta de servidor SQL ayuda a los administradores de bases de datos a analizar y depurar el rendimiento del servidor?

¿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: Filtrar eventos generados por una base de datos específica. ID de la base de datos: SELECT DB_IC('Northwind')

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

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>

>