Contactos

Monitoreo de la efectividad de MS SQL Server. Recomendaciones prácticas. SQL Profiler resuelve problemas

Este artículo contiene varios materiales publicados en la lista de correo "MS servidor SQL - El caso es delgado ... "y dedicado a los problemas de monitorear la efectividad de la EM SQL Server, métodos para aclarar las causas de los problemas de hardware y su permiso. Además, se le ofrecerá varias recomendaciones y advertencias útiles útiles.

Si el servidor de su base de datos es demasiado utilizado por la I / O, puede cambiar el valor del sistema operativo Límite de bloqueo de página de E / S, que puede aumentar la tasa de lectura / billetes eficiente sistema operativo en discos duros.
Primero, ejecute la prueba de referencia de E / S para su carga de servidor habitual. Luego, en regedit.exe, abre la llave:

HKLM \\ System \\ CurrentControlSet \\ Control \\ SessionManager \\ MemoryManagement \\ Iopagelocklimit

El significado de sus acciones es la selección paso a paso de los valores de esta clave para los más óptimos, desde el punto de vista de los cambios en los resultados de las pruebas de referencia, los valores.
En esta clave, el sistema operativo lee. número máximo Bytes que puede usar para las operaciones de E / S. De forma predeterminada, el valor de 0 a qué 512KB está configurado. Aumente este valor sobre los pasos, agregando 512KB cada vez (por ejemplo: "512", "1024", etc.), y siga la prueba de referencia de su sistema después de cada cambio. Aumente este parámetro, solo tiene sentido hasta que observe un aumento en el ancho de banda de las operaciones de E / S, que puede manifestarse en la reducción de los costos de tiempo de la norma operaciones de disco. Cuando dejas de observar una mejora significativa, regresa al Editor del Registro y destruye el último incremento.

Advertencia: Hay un límite en talla máxima Los valores de esta clave. Si tiene 16 MB de RAM, no instale Iogagelocklimit más de 2048 bytes; Para 32MB RAM, no exceda los 4096 bytes, y así sucesivamente.

Nota IMPORTANTE:

Las operaciones de Sergey enumeradas con uso no correcto o erróneo pueden llevar al colapso de su sistema. Por lo tanto, cuide la pre-disponibilidad de copias de copia de seguridad de las bases de datos y sistemas, guarde la configuración de trabajo NT y modifique los posibles cambios en el relleno sanitario. Nunca haga más de un cambio de configuración a la vez.

