Analiza el rendimiento de la base de datos con eventos extendidos

En esta página, se describe cómo usar los eventos extendidos (XEvents) en tus instancias.

Cloud SQL admite el uso de XEvents para supervisar, identificar y solucionar problemas relacionados con el rendimiento de tu base de datos. Para ello, crea sesiones de XEvent y lee los archivos de salida de XEvent. Puedes leer los archivos de salida de XEvent en la instancia o descargarlos desde un bucket de Cloud Storage.

Antes de comenzar

Si quieres subir tus archivos XEvent a un bucket de Cloud Storage, crea uno en tu cuenta de Google Cloud.

Prácticas recomendadas

  • Para evitar transferir archivos grandes entre regiones, te recomendamos que hagas una de las siguientes acciones:
    • Crea buckets multirregionales de Cloud Storage
    • Configura el bucket de destino de Cloud Storage en la misma región que la instancia
  • Antes de usar XEvents, habilita los aumentos de almacenamiento automáticos. Según su tamaño total y los intervalos de retención, los archivos de salida de XEvent pueden necesitar un espacio significativo en el disco.
  • Para evitar retener demasiados archivos XEvent durante mucho tiempo, configura una política de retención de datos para tu bucket de Cloud Storage.
  • Si creas una sesión de XEvent con la IU de SSMS, pero no aparecen algunos cuadros para los valores de entrada, cambia el tamaño de la ventana Create XEvent Session.

Cómo crear sesiones de XEvent

XEvents se habilita automáticamente en tus instancias.

Usa el comando CREATE EVENT SESSION para definir sesiones XEvent nuevas. También puedes usar la interfaz de usuario de SQL Server Management Studio (SSMS) para crear sesiones de XEvent.

Cloud SQL aplica los siguientes parámetros para todas las sesiones de XEvent:

Parámetro Descripción Valores permitidos
FILENAME Especifica el nombre de archivo y la ruta de acceso para almacenar los datos de la sesión de XEvents. Cualquier ruta que comience con /var/opt/mssql/xevents/
MAX_FILE_SIZE Especifica el tamaño máximo de cada archivo de salida antes de que se cree uno nuevo. Un mínimo de 10 MB
Un máximo de 1 GB
MAX_MEMORY Especifica la cantidad máxima de memoria que se asignará a la sesión para el almacenamiento en búfer de eventos. Un mínimo de 4 MB
Un máximo de 8 MB
MAX_DISPATCH_LATENCY Especifica el tiempo máximo (en segundos) que los eventos pueden permanecer en la cola de envío de eventos antes de enviarse al destino. Un mínimo de 1 segundo
Un máximo de 30 segundos
MAX_EVENT_SIZE Establece el tamaño máximo de cada evento, en bytes. Un mínimo de 4 MB
Un máximo de 8 MB

Parámetros de configuración de la sesión de XEvent

Puedes configurar sesiones de XEvent con los siguientes parámetros como marcas personalizadas:

Parámetro Descripción
cloud sql xe bucket name Especifica el bucket de Cloud Storage al que deseas subir el resultado de la sesión de XEvent. Si no se especifica, Cloud SQL no subirá los datos de salida de la sesión de XEvent a Cloud Storage.
cloud sql xe output total disk size (mb) Especifica la cantidad de espacio en el disco que se reservará para el resultado de todas las sesiones de XEvent. Si no se especifica, Cloud SQL usa un espacio en disco predeterminado de 512 MB. Si los archivos de salida de XEvent usan más espacio en el disco que el valor de cloud sql xe output total disk size (mb), Cloud SQL quita estos archivos del disco.
cloud sql xe file retention (mins) Especifica el tiempo de retención en la instancia en minutos para los archivos generados por los destinos de archivos de las sesiones de XEvent. Si no se especifica, Cloud SQL usa un valor predeterminado de 7 días.
cloud sql xe upload interval (mins) Especifica el intervalo de carga para los archivos XEvent que se suben a Cloud Storage. Si no se especifica, Cloud SQL usa un valor predeterminado de 10 minutos.

Para obtener más información sobre configurar estas marcas, consulta Configura marcas de base de datos.

Cómo leer los archivos de salida de la sesión de XEvent

Puedes leer los archivos de salida de la sesión de XEvent desde una instancia de Cloud SQL o un bucket de Cloud Storage.

Lee archivos de salida de XEvent desde una instancia

Para recuperar los datos de un archivo XEvent que crea una sesión de XEvent, usa la función sys.fn_xe_file_target_read_file.

A continuación, se presenta un ejemplo:

SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);

Lee archivos de salida de XEvent desde un bucket

Para leer los archivos de salida de XEvent de un bucket de Cloud Storage, descarga los archivos del bucket a una instancia de SQL Server. Puedes descargar desde una de las siguientes instancias:

  • Una instancia de Windows de Compute Engine
  • Una instancia de Linux de Compute Engine
  • Otro tipo de instancia que ejecuta SQL Server

Luego, transfiere los archivos de salida de XEvent del bucket a una ubicación a la que pueda acceder esa instancia, como su disco local. A continuación, para mostrar información del archivo de salida de XEvent, ejecuta la función sys.fn_xe_file_target_read_file con una cuenta que tenga el permiso VIEW SERVER STATE en el servidor. Para obtener más información sobre los permisos, consulta Permisos.

Métricas de supervisión

Puedes supervisar las siguientes operaciones relacionadas con xevent como parte de las métricas de Cloud SQL, disponibles a través del Explorador de métricas:

  • database/sqlserver/xevents_upload_count: Indica el total de intentos de carga de archivos de xevent que se realizaron correctamente y los que fallaron. Revisa esta métrica para supervisar si tus cargas se realizaron correctamente.
  • database/sqlserver/xevents_size.: Indica cuánto espacio en disco usan los archivos de xevent almacenados en la instancia, en bytes.

Supervisa las sesiones de XEvent

Puedes supervisar las actividades relacionadas con la sesión de XEvent a través del archivo xevents.log para las siguientes operaciones:

  • Los archivos de salida de XEvent se quitaron del disco, no se subieron a Cloud Storage y ocupaban un espacio en el disco superior al valor asociado con cloud sql xe output total disk size (mb).
  • Los archivos de salida de XEvent que se quitaron del disco, que no se subieron a Cloud Storage y que son más antiguos que el valor asociado con cloud sql xe file retention

Consideraciones para las réplicas de lectura

Esta sección contiene información sobre las sesiones de XEvent para réplicas de lectura nuevas y existentes.

Para réplicas de lectura nuevas

  • Todos los parámetros de configuración de la sesión de XEvent que se pasan a través de marcas de base de datos en la instancia original están disponibles en la réplica de lectura recién creada.
  • Todas las sesiones de XEvent presentes en la instancia original cuando se crean las réplicas de lectura están disponibles en la réplica de lectura. Ten en cuenta que las sesiones de XEvent en la réplica de lectura deben iniciarse de forma manual, a menos que se configuren para que se inicien automáticamente. Para obtener más información, consulta Cómo crear sesiones de XEvent.
  • Si clonas una instancia principal, todas las marcas de base de datos que aparezcan en la instancia principal se propagarán a la instancia clonada. Además, debes otorgar permisos a la cuenta de servicio de la instancia clonada para que vuelva a acceder al bucket de Cloud Storage.

Para réplicas de lectura existentes

  • Los parámetros de configuración de la sesión de XEvent que se pasan a través de marcas de base de datos a la instancia original no se propagan a las réplicas de lectura.
  • Las sesiones de XEvent creadas en la instancia original no se propagan a las réplicas de lectura.