sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo capturar y analizar eventos de SQL Server

Cuando trabaje como administrador de la base de datos de SQL Server, debe tener las habilidades para sumergirse profundamente en el océano del motor de SQL Server y encontrar lo que sucede internamente, para poder detectar, solucionar y solucionar cualquier problema que pueda enfrentar.
Puede beneficiarse de los registros escritos por el motor de SQL Server localmente en forma de registros de SQL Server o externamente en forma de registros de eventos, pero no puede considerarlos como la única fuente para la resolución de problemas y ajustes. operaciones.

SQL Server le proporciona una serie de funciones integradas que se pueden utilizar para recopilar los diferentes tipos de eventos de SQL Server. En este artículo, revisaremos estas funciones integradas y consideraremos una de las herramientas gratuitas de terceros más eficientes que se pueden usar para recopilar y analizar eventos de SQL Server.

Perfilador de SQL

SQL Server Profiler es ampliamente utilizado por los administradores y desarrolladores de bases de datos de SQL Server para recopilar diferentes tipos de eventos sobre las consultas que se ejecutan en la instancia de SQL Server conectada y luego usar esta información para mejorar el rendimiento de la consulta.

SQL Profiler le brinda la capacidad de capturar una gran variedad de eventos, especificar las propiedades de los eventos que le interesan y filtrar los datos capturados en función de los valores de propiedad especificados previamente. Puede profundizar en qué usuario está realizando qué tipo de acción en qué tabla de la base de datos, desde qué máquina y en qué momento exactamente. Además, SQL Profiler muestra la cantidad de recursos consumidos y muestra si la acción se completó o falló con un error.

La recopilación de eventos a través de SQL Profiler se realiza utilizando una serie de plantillas existentes o creando su propia plantilla personalizada utilizando los eventos existentes. Primero, debe conectarse a la instancia de SQL Server desde la que planea capturar los eventos, proporcionando el nombre de la instancia de SQL Server, el método de autenticación y las credenciales necesarias para conectarse a esa instancia de SQL Server, como se muestra a continuación:

Después de conectarse a la instancia de SQL Server, se le solicitará que especifique la plantilla para los eventos que se recopilarán, según el propósito del proceso de generación de perfiles, como se muestra a continuación:

Puede ver en la imagen anterior que SQL Profiler le brinda una opción para guardar el resultado del seguimiento en un archivo o en una tabla de base de datos existente. Si ninguna de las plantillas proporcionadas se ajusta a sus requisitos, puede pasar fácilmente a la Selección de eventos tabula y marca para mostrar todos los eventos y columnas y luego filtra los eventos capturados con las propiedades que te interesan. Por ejemplo, puedes filtrar para capturar eventos provenientes de una base de datos específica, un usuario de base de datos, una tabla de base de datos, una máquina host, etc. en, de la siguiente manera:

Una vez que haya seleccionado los eventos que le interesan, simplemente haga clic en Ejecutar y comience a recibir eventos de la base de datos seleccionada, como se muestra a continuación:

Tenga en cuenta que, si no define un filtro muy preciso para recopilar solo los eventos que le interesan, SQL Profiler recopilará una gran cantidad de eventos que serán difíciles de leer y analizar. Además, no Se recomienda ejecutar la herramienta SQL Profiler en el entorno de producción, ya que "comerá" los recursos del servidor y matará su rendimiento. Si necesita usarlo con urgencia, intente reducir el alcance de los eventos que se van a capturar mediante el uso de filtros precisos.

Eventos extendidos

Con el fin de superar el problema de degradación del rendimiento causado por el uso de la herramienta obsoleta SQL Profiler para capturar los diferentes tipos de eventos SQL, se introdujo en SQL Server 2008 una característica de supervisión del rendimiento liviana, altamente escalable y configurable, que se puede usar para recopilar información útil. de la amplia gama de acciones disponibles, con el menor consumo posible de recursos SQL, lo que ayuda a solucionar problemas y ajustar el rendimiento de las consultas de SQL Server. Esta característica de captura de eventos se llama Eventos extendidos de SQL Server. .

Se puede acceder a la función Eventos extendidos a través de SQL Server Management Studio, desde Eventos extendidos opción en Administración nodo. Para crear una nueva sesión de Eventos extendidos, haga clic con el botón derecho en Sesiones opción, en Eventos extendidos nodo y seleccione Nueva sesión como a continuación:

De la Nueva Sesión ventana, tiene la opción de seleccionar entre varias plantillas disponibles, con más plantillas predefinidas que las plantillas de SQL Profiler, o simplemente usar la plantilla en blanco y especificar explícitamente los eventos que le interesan, como se muestra a continuación:

De los Eventos pestaña, puede filtrar los eventos que le interesan en función de la categoría de eventos y, a continuación, elegir las propiedades de cada evento que necesita recuperar. Además, puede crear un filtro personalizado para reducir el alcance de los eventos capturados, como se muestra a continuación:

El Almacenamiento La página le ofrece diferentes opciones para guardar el resultado de la sesión de eventos extendidos. En este ejemplo, mantendremos el resultado del seguimiento en un archivo de eventos extendidos con los ajustes configurados a continuación:

Después de personalizar la sesión de Eventos extendidos para cumplir con sus requisitos de monitoreo, haga clic en Aceptar botón para crear la sesión. Una vez creada la sesión, no comenzará a capturar eventos automáticamente a menos que lo configure durante el proceso de creación de la sesión. Para permitir que la sesión comience a capturar eventos, haga clic con el botón derecho en la sesión creada y seleccione Iniciar sesión. opción, como se muestra a continuación:

Para ver la sesión capturada, tiene la opción de abrir el archivo físico que se configuró previamente para almacenar los eventos, o simplemente haga clic con el botón derecho en la sesión creada y seleccione Ver datos en vivo. opción, como se muestra a continuación:

Se abrirá una nueva ventana que muestra los eventos recopilados con los valores de las propiedades para cada evento, como se muestra a continuación:

Aunque puede crear eventos extendidos fácilmente con unos pocos clics, aún enfrenta algunas dificultades al intentar elegir el evento correcto para monitorear, debido a la complejidad en la convención de nomenclatura de eventos, que dificulta comprender el propósito detrás de cada evento. Además, la GUI en la que se muestra la información de la sesión todavía no es fácil de usar, lo que complica el análisis de los eventos y sus propiedades. A partir de este punto, la necesidad de una herramienta de terceros más fácil de usar está aumentando, de lo que hablaremos en la siguiente sección de este artículo.

Perfilador de eventos de dbForge

dbForge Event Profiler para SQL Server es un GRATIS herramienta que le brinda la capacidad de capturar y analizar los eventos de SQL Server y almacenar los datos de los eventos en un archivo de seguimiento físico para su posterior examen.

dbForge Event Profiler para SQL Server supera el problema de degradación del rendimiento de SQL Profiler al ejecutarse con el mayor rendimiento posible y la carga mínima del servidor con soporte completo para la característica Extended Events.

Lo que hace que dbForge Event Profiler for SQL Server sea una herramienta de perfilado de eventos más atractiva que la función Extended Events es el resaltado de sintaxis de consulta función que no está disponible en la función SQL Profiler o Extended Events. Además, proporciona la capacidad de realizar el filtrado y clasificación operaciones en la red con resultados de rastreo.

dbForge Event Profiler for SQL Server se puede usar fácilmente para monitorear los diferentes tipos de actividades del motor de base de datos de SQL Server, Analysis Services e Integration Services, solucionar problemas relacionados con el rendimiento de consultas y transacciones de T-SQL y monitorear los diferentes errores y errores de SQL Server. advertencias.

Además, dbForge Event Profiler for SQL Server se puede utilizar para auditar las diferentes actividades de los usuarios de la base de datos de SQL Server o realizar pruebas de estrés o control de calidad. También puede simplemente crear sus propios trazos personalizados y guardarlos para usarlos en el futuro.

Para usar dbForge Event Profiler for SQL Server para capturar los eventos de SQL Server, debe descargarlo de la página de descargas de dbForge, de forma gratuita, e instalarlo en su SQL Server o máquina usando el sencillo asistente de instalación, como se muestra a continuación. :

Para iniciar el proceso de instalación, haga clic en INSTALAR botón de la Bienvenida y especifique la ubicación donde desea instalar la herramienta, desde el menú Seleccionar destino página siguiente:

Después de especificar la ubicación de instalación, haga clic en Siguiente botón. En los Accesos directos página, especifique si planea crear un ícono de acceso directo para la herramienta dbForge en su escritorio, luego haga clic en Siguiente para proceder:

En las Asociaciones de archivos página, se le pedirá que especifique la extensión de los archivos que se asociarán con la herramienta dbForge. Seleccione la extensión de los archivos que planea abrir con esta herramienta y luego haga clic en Siguiente para proceder:

En la Optimización de inicio página, revise y seleccione la mejor opción para la utilización del rendimiento de la herramienta y luego haga clic en Siguiente para proceder:

Ahora comenzará el proceso de instalación, según sus selecciones, y la barra de progreso mostrará el estado del proceso de instalación, como se muestra a continuación:

Después de que la instalación de dbForge Event Profiler para SQL Server se haya completado con éxito, el asistente le notificará y le brindará la opción de iniciar la herramienta directamente después de cerrar el asistente de instalación, como se muestra a continuación:

La página de bienvenida de dbForge Event Profiler for SQL Server es fácil de usar y cualquiera que esté familiarizado con SSMS puede adaptarse fácilmente a ella. Para iniciar un nuevo seguimiento, haga clic en Nuevo opción en el lado derecho de la herramienta, como se muestra a continuación:

En los Eventos del servidor de perfiles ventana, debe proporcionar la información de conexión que se utilizará para conectarse a la instancia de SQL Server que se supervisará. Si es la primera vez que se ejecuta la herramienta y no hay una conexión guardada anteriormente, haga clic en Nueva conexión botón como se muestra a continuación:

En el Administrador de conexiones ventana, el Nuevo El botón lo llevará a la ventana de conexión conocida, donde se le solicitará que proporcione el nombre de la instancia de SQL Server, el modo de autenticación y las credenciales necesarias para conectarse a SQL Server. Después de proporcionar la información de conexión, haga clic en Probar conexión para verificar si la información que ingresó es válida, como se muestra a continuación:

Después de proporcionar la información de conexión de la instancia de SQL Server, seleccione si desea usar una plantilla existente, de una lista de plantillas útiles que ofrecen la mayoría de las funcionalidades de seguimiento, o anule la selección para especificar la lista de eventos que le interesa capturar en el siguiente paso. Además, puede especificar las propiedades del archivo de destino, de la siguiente manera:

Sobre los Eventos para capturar página, encontrará una lista de eventos fácil de usar y bien categorizada, que se describen de manera significativa, sin necesidad de profundizar y tratar de comprender sus significados, como se muestra a continuación:

La siguiente imagen también muestra todas las categorías de eventos disponibles, con la cantidad de eventos en cada categoría. Ahora, puede disfrutar de la comprensión de todos los eventos disponibles por el nombre de la categoría, como se muestra claramente a continuación:

Después de especificar la lista de eventos que le interesa capturar, las Acciones La página le brinda la posibilidad de especificar la lista de acciones que desea capturar en la sesión del evento actual, como se muestra a continuación:

En los Filtros de eventos página, también puede dibujar sus propios filtros para minimizar la cantidad de filas recopiladas para cumplir con sus requisitos y facilitar el análisis, como se muestra a continuación:

Las Columnas La página le permite especificar qué columnas planea mostrar en la sesión de eventos actuales. Recuperar solo las columnas que contienen la información que le interesa capturar ayudará a minimizar significativamente el tamaño del archivo de seguimiento y el ancho de las filas devueltas, lo que facilitará el análisis de los datos capturados, como se muestra a continuación:

Después de personalizar la sesión de su evento, puede comenzar a capturar los eventos haciendo clic en Ejecutar botón de la imagen anterior. Después de iniciar la sesión de eventos, la herramienta comenzará a capturar y mostrar los eventos directamente, como se muestra a continuación:

La gran ventaja aquí es que al hacer clic en cualquier evento se mostrará una descripción completa del mismo con el script T-SQL que se muestra en una fuente de color fácil de usar dentro de un cuadro separado, lo que hace que sea muy fácil de verificar y analizar, como se muestra a continuación:

Además, dbForge Event Profiler for SQL Server puede funcionar como SSMS al proporcionar una opción para escribir una nueva consulta T-SQL y ejecutarla en la instancia de SQL Server conectada, como se muestra a continuación:

La herramienta también muestra los datos devueltos en una cuadrícula útil que muestra el nombre de cada columna, el tipo de datos y el valor, de la siguiente manera:

La mayoría de los administradores de bases de datos de SQL Server encontraron una situación cuando intentaron ejecutar un archivo grande de SQL Server usando SSMS que falló con el error OutOfMemory. dbForge Event Profiler para SQL Server supera este problema al proporcionar una función para ejecutar cualquier secuencia de comandos T-SQL grande dentro de un archivo SQL. Lo que debe hacer es solo seleccionar Ejecutar secuencia de comandos grande del menú Base de datos, luego seleccione la ubicación de ese archivo de secuencia de comandos, la base de datos en la que se ejecutará este archivo y la codificación que se utiliza en ese archivo, como se muestra claramente a continuación:

Conclusión

De todos los ejemplos anteriores, puede ver cómo la herramienta GRATUITA de terceros dbForge Event Profiler for SQL Server se puede utilizar para capturar y analizar los diferentes tipos de eventos de SQL Server superando todos los inconvenientes de las herramientas comunes de captura de eventos. Es un GRATIS herramienta y definitivamente vale la pena usarla.