En cuestiones anteriores (consulte ComportPress No. 1, 3-5, 7, 9'2006), revisamos los problemas relacionados con la transición a SQL Server 2005 al migrar o actualizar, así como los escenarios principales de Uso de SQL Server 2005. Este artículo hablará sobre diferentes métodos para optimizar la consulta y los posibles enfoques para resolver problemas relacionados con los problemas de productividad.

SQL Server proporciona servicios que se realizan en un medio dinámico y constantemente cambiante. Por lo tanto, el monitoreo regular de la operación del servidor permite identificar problemas en la etapa de su aparición y tomar medidas con prontitud para eliminarlas. Con la acumulación de estadísticas, aparece una comprensión de las principales tendencias del trabajo del servidor. Recopilación de datos regulares: incluso en aquellos casos en que el servidor funciona sin ningún problema, le permitirá crear un llamado criterio de rendimiento básico (línea de base de rendimiento del servidor), que puede servir como referencia con más medidores del servidor.

Después de recibir un estándar básico de rendimiento, adquiere la capacidad de analizar el desempeño de las solicitudes en varios escenarios. Se recomienda realizar mediciones, como mínimo, antes, durante y después de la implementación de diversos procedimientos de optimización, lo que se asegurará del éxito de las acciones tomadas. Además, las mediciones de rendimiento estándar regulares (semanales, mensuales, trimestrales, etc.) proporcionarán una imagen más clara de la operación del servidor.

La norma básica se puede utilizar para determinar el tiempo de tiempo del servidor y la hora de tiempo de inactividad (horas pico y fuera de la pico), el tiempo de respuesta de los paquetes de consulta y comando, el tiempo de ejecución de los procedimientos de creación copias de seguridad y recuperación de datos, etc.

Rendimiento de la pregunta

El desempeño de la consulta debe considerarse a partir de dos puntos de vista: los recursos utilizados para realizar una solicitud (los recursos incluyen los objetos a los que apelamos durante la ejecución de la consulta, los objetos bloqueados, etc.), y el tiempo dedicado a la ejecución de la Solicitud, - cuanto menor sea el tiempo requerido para ejecutar la solicitud, menor será la probabilidad de que durante el proceso de consulta bloquee otras consultas y transacciones.

SQL Server 2005 incluye dos herramientas básicas para medir el rendimiento de la consulta: el monitor de rendimiento y el perfilador de SQL Server. Además, es posible utilizar construcciones. idioma T-SQL Desde el conjunto de estadísticas de estadísticas, estadísticas de estadísticas, configure el perfil de estadísticas y configure las vistas de las estadísticas y las vistas dinámicas (vistas de gestión dinámicas). A continuación, consideramos la aplicación de Performance Monitor y SQL Server Profiler con más detalle.

Usando el monitor de rendimiento

La utilidad del monitor de rendimiento se utiliza para analizar el rendimiento de los recursos de hardware y software, incluida la memoria, el uso de la red, el tiempo del procesador, así como la información relacionada con trabajo SQL Servidor y otros productos de software - Microsoft Message Queueure (MSMQ), Microsoft. NET Framework. y Microsoft Exchange Server. En particular, el monitor de rendimiento se puede usar para monitorear los recursos del servidor SQL, como el bloqueo y las transacciones.

Para agregar Conscript, le interesa, debe realizar los siguientes pasos:

  1. En el menú Comienzo. Seleccione un comando CORRER. y en el panel de diálogo CORRER. Ingresar perfMon.. Como resultado, se iniciará la consola de la consola de administración de Microsoft Management (MMC). representación gráfica Un número de contadores de rendimiento.
  2. En la ventana Monitor de sistema Presione el botón derecho en el gráfico y seleccione el comando Añadir contadores..
  3. En el panel de diálogo. Añadir contadores. Seleccione la computadora en la que está interesado y un objeto para monitorear. Los objetos relacionados con SQL Server tienen el prefijo apropiado.
  4. Para seleccionar medidores, debe seleccionar la opción Todos los contadores.o uno o más metros de la lista desplegable (Fig. 1).
  1. Después de eso, seleccione Instancias de la base de datos o opción de habilitación Todas las instancias.
  2. Al presionar los botones Agregar y cerrar, completa la adición de contadores.

Después de que se agregan los contadores en los que está interesado, podemos ver sus valores en forma de gráfica, o guardarlos en el archivo de seguimiento (Fig. 2).

En este último caso, es necesario revelar el elemento. Registros de rendimiento y alertas y haga clic en el comando Nueva configuración de registro. En el panel de diálogo. Nueva configuración de registro Debe especificar el nombre del protocolo y haga clic en Aceptar. Siguiente en el panel de diálogo. Contunilogname. Elegimos el equipo Añadir contadores.. Agregar conscripts de interés a nosotros ocurre de la misma manera que se describe anteriormente. Tenga en cuenta que un gran número de Los contadores pueden afectar el rendimiento del sistema. Cuando termine de agregar contadores, haga clic en Cerca.

En la pestaña GENERAL En capitulo Datos de muestra cada Puede configurar la frecuencia de muestreo (eliminación de datos). Se recomienda comenzar con una frecuencia promedio, por ejemplo, cada 5 minutos, y luego, si es necesario, reducirla o aumentarla. Tenga en cuenta que el intervalo de muestreo más corto, se requieren los recursos más sistémicos y del disco. Debe recordarse que los intervalos son más cortos que el período de cuantización del contador, también pueden conducir a una pantalla de datos incorrecta. En la pestaña Archivos de registro. Puede configurar las propiedades del protocolo de archivos, y en Calendario Se establece el calendario de monitoreo. Al presionar el botón OK, conduce a la creación de un protocolo al inicio de la recopilación de datos (Fig. 3).

Para completar manualmente el registro, debe presionar el botón derecho en el elemento. Counter Logs. Y elegir un comando Detener.

Para ver los datos recopilados en el archivo de protocolo de datos en el monitor de rendimiento, seleccione el elemento Monitor de sistema, en la barra de tareas - comando Ver registro. Datos.y en el panel de diálogo Propiedades del monitor del sistema. En la pestaña Fuente. Especifique el nombre del archivo de protocolo.

Los contadores de monitor de rendimiento más utilizados, la información de la cual se puede usar para determinar los problemas asociados con la productividad se dividen en las siguientes categorías:

  • el acceso a los datos es para auditar los métodos de acceso a datos aplicables a SQL Server, se utiliza un objeto. SQLSERVER: MÉTODOS DE ACCESO;
  • estadísticas: para monitorear las solicitudes de compilación y recompilación, se aplica un objeto. SQLSERVER: SQL Statistics. Proporciona información sobre la forma rápida y eficiente, los procesos de SQL Server procesan las solicitudes;
  • transacciones: para determinar el número de transacciones dentro de un segundo, se utilizan contadores que pertenecen a objetos. Sqlserver: bases de datos. y SQLSERVER: TRANSACCIONES;
  • cerraduras: para auditar los bloqueos de servidores SQL instalados en ciertos tipos de recursos, se aplica un objeto SQLSERVER: Cerraduras. (Tabla 1).

Tabla 1. Contadores de perfiles de SQL Server

Contador doméstico

Descripción

Contando el número de rangos de escaneo (escaneos de rango) para índices por segundo

Cuenta el número de escaneo completo realizado en el último segundo

Búsquedas de índice / seg.

Cuenta el número de búsquedas por índice para el último segundo

Escalera de bloqueo de mesa / seg

Cuenta el número de cerraduras para la tabla.

Testapatas creadas / SEC

Cuenta el número de tablas de trabajo creadas en el último segundo

Solicitudes por lotes / seg

Contando el número de paquetes de comandos TRANSACT-SQL por segundo. Un gran número de paquetes significa un buen ancho de banda.

Compilaciones SQL / SEC

Cuenta el número de recopilaciones de solicitudes por segundo. El valor de este medidor debe ser casi constante después de que el usuario sea ejecutado por las acciones básicas.

Re-compilaciones de SQL / seg

Cuenta el número de recompañaciones de las solicitudes por segundo.

SQLSERVER: Objeto de bases de datos. Transacciones / Contador SEC

Calcula el número de transacciones que se ejecutan en la base de datos para el último segundo

SQLSERVER: Objeto de transacciones. Transacción más larga del tiempo de funcionamiento

Calcula el número de segundos desde el inicio de la transacción, que fue activa más tiempo que cualquier otra transacción actual. Si este contador muestra una transacción muy larga, use el procedimiento almacenado SYS.DM_TRAN_Active_transacciones () para obtener información sobre esta transacción

SQLSERVER: Objeto de transacciones. Actualizar el contador de la relación de conflicto

Contando porcentaje de transacciones utilizando aislamiento de imágenes (aislamiento de instantáneas) para resolver conflictos emergentes al actualizar los datos para el último segundo

Tiempo promedio de espera (MS)

Calcula el tiempo de espera promedio para cada consulta de bloqueo que causó la espera.

Solicitudes de bloqueo / seg

Cuenta el número de cerraduras y transformaciones de bloqueos por segundo.

Tiempo de espera de bloqueo (MS)

Calcula la espera total de las cerraduras para el último segundo.

Contando el número de consulta de bloqueo por segundo, lo que llevó a esperar

La segunda utilidad que se puede usar para medir el rendimiento de la consulta es el perfilador de SQL Server. A continuación, consideramos las formas básicas de usarla.

Uso de SQL Server Profiler

La utilidad del perfilador SQL Server sirve para medir el rendimiento de las consultas y consultas individuales que se incluyen en los procedimientos almacenados y los paquetes de comando en Transact-SQL. Con él, puede recopilar información de productividad, incluido el tiempo dedicado a la ejecución de un comando separado, el tiempo de bloqueo para ejecutar el comando, así como el plan de ejecución (plan de ejecución).

Para crear un nuevo perfil, debe realizar una serie de los siguientes pasos:

  1. Ejecutar a SQL Server Profiler ( Microsoft SQL Server 2005 \u003d\u003e Performance Tools \u003d\u003e SQL Server Profiler).
  2. En el menú Archivo Seleccione un comando Nuevo rastro..
  3. En el panel de diálogo. Conectar al servidor escoger servidor requerido Y haga clic en el botón Conectar..
  4. En el panel de diálogo. Trace las propiedades. Necesito configurar el nombre del perfil (Nombre de seguimiento), y en la lista Usa la plantilla. Seleccione una de las plantillas disponibles o BlancoSi la plantilla no se usa.
  5. Para ahorrar resultados de perfiles, seleccione la opción Guardar en archivo. Para escribir datos en un archivo y especificar el tamaño máximo de archivo (Valor predeterminado - 5 MB), opcionalmente puede habilitar la opción Habilitar el reinversión de archivos por creación automática Nuevo archivo para lograr el tamaño del perfil especificado. Segunda posibilidad: ahorrar datos en la tabla de la base de datos (Guardar en la tabla) - opción Establecer filas máximas. Le permite establecer el número máximo de registros.
  6. Puede usar la opción de tarea el tiempo de finalización Habilitar el tiempo de parada de rastreo (Fig. 4).

Para especificar las columnas de eventos y datos para el perfil, se requieren los siguientes pasos:

  1. En el panel de diálogo. Trace las propiedades. Ir a la pestaña Selección de eventos.
  2. Agregue o elimine los eventos del perfil con la tabla de clases de eventos.
  3. Para obtener la lista de todos los eventos disponibles, encienda la opción. Mostrar todos los eventos. (Fig. 5).

En la pestaña. 2 Enumera los eventos de perfiles de SQL Server más utilizados. Al igual que los contadores de rendimiento, los eventos del perfilador SQL Server se dividen en una serie de categorías, algunos de ellos son de interés para resolver nuestras tareas.

Tabla 2. Eventos de perfilador SQL Server

Nombre del evento

Descripción

Este evento ocurre al finalizar la llamada para llamar a un procedimiento remoto.

Este evento se realiza al finalizar el procedimiento almacenado.

SP: StmtCompleted

Este evento se produce al finalizar uno de los comandos Transact-SQL dentro del procedimiento almacenado.

SQL: StMTCompleted

Este evento se completa al finalizar el comando Transact-SQL

SQL: BatchCompleted.

Este evento se produce al finalizar la ejecución del paquete de comandos Transact-SQL

Este evento se realiza cuando la transacción obtiene un bloqueo en algún recurso

Este evento ocurre cuando la transacción libera el recurso bloqueado previamente.

Este evento se lleva a cabo cuando se excede el tiempo de espera al recibir el bloqueo, ya que el recurso requerido ya está bloqueado por otra transacción.

Cómo determinar la presencia de cerraduras.

Cada vez que se usa una transacción en la transacción (tabla, página, índice, etc.), el bloqueo está instalado para ello. Si otra transacción intenta acceder a este recurso y el tipo de bloqueo es incompatible con el bloqueo ya instalado, se produce un nuevo bloqueo.

Para determinar la presencia de bloqueos, puede aplicar los siguientes métodos:

  • utilice la utilidad de monitor de actividad de SQL Server Management Studio, que muestra información sobre los procesos, bloqueos a nivel de proceso y en el nivel del objeto. Para acceder a la actividad Monitor en SQL Server Management Studio, debe seleccionar un elemento Gestión, y en ella - Monitor de actividad Y haga doble clic en este elemento. Monitor de actividad le permite ver:

Objetos bloqueados para cada proceso: para determinar la consulta que condujo a la apariencia de bloqueo, use el identificador del proceso ID de proceso del servidor (SPID) En la pagina Información del proceso,

Los procesos que obligan a otros procesos para estar en un estado de espera, para identificar dichos procesos, use la columna Bloqueado por. En la pagina Información del proceso (Fig. 6);

  • aplique SQL Server Profiler para obtener un informe sobre los procesos bloqueados: esta lista muestra información sobre los procesos que permanecieron bloqueados más largos que el tiempo especificado. acerca de

SQL Profiler - softwareSe utiliza para rastrear el servidor SQL Server. "Tracing" - Sesión de colección de trabajo de SQL Server 2008

Cita principal:

SQL Profiler es utilizado por los administradores para:

· Análisis de la aplicación de la solicitud;

· Definiciones de optimalidad de solicitudes enviadas al servidor;

· Detectar comandos TRANSACT-SQL, al ejecutar un error;

· Recopilación de información sobre la actividad del usuario durante un largo intervalo de tiempo;

· Monitorear el funcionamiento del servidor en tiempo real.

Nuevas oportunidades:

una. Servicios de análisis de perfiles;

b. Perfil siguiendo servicios de integración;

c. La capacidad de registrar las lecturas del monitor de rendimiento al registrar la ejecución del comando

d. En Profiler, se agregan muchos eventos nuevos y fuentes de información que se pueden seleccionar para escribir en el archivo de seguimiento;

f. Capacidad para agrupar eventos en la ventana del perfilador.

Trabajar con SQL Server Profiler

1. Ejecute SQL Server Profiler - desde el menú Programas de inicio en SQL Server 2008à Performance Toolsà SQL Server Profiler.

2. En la ventana que se abre en el menú. Archivo escoger Nuevo rastro. Y conéctese al SQL Server 2008, cuyo trabajo rastrearemos.

3. Configurar la configuración de la sesión en la ventana Trace las propiedades.que se abre automáticamente por el inicio de la sesión de rastreo (consulte la Fig. 8.1).

Higo. 8.1. Configuración de la configuración de la sesión de rastreo

una. En la pestaña GENERAL Seleccione en la lista Usa la plantilla. El patrón más adecuado. La selección de la plantilla se realiza utilizando el menú. Archivo à Plantillas. en SQL Server Profiler. Inicialmente a su disposición, ocho plantillas:

1). Estándar (predeterminado) - la plantilla predeterminada que le permite rastrear todos los procedimientos almacenados y comandos y comandos Transact-SQL;

