Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El generador de perfiles de consulta de la extensión MSSQL para Visual Studio Code captura y supervisa la actividad de la base de datos en tiempo real mediante eventos extendidos. Puede observar la actividad T-SQL en tiempo real, identificar operaciones lentas e identificar cuellos de botella de rendimiento durante el desarrollo.
Query Profiler admite SQL Server (en entornos locales o en la nube), Azure SQL Database y SQL Database en los puntos de conexión de Fabric. Puede supervisar las sesiones activas, revisar los detalles de ejecución y comprender cómo interactúa la aplicación con la base de datos durante el desarrollo y las pruebas.
Sugerencia
Query Profiler está actualmente en versión preliminar y podría cambiar en función de los comentarios. Únase a la comunidad en GitHub Discussions para compartir ideas o notificar problemas.
Características
Query Profiler en la extensión MSSQL proporciona las siguientes funcionalidades:
- Capture la actividad en tiempo real de las consultas y bases de datos en una cuadrícula de eventos en vivo.
- Configure nuevas sesiones de generación de perfiles con selección de plantilla y nomenclatura de sesiones.
- Controle el ciclo de vida de la sesión con las acciones Iniciar, Pausar, Reanudar, Detener y Borrar datos .
- Ejecute varias sesiones de generación de perfiles simultáneas y cambie entre ellas con el selector de sesión.
- Filtre los eventos capturados por texto, nombre de base de datos, duración y otros campos.
- Cambie el desplazamiento automático para seguir los eventos más recientes o inspeccionar las entradas anteriores.
- Exportar eventos capturados a CSV.
- Abra y vea los archivos existentes
.xelen una cuadrícula Profiler de solo lectura. - Seleccione automáticamente la plantilla adecuada para destinos de Azure SQL Database (
Standard_Azure). - Funciona en Windows, macOS y Linux en todas las plataformas de Visual Studio Code compatibles.
Prerrequisitos
- Instale la versión más reciente de la extensión MSSQL para Visual Studio Code.
- Una conexión activa a una instancia de SQL Server compatible o Azure SQL Database.
- Permisos de servidor adecuados. Necesita el
ALTER ANY EVENT SESSIONpermiso (o equivalente) para iniciar una sesión de generación de perfiles.
Iniciar generador de perfiles de consulta
Puede iniciar Query Profiler desde la vista Conexiones o la paleta de comandos.
En la vista Conexiones:
En la vista Conexiones , haga clic con el botón derecho en una instancia de SQL Server.
Seleccione Iniciar generador de perfiles de consulta (versión preliminar).
En la paleta de comandos:
Abra la paleta de comandos (Ctrl+Mayús+P o Cmd+Mayús+P).
Seleccione MSSQL: Iniciar generador de perfiles de consulta.
Si no hay ninguna conexión activa actualmente, seleccione una conexión cuando se le solicite.
Se abre el panel Generador de perfiles de consulta, vinculado a la conexión seleccionada.
Creación de una sesión de generación de perfiles
Cuando se abre el panel Generador de perfiles de consulta sin sesión activa, se muestra la pantalla Nueva sesión .
Compruebe o cambie la conexión de la sesión de generación de perfiles.
Seleccione una plantilla en la lista desplegable. Las plantillas disponibles dependen del destino de conexión.
Plantillas de SQL Server (local):
Plantilla Eventos capturados Description Standard_OnPrem sql_batch_completed,sql_batch_starting,rpc_starting,rpc_completed,sp_statement_starting,sp_statement_completed,attention,existing_connection,loginlogoutPlantilla de generación de perfiles completa que captura la actividad por lotes y RPC de SQL, los eventos de nivel de instrucción de procedimiento almacenado y los eventos de conexión. Proporciona la vista más detallada de la actividad del servidor. TSQL_OnPrem sql_batch_completed,sql_batch_starting,existing_connection, ,login,logoutPlantilla ligera centrada en la ejecución por lotes de T-SQL. Captura eventos de inicio y finalización por lotes sin procedimiento almacenado o detalles de RPC, lo que reduce la sobrecarga en escenarios en los que solo se necesita actividad de consulta de nivel superior. TSQL_Locks sql_batch_completed,sql_batch_starting,lock_acquired,lock_released,existing_connection, ,loginlogoutCaptura eventos de lotes de T-SQL junto con eventos de adquisición y liberación de bloqueos. Resulta útil para diagnosticar problemas de bloqueo, interbloqueos y contención de bloqueos. TSQL_Duration sql_batch_completed(filtrado: duración >= 1000 microsegundos),sql_batch_starting,existing_connection,login,logoutCaptura eventos por lotes de T-SQL, pero filtros sql_batch_completedpara incluir solo lotes que tardan 1 milisegundos o más. Resulta útil para identificar consultas lentas a la vez que se reduce la interferencia de las instrucciones de rápida ejecución.Azure SQL Database y SQL Database en plantillas de Fabric:
Plantilla Eventos capturados Description Standard_Azure sql_batch_completed,sql_batch_starting,rpc_starting,rpc_completed,attention,existing_connection, ,loginlogoutPlantilla de generación de perfiles estándar para Azure SQL Database. Captura lotes de SQL y actividad RPC con eventos de conexión. Similar al Standard_OnPrem pero sin eventos a nivel de declaración de procedimiento almacenado. TSQL_Azure sql_batch_completed,sql_batch_starting,existing_connection, ,login,logoutPlantilla ligera de generación de perfiles de T-SQL para Azure SQL Database. Captura eventos de ejecución por lotes sin detalles de procedimiento almacenado o RPC. Nota:
Azure SQL Database y SQL Database en plantillas de Fabric crean sesiones limitadas al ámbito de la base de datos (
ON DATABASE) en lugar del servidor. Las plantillas filtradas por bloqueo y por duración no están disponibles para estas conexiones.Escriba un nombre de sesión. Presione Entrar para confirmar o Escape para cancelar.
El panel realiza la transición a la vista de eventos en directo y se crea una sesión de Profiler a través del servicio SQL Tools.
Supervisión de eventos en directo
Al ejecutar una sesión de generación de perfiles, la cuadrícula de eventos transmite eventos capturados en orden cronológico. La cuadrícula muestra las columnas siguientes en función de la plantilla seleccionada:
-
EventClass: tipo de evento capturado, como
sql_batch_startingorpc_completed. - TextData: la instrucción T-SQL o el texto del evento.
- ApplicationName: la aplicación que generó el evento.
- LoginName: inicio de sesión asociado al evento.
- ClientProcessID: identificador de proceso de cliente.
- SPID: id. de proceso del servidor.
- StartTime: marca de tiempo del evento.
- CPU: tiempo de CPU consumido.
- Lecturas: número de lecturas lógicas.
- Escrituras: Número de escrituras lógicas.
- Duración: tiempo de ejecución del evento.
- DatabaseName: la base de datos donde se produjo el evento.
- HostName: la máquina host que generó el evento.
Acciones de la barra de herramientas
La barra de herramientas proporciona los siguientes controles para la sesión activa:
| Acción | Description |
|---|---|
| Nueva sesión | Abre el nuevo flujo de sesión para crear otra sesión de generación de perfiles. |
| Iniciar | Reanuda la transmisión de eventos para una sesión en pausa o detenida. |
| Parar | Detiene la sesión de generación de perfiles. No llegan nuevos eventos, pero los eventos capturados permanecen visibles para su revisión, filtrado y exportación. |
| Pausar | Detiene temporalmente la actualización de la cuadrícula. La interfaz de usuario muestra un indicador en pausa . |
| Borrar datos | Borra todas las filas de la cuadrícula de la sesión actual. Si la sesión sigue en ejecución, los nuevos eventos seguirán rellenando la cuadrícula. |
| Borrar todos los filtros | Quita todos los filtros de columna activos y restaura la vista de eventos completa. |
| Filtro rápido de todas las columnas... | Busca en todas las columnas para buscar rápidamente eventos coincidentes. |
| Exportar a CSV | Exporta los eventos capturados de la sesión actual a un archivo CSV. |
| Desplazamiento automático | Alterna si la cuadrícula se desplaza a la fila más reciente cuando llegan nuevos eventos. El desplazamiento automático está activado de forma predeterminada para las nuevas sesiones. |
Filtrado de eventos
Use filtros de columna para restringir la cuadrícula de eventos y centrarse en la actividad pertinente. Cada encabezado de columna incluye un icono de filtro que abre un filtro específico del tipo de datos de esa columna.
Filtrar por valores de columna (por ejemplo, DatabaseName o ApplicationName)
Seleccione el icono de filtro en un encabezado de columna como
DatabaseName.En la lista desplegable de filtros, use el cuadro de búsqueda para localizar valores o seleccione y desmarque entradas específicas de la lista de casillas.
Seleccione Aplicar para filtrar la cuadrícula. Seleccione Borrar para quitar el filtro de esa columna.
Filtrar por valores numéricos (por ejemplo, Duration)
Seleccione el icono de filtro en una columna numérica como
Duration.Elija un operador de comparación (por ejemplo,
=,>,<) y escriba un umbral numérico.Seleccione Aplicar para filtrar la cuadrícula.
Cuando uno o varios filtros están activos, los chips de filtro aparecen debajo de la barra de herramientas que muestra qué columnas se filtran. Seleccione la X en un chip para quitar ese filtro o seleccione Borrar todos los filtros de la barra de herramientas para restablecer todos los filtros a la vez.
Nota:
Los filtros aplican el lado cliente a los eventos mostrados actualmente y a los nuevos eventos transmitidos durante la sesión.
Administración de varias sesiones
Query Profiler admite la ejecución simultánea de varias sesiones de generación de perfiles, cada una con su propia conexión, plantilla y búfer de eventos.
Seleccione Nueva sesión en la barra de herramientas para crear otra sesión. La nueva sesión puede tener como destino la misma o una conexión diferente.
Use la lista desplegable Selector de sesión para cambiar entre sesiones. Cada sesión muestra su estado (En ejecución, pausado o detenido) con un indicador visual.
Al cambiar de sesión:
- La cuadrícula de eventos se actualiza para mostrar los eventos capturados de la sesión seleccionada.
- Las acciones de la barra de herramientas funcionan en la sesión seleccionada.
Exportación de eventos capturados
Puede exportar los eventos capturados de una sesión de generación de perfiles a un archivo CSV para su revisión o uso compartido sin conexión.
Seleccione Exportar a CSV en la barra de herramientas. La exportación está disponible si la sesión se está ejecutando, en pausa o detenida.
Elija una ubicación y un nombre de archivo para el archivo CSV.
El archivo exportado contiene los eventos visibles actualmente en la cuadrícula de la sesión.
Abrir un archivo XEL existente
Puede abrir y revisar los archivos de seguimiento de Eventos Extendidos capturados anteriormente (.xel) en la cuadrícula del Generador de Perfiles de Consulta.
Abra la paleta de comandos (Ctrl+Mayús+P o Cmd+Mayús+P).
Seleccione MSSQL: Abrir archivo XEL del generador de perfiles....
Vaya a y seleccione el
.xelarchivo que desea abrir.
El archivo se abre en un panel Profiler de solo lectura. Los eventos se cargan y muestran en la misma cuadrícula con funcionalidades de filtrado. Los controles Start, Pause y Stop no están disponibles porque el archivo no es una sesión en directo.
Escenarios compatibles
Query Profiler funciona con los siguientes destinos de SQL Server y Azure SQL:
| Objetivo | Plantillas soportadas |
|---|---|
| SQL Server (locales, máquinas virtuales, contenedores) | Standard_OnPrem, TSQL_OnPrem, TSQL_Locks, TSQL_Duration |
| Azure SQL Database | Standard_Azure |
Nota:
Si selecciona una plantilla no admitida o intenta una sesión de nivel de servidor en Azure SQL Database, Query Profiler muestra un mensaje de error de destino y sugiere la plantilla adecuada.
Limitaciones
- No hay integración de AI ni GitHub Copilot en esta versión preliminar.
- No hay ninguna correlación entre bases de datos o entre servidores más allá de lo que proporcionan los eventos extendidos y las plantillas actuales.
- Sin guardar ni cargar valores preestablecidos de filtro.
- No se reproducen trazas ni se generan scripts a partir de eventos capturados.
- Ningún análisis sin conexión sin un archivo existente
.xelo una conexión dinámica. - No se garantiza que los puntos de conexión de Azure SQL Managed Instance sean compatibles en esta vista previa.
Comentarios y soporte técnico
Si tiene ideas, comentarios o quiere interactuar con la comunidad, únase a la discusión en https://aka.ms/vscode-mssql-discussions. Para notificar un error, visite https://aka.ms/vscode-mssql-bug. Para solicitar una nueva característica, vaya a https://aka.ms/vscode-mssql-feature-request.
Contenido relacionado
- Inicio rápido: Conexión a una base de datos y consulta con la extensión MSSQL para Visual Studio Code
- Extensión de GitHub Copilot para MSSQL de Visual Studio Code
- Diseñador de esquemas
- Comparación de esquemas
- Documentación de Visual Studio Code
- Extensión MSSQL para el repositorio de Visual Studio Code en GitHub