Analizzare le prestazioni del database con gli eventi estesi

Questa pagina descrive come utilizzare gli eventi estesi (XEvents) nelle tue istanze.

Cloud SQL supporta l'utilizzo di XEvents per il monitoraggio, l'identificazione e la risoluzione dei problemi relativi alle prestazioni del database. Per farlo, devi creare sessioni XEvent e leggere i file di output XEvent. Puoi leggere i file di output XEvent sull'istanza o scaricandoli da un bucket Cloud Storage.

Prima di iniziare

Se vuoi caricare i file XEvent in un bucket Cloud Storage, crea un bucket nel tuo account Google Cloud.

Best practice

  • Per evitare di trasferire file di grandi dimensioni tra regioni, ti consigliamo di procedere nel seguente modo:
    • Creare bucket Cloud Storage multiregionali
    • Configura il bucket Cloud Storage di destinazione nella stessa regione dell'istanza
  • Prima di utilizzare XEvents, abilita gli aumenti automatici dello spazio di archiviazione. I file di output XEvent, a seconda delle dimensioni totali e degli intervalli di conservazione, potrebbero richiedere molto spazio su disco.
  • Per evitare di conservare troppi file XEvent per un lungo periodo di tempo, configura un criterio di conservazione dei dati per il tuo bucket Cloud Storage.
  • Se crei una sessione XEvent utilizzando l'interfaccia utente di SSMS, ma alcune caselle per i valori di input non vengono visualizzate, ridimensiona la finestra Crea sessione XEvent.

Come creare sessioni XEvent

XEvents viene attivato automaticamente nelle istanze.

Utilizza il comando CREATE EVENT SESSION per definire nuove sessioni XEvent. Puoi anche utilizzare l'interfaccia utente di SQL Server Management Studio (SSMS) per creare sessioni XEvent.

Cloud SQL applica i seguenti parametri per tutte le sessioni XEvent:

Parametro Descrizione Valori consentiti
FILENAME Specifica il nome file e il percorso per l'archiviazione dei dati della sessione XEvents. Qualsiasi percorso che inizia con /var/opt/mssql/xevents/
MAX_FILE_SIZE Specifica la dimensione massima di ogni file di output prima della creazione di un nuovo file. Minimo 10 MB
Massimo 1 GB
MAX_MEMORY Specifica la quantità massima di memoria da allocare alla sessione per il buffering degli eventi. Minimo 4 MB
Massimo 8 MB
MAX_DISPATCH_LATENCY Specifica il tempo massimo (in secondi) per cui gli eventi possono rimanere nella coda di invio prima di essere inviati al target. Minimo 1 sec
Massimo 30 sec
MAX_EVENT_SIZE Imposta la dimensione massima di ogni evento, in byte. Minimo 4 MB
Massimo 8 MB

Parametri di configurazione della sessione XEvent

Puoi configurare le sessioni XEvent utilizzando i seguenti parametri come flag personalizzati:

Parametro Descrizione
cloud sql xe bucket name Specifica il bucket Cloud Storage in cui vuoi caricare l'output della sessione XEvent. Se non è specificato, Cloud SQL non carica i dati di output della sessione XEvent in Cloud Storage.
cloud sql xe output total disk size (mb) Specifica la quantità di spazio su disco da riservare per l'output di tutte le sessioni XEvent. Se non viene specificato, Cloud SQL utilizza uno spazio su disco predefinito di 512 MB. Se i file di output XEvent utilizzano uno spazio su disco superiore al valore di cloud sql xe output total disk size (mb), Cloud SQL rimuove questi file dal disco.
cloud sql xe file retention (mins) Specifica il tempo di conservazione nell'istanza in minuti per i file generati dai target file delle sessioni XEvent. Se non è specificato, Cloud SQL utilizza un valore predefinito di 7 giorni.
cloud sql xe upload interval (mins) Specifica l'intervallo di caricamento per i file XEvent caricati su Cloud Storage. Se non è specificato, Cloud SQL utilizza un valore predefinito di 10 minuti.

Per ulteriori informazioni sull'impostazione di questi flag, consulta Configurare i flag di database.

Come leggere i file di output della sessione XEvent

Puoi leggere i file di output della sessione XEvent da un'istanza Cloud SQL o da un bucket Cloud Storage.

Leggere i file di output XEvent da un'istanza

Per recuperare i dati da un file XEvent creato da una sessione XEvent, utilizza la funzione sys.fn_xe_file_target_read_file.

Ecco un esempio:

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

Leggere i file di output XEvent da un bucket

Per leggere i file di output XEvent da un bucket Cloud Storage, scaricali dal bucket in un'istanza SQL Server. Puoi scaricare da una delle seguenti istanze:

  • Un'istanza Windows Compute Engine
  • Un'istanza Linux Compute Engine
  • Un altro tipo di istanza che esegue SQL Server

Trasferisci quindi i file di output XEvent dal bucket a una posizione accessibile a quell'istanza, ad esempio il suo disco locale. Successivamente, per restituire le informazioni dal file di output XEvent, esegui la funzione sys.fn_xe_file_target_read_file con un account che dispone dell'autorizzazione VIEW SERVER STATE sul server. Per ulteriori informazioni sulle autorizzazioni, consulta Autorizzazioni.

Monitoraggio delle metriche

Puoi monitorare le seguenti operazioni relative a xevent nell'ambito delle metriche Cloud SQL, disponibili tramite Metrics Explorer:

  • database/sqlserver/xevents_upload_count: indica il totale dei tentativi di caricamento dei file xevent riusciti e non riusciti. Controlla questa metrica per monitorare se i caricamenti sono andati a buon fine.
  • database/sqlserver/xevents_size: indica la quantità di spazio su disco utilizzata dai file xevent archiviati nell'istanza, in byte.

Monitorare le sessioni XEvent

Puoi monitorare le attività relative alle sessioni XEvent tramite il file xevents.log per le seguenti operazioni:

  • I file di output XEvent rimossi dal disco, che non sono stati caricati su Cloud Storage e occupavano uno spazio su disco superiore al valore associato a cloud sql xe output total disk size (mb).
  • I file di output XEvent rimossi dal disco, che non sono stati caricati su Cloud Storage e sono precedenti al valore associato a cloud sql xe file retention.

Considerazioni sulle repliche di lettura

Questa sezione contiene informazioni sulle sessioni XEvent per le repliche di lettura nuove ed esistenti.

Per le nuove repliche di lettura

  • Tutti i parametri di configurazione della sessione XEvent trasmessi tramite i flag del database nell'istanza originale sono disponibili nella replica di lettura appena creata.
  • Tutte le sessioni XEvent presenti nell'istanza originale al momento della creazione delle repliche di lettura sono disponibili nella replica di lettura. Tieni presente che le sessioni XEvent sulla replica di lettura devono essere avviate manualmente, a meno che non siano configurate per l'avvio automatico. Per ulteriori informazioni, vedi Come creare sessioni XEvent.
  • Se cloni un'istanza principale, tutti i flag di database visualizzati nell'istanza principale vengono propagati all'istanza clonata. Inoltre, devi concedere le autorizzazioni all'account di servizio dell'istanza clonata per accedere di nuovo al bucket Cloud Storage.

Per le repliche di lettura esistenti

  • I parametri di configurazione della sessione XEvent trasmessi tramite i flag del database all'istanza originale non vengono propagati alle repliche di lettura.
  • Le sessioni XEvent create nell'istanza originale non vengono propagate alle repliche di lettura.