2). Sp_counts. - Recopilación de información sobre la ejecución de los procedimientos y características almacenados con la clasificación por nombre;

3). Tsql - Colección de información sobre todos. comandos TRANSACT-SQLcorriendo para ejecutar en el servidor, con el identificador de los procesos de usuario y el tiempo de inicio;

4). Tsql_dure. - similar a la plantilla anterior, pero en lugar de información sobre la hora de iniciar el comando tsql, se registra el tiempo que asumió su ejecución;

5). Tsql_grouped. - Además de la información sobre el código de comando Transact-SQL y su tiempo de inicio, también se registra la información sobre el nombre de la aplicación, cuenta usuario en el sistema operativo y en la cuenta de usuario que se utilizó para conectarse;



6). Tsql_replay. - registrar la información más detallada sobre los comandos Transact-SQL realizados;

7). TSQL_SPS. - Además de registrar información sobre el inicio del procedimiento de la tienda (SP: STENIO), se registra la información sobre la ejecución de cada uno de los comandos del procedimiento almacenado (SP: STMTStarting);

8). Afinación. - Se utiliza para recopilar información necesaria asignación de bases de datos.

b. En la pestaña GENERAL Si necesita especificar la ubicación de la información de seguimiento:

uno). La información de seguimiento se puede configurar para archivar (predeterminado 5 MB en tamaño):

· Parámetro Habilitar el reinversión de archivos Determina si la siguiente se crea automáticamente al completar un solo archivo. El nombre del siguiente archivo será el mismo que el nombre del anterior, pero el número (1, 2, 3, etc.) se agregará a su nombre.

· Parámetro Los procesos del servidor rastrean datos Puede utilizar para aumentar la confiabilidad de la grabación de información de seguimiento. Después de instalar este mensaje de procesamiento de información de facturación, el servidor se activará.

2). La información de seguimiento se puede guardar en tabla de SQL Servidor. La tabla con el conjunto deseado de columnas se creará automáticamente.

3). Usando el parámetro Habilitar el tiempo de parada de rastreo Puede especificar la hora en que la traza se apaga automáticamente.

c. En la pestaña Selección de eventos Definir la configuración de la recopilación de información. En la tabla en esta pestaña, debe seleccionar los eventos deseados (en las líneas) y la información (en columnas), que se registrarán para ellos. Para mostrar todas las filas y columnas, necesita instalar banderas Mostrar todos los eventos. y Mostrar todas las columnas.

uno). Usa el botón Filtros de columna. (Filtros de columna) Personalizar filtros información necesaria (Seguimiento de acciones realizadas en una base de datos específica, o una aplicación específica, o un usuario específico). Como o NO COMO;

2). Usando el botón Organizar columnas. (Organizar columnas) Configure el orden de las columnas para mostrar o escribir en un perfilador con la capacidad de agrupar el grupo de la sección de datos.

4. Después de configurar todos los ajustes de seguimiento, haga clic en el botón. CORRER. (Ejecutar) (ver Fig. 8.2)

Higo. 8.2. Ver información durante la sesión de rastreo

En la parte superior de la ventana, se muestran los eventos que se producen en el servidor, y se administran en la parte inferior. información detallada Para cada evento (por ejemplo, código de comando SQL).

Oportunidades disponibles en la ventana de rastreo:

1. Si en la pestaña Organizar columnas. En las propiedades de la plantilla, ha elegido columnas para agrupar, puede agrupar estas columnas de grabación en la ventana de visualización. Para este propósito en el menú. VISTA. Equipo proporcionado Vista agrupada.;

2. Si en la lista Grupo. Solo se colocó una columna, entonces tiene la capacidad de usar el modo de visualización. Vista agregada. (Ver Fig. 8.3). Este modo se activa utilizando el comando. Vista agregada. Desde el mismo menú VISTA..

Higo. 8.3. Modo de visualización Vista agregada.

3. Puede abrir eventos en el perfilador, guardado en archivos y rastrear tablas. También es posible repetir las operaciones legales utilizando el menú. REPETICIÓN.;

4. Puede vincular información de seguimiento con los indicadores del medidor de rendimiento del monitor del sistema. Para esto:

· Determine la sesión de rastreo, durante el cual se deben grabar la información para las columnas. Hora de inicio y Hora de finalización.;

· Ejecute la sesión de rastreo con la grabación de información a un archivo o tabla. Recoge simultáneamente metros en el archivo. Monitor de rendimiento;

· Abierto información recolectada Desde el archivo de seguimiento en el perfilador, y luego use el comando Importar datos de rendimiento. Desde el menú Archivo.

En esta conferencia, continuaremos estudiando los procedimientos almacenados que comenzaron en "Creación de procedimientos y gestión almacenados de estos procedimientos". Aprenderá cómo analizar los procedimientos almacenados y otras declaraciones de T-SQL utilizando el analizador de consultas de consultas de consultas SQL Server Microsoft Server y el perfil del perfilador SQL Server. Desde este análisis, puede determinar cómo son los operadores T-SQL efectivos. Una solicitud de SQL Server efectiva utiliza una secuencia adecuada de operaciones y índices adecuados para reducir la cantidad de fila procesada y minimizando el número de operaciones de E / S.

Uso del analizador de consultas, puede ver el plan de ejecución seleccionado para el operador T-SQL optimizador de solicitudes. Servidor SQL. Optimizador de consulta - Este es un módulo interno que está buscando. mejor plan Ejecuciones para cada operador T-SQL. Optimizador de consulta Analiza cada declaración T-SQL, analiza una serie de posibles planes de ejecución y evalúa el "costo" de cada plan desde el punto de vista de los recursos y el tiempo de procesamiento requeridos. El plan se selecciona con el costo más pequeño. El costo de cada plan se determina en función de las estadísticas existentes, que se recopila por el sistema y puede estar desactualizada. Como puede saber más sobre su base de datos y sus datos que optimizador de consultaEs posible que pueda crear un plan que sea mejor que el optimizador de consulta. Usando la información que proporciona el analizador de consulta, puede determinar si el plan optimizador de consulta será efectivo para cierto operadorY, de ser no, puede intentar optimizar a este operador, modificarlo o usar el indicador SQL. En esta conferencia, aprenderá cómo optimizar las declaraciones T-SQL, que será una adición al estudio del uso del analizador de consultas.

Usando Profiler, puede analizar las operaciones dentro de su sistema SQL Server para determinar qué SQL y los procedimientos almacenados se utilizan innecesarios recursos del sistema. Poseer esta información, puede enfocar sus esfuerzos de afinación principalmente a estos operadores y procedimientos almacenados. Además de la descripción de cómo usar Profiler, esta conferencia también muestra cómo usar la información obtenida con Profiler.

Usando SQL QUERY ANYSENZER

La utilidad del analizador de consultas viene con Microsoft SQL Server 2000 a cambio

En nuestro trabajo, a menudo nos enfrentamos a la situación cuando cierta solicitud Funciona lentamente, y en el texto de la solicitud no está claro. problemas obvios. Por lo general, en este caso, es necesario investigar el problema a un nivel más profundo. Como regla general, se hace necesario ver el texto de la grabadora SQL y su plan, y esto es solo ayuda a SQLPROFILER.

¿Qué es el perfilador SQL y por qué es generalmente necesario?

SQLProfilerometh El programa suministrado con MS SQL Server y está diseñado para y ver todos los eventos que se producen en el servidor SQL o en otras palabras para grabar seguimiento. ¿Por qué SQLPROFILER puede ser necesaria para un programador 1C? Al menos para obtener el texto de la consulta de SQL y ver su plan. Por supuesto, esto se puede hacer con la ayuda de una revista tecnológica, pero requiere algunas habilidades, y el plan en el DVG no es tan hermoso y legible. En el perfilador, puede ver no solo texto, sino también el plan gráfico para realizar la solicitud, que en mi opinión es mucho más conveniente. Además, utilizando el perfilador, puede definir: solicitudes de más tiempo que una determinada cantidad de tiempo a una tabla específica de espera en las cerraduras de los momentos de los moldes y mucho ...

Análisis de consultas usando SQL Profiler

El perfilador más común se usa específicamente para el análisis de consultas. Como regla general, no necesitamos rastrear todas las solicitudes, a menudo es necesario ver cómo se emite una consulta específica en 1C en SQL y vea el plan de ejecución. Por ejemplo, puede ser necesario determinar por qué la solicitud se realiza lentamente o escribimos una gran solicitud y desea asegurarse de que el texto de la consulta SQL no contenga conexiones con la subconsulta. Para capturar una solicitud de rastreo, hacemos lo siguiente:

1. Ejecute SQL Profiler Start - Todos los programas - Microsoft SQL Server 2008 R2 - Medios de rendimiento - SQLPROFILER
2. Cree un nuevo archivo de seguimiento - Cree trace (Ctrl + N)
3. Indique el servidor DBMS en el que se encuentra nuestra base de datos y haga clic en "Conectar".

Naturalmente, nada evita el rastreo del servidor DBMS, que está en otra computadora. 4. En la ventana "Propiedades de seguimiento" que aparece, vaya al segundo marcador "Selección de eventos"

5. Ahora necesita especificar los eventos y las propiedades de estos eventos que queremos ver en Trace. Necesitamos consultas y solicitamos planes, por lo tanto, es necesario permitir los eventos relevantes. Mostrar lista llena Las propiedades y los eventos incluyen las banderas "Mostrar todas las columnas" y "Mostrar todos los eventos". A continuación, debe seleccionar solo los eventos que se muestran en la siguiente figura, todos los demás eventos deben desactivarse.


Descripción del evento: ShowPlanstatisticsProfile- Plan de texto para la ejecución de la consulta.
ShowPlanxMlstatisticsProfile-Graphic Swery Plan de ejecución.
RPC: Texto de consulta completado si se ejecuta como un procedimiento (si la solicitud de 1C se ejecuta con parámetros).
SQL: Texto de consulta por lotes, si se ejecuta como una consulta regular (si la solicitud 1C está satisfecha sin parámetros).

6. Ahora necesita configurar el filtro para eventos. Si esto no se hace, entonces veremos solicitudes de todas las bases de datos ubicadas en este servidor DBMS. Presione el botón "Filtros de columna" y especifique el filtro por el nombre de la base de datos

Ahora veremos en seguimiento solo las solicitudes de la base de datos "testbase_8_2" si lo desea, puede poner el filtro y en otros campos, los más interesantes de ellos: duración (duración), textdata (generalmente este es el texto de la consulta) y RowCounts (número de filas de la solicitud devueltas).

Por ejemplo, si necesito capturar todas las solicitudes a la tabla "_inforg4312" con una duración de más de 3 segundos en la base de datos "TestBase_8_2", entonces hago:
a) Filtro de la base de datos, se muestra el ejemplo anterior
b) Filtro de duración en milisegundos.

C) Filtrar por solicitud de texto


Aquí señalamos la máscara. Si necesita rastrear las solicitudes que apelan a varias tablas, creamos varios elementos en la sección "Parece como". Las condiciones de todos los filtros trabajan juntos.

7. Ahora puedes ejecutar Trace. Haga clic en "Ejecutar", después de eso, la traza comienza a trabajar, y puede ver esos eventos que configuró y que caen debajo de sus filtros. Puede usar los botones del panel de comando para controlar la traza.


A la izquierda para la derecha: borrador: borra la ventana de rastreo, comienza: comienza a rastrear, pausar: pone una pausa de rastreo, mientras que presiona la traza se renueva, detenerse: detiene el rastreo

8. La ventana de rastreo consta de dos partes. En la parte superior hay eventos y propiedades de los eventos. En la parte inferior, se muestra diversas información dependiendo del tipo de eventos. En nuestro caso, aquí se mostrará el texto de la consulta, o su plan.

9. Realice una solicitud de consolidación de consulta 1C y vea cómo afectará el perfilador.


En trace, está claro que las solicitudes eran algo y solo una de ellas es. Las solicitudes restantes son el servicio.

10. De acuerdo con las propiedades de los eventos, puede entender: ¿Cuántos segundos se ejecuta la consulta, cuántas lecturas lógicas (lecturas), cuántas filas se devuelve la solicitud como resultado (RowCounts), etc. En mi caso, la solicitud se realizó 2 milisegundos, realizó 4 lecturas lógicas y devolvió 1 cadena.

11. Si sube a un evento anterior, podremos ver el plan de solicitud en forma gráfica.
Como se puede ver en el plan, la búsqueda se realiza en el índice al precio, aunque este plan no se puede llamar perfecto, porque El índice no está cubriendo, el código de campo y el nombre se obtienen utilizando KeylookUP, que toma el 50% del tiempo.


Usando el menú contextual, el plan gráfico se puede guardar en archivo separado con la extensión * .sqlplan y abre en un perfilador en otra computadora o con un mayor avanzado programas SQL Plan de Sentry Explorer.

12. Si se eleva aún más, veremos el mismo plan de consulta, pero ya en el formulario de texto. Es este plan el que se muestra en el TJ, la PC y otros medios para controlar el rendimiento de 1C. Para analizarlo, recomiendo usar avanzado. editor de texto Con retroiluminado, por ejemplo, Blocepad ++.

13. Utilizo el menú "Guardar archivos", puede guardar la traza completa a varios formatos:
a) En el formato del propio Profilee, es decir,. Con la extensión * .trc
b) en formato XML
c) Puede hacer un patrón de plantilla al rastreo. Vea el siguiente artículo.
d) Puede guardar la traza como una tabla de base de datos. Forma conveniente si necesitamos encontrar, por ejemplo, más solicitud lenta En toda la traza o seleccione Solicitudes para cualquier parámetro. Archivo: guardar la tabla de rastreo: seleccione el servidor DBMS y conecte a él. A continuación, debe seleccionar una base de datos en el servidor especificado y especificar el nombre de la tabla donde se guardará la traza. Ya puedes elegir tabla existenteO escriba un nuevo nombre y luego la tabla se creará automáticamente en la base de datos seleccionada.

Debe tenerse en cuenta que la duración se almacena en una tabla en millones de segundos de segundo y cuando se deriva el resultado, es deseable traducir un valor a milisegundos. De la misma manera, la columna de Rownumber se agrega a la tabla, que muestra el número de esta cadena en trace.

14. Si a menudo necesita usar un perfilador para analizar las solicitudes, la configuración de los filtros y eventos necesarios se cansará rápidamente y, además, se llevará mucho tiempo. Las plantillas traces llegan al rescate, donde especificamos los filtros que necesitamos y el orden de la columna, y luego simplemente seleccione esta plantilla al crear un nuevo rastro. Para crear una plantilla, use el menú Archivo - Plantillas - Nueva plantilla

En el primer marcador, todo es simple. Especifique el tipo de servidor, el nombre de la plantilla, y si es necesario, coloque la bandera para usar esta plantilla predeterminada. En la segunda pestaña, haga la elección de eventos y configure los filtros, como ya se muestra arriba. También recomiendo configurar el orden de las columnas en el rastreo, ahorra tiempo al analizar las solicitudes. Por ejemplo, es más conveniente para mí usar el siguiente orden.

Ahora, al crear una nueva traza, simplemente puede especificar la plantilla deseada, luego en la segunda pestaña, todos los filtros y eventos se llenarán automáticamente.

Por supuesto, no todas las formas de usar esta maravillosa herramienta se muestran aquí, si hay un interés de la audiencia, entonces en el futuro será posible reponer la colección de artículos sobre este tema.



¿Te gustó el artículo? Compártelo