Datenbankleistung mit erweiterten Ereignissen analysieren

Auf dieser Seite wird beschrieben, wie Sie erweiterte Ereignisse (XEvents) auf Ihren Instanzen verwenden.

Cloud SQL unterstützt die Verwendung von XEvents zum Überwachen, Identifizieren und Beheben von Leistungsproblemen Ihrer Datenbank. Dazu erstellen Sie XEvent-Sitzungen und lesen XEvent-Ausgabedateien. Sie können die XEvent-Ausgabedateien entweder in der Instanz lesen oder die XEvent-Dateien aus einem Cloud Storage-Bucket herunterladen.

Hinweise

Wenn Sie Ihre XEvent-Dateien in einen Cloud Storage-Bucket hochladen möchten, erstellen Sie einen Bucket in Ihrem Google Cloud -Konto.

Best Practices

  • So vermeiden Sie die Übertragung großer Dateien zwischen Regionen:
    • Multiregionale Cloud Storage-Buckets erstellen
    • Cloud Storage-Ziel-Bucket in derselben Region wie die Instanz einrichten
  • Bevor Sie XEvents verwenden, sollten Sie automatische Speichererweiterungen aktivieren. XEvent-Ausgabedateien benötigen je nach Gesamtgröße und Aufbewahrungsintervall möglicherweise viel Speicherplatz.
  • Richten Sie eine Datenaufbewahrungsrichtlinie für Ihren Cloud Storage-Bucket ein, um nicht zu viele XEvent-Dateien über einen längeren Zeitraum aufzubewahren.
  • Wenn Sie eine XEvent-Sitzung über die SSMS-Benutzeroberfläche erstellen, aber einige Felder für Eingabewerte nicht angezeigt werden, ändern Sie die Größe des Fensters XEvent-Sitzung erstellen.

XEvent-Sitzungen erstellen

XEvents wird auf Ihren Instanzen automatisch aktiviert.

Verwenden Sie den Befehl CREATE EVENT SESSION, um neue XEvent-Sitzungen zu definieren. Sie können auch die Benutzeroberfläche von SQL Server Management Studio (SSMS) verwenden, um XEvent-Sitzungen zu erstellen.

Cloud SQL erzwingt die folgenden Parameter für alle XEvent-Sitzungen:

Parameter Beschreibung Zulässige Werte
FILENAME Gibt den Dateinamen und den Pfad zum Speichern von XEvents-Sitzungsdaten an. Jeder Pfad, der mit /var/opt/mssql/xevents/ beginnt
MAX_FILE_SIZE Gibt die maximale Größe jeder Ausgabedatei an, bevor eine neue Datei erstellt wird. Mindestens 10 MB
Maximal 1 GB
MAX_MEMORY Gibt die maximale Arbeitsspeichermenge an, die der Sitzung für die Ereigniszwischenspeicherung zugewiesen werden soll. Mindestens 4 MB
Maximal 8 MB
MAX_DISPATCH_LATENCY Gibt die maximale Zeit in Sekunden an, die Ereignisse in der Ereigniswarteschlange verbleiben können, bevor sie an das Ziel gesendet werden. Mindestens 1 Sekunde
Maximal 30 Sekunden
MAX_EVENT_SIZE Legt die maximale Größe jedes Ereignisses in Byte fest. Mindestens 4 MB
Maximal 8 MB

Parameter für die XEvent-Sitzungskonfiguration

Sie können XEvent-Sitzungen mit den folgenden Parametern als benutzerdefinierte Flags konfigurieren:

Parameter Beschreibung
cloud sql xe bucket name Geben Sie den Cloud Storage-Bucket an, in den Sie die Ausgabe der XEvent-Sitzung hochladen möchten. Wenn dies nicht angegeben ist, lädt Cloud SQL die Ausgabedaten der XEvent-Sitzung nicht in Cloud Storage hoch.
cloud sql xe output total disk size (mb) Geben Sie den Speicherplatz an, der für die Ausgabe aller XEvent-Sitzungen reserviert werden soll. Wenn dieses nicht angegeben ist, verwendet Cloud SQL einen Standardwert von 512 MB. Wenn die XEvent-Ausgabedateien mehr Speicherplatz belegen als der Wert von cloud sql xe output total disk size (mb), werden diese Dateien von Cloud SQL von der Festplatte entfernt.
cloud sql xe file retention (mins) Geben Sie die Aufbewahrungszeit für Dateien an, die von den Dateizielen von XEvent-Sitzungen generiert werden. Wenn dieses nicht angegeben ist, verwendet Cloud SQL einen Standardwert von 7 Tagen.
cloud sql xe upload interval (mins) Geben Sie das Uploadintervall für XEvent-Dateien an, die in Cloud Storage hochgeladen werden. Wenn dieses nicht angegeben ist, verwendet Cloud SQL einen Standardwert von 10 Minuten.

Weitere Informationen zum Festlegen dieser Flags finden Sie unter Datenbank-Flags konfigurieren.

XEvent-Sitzungsausgabedateien lesen

Sie können XEvent-Sitzungsausgabedateien entweder aus einer Cloud SQL-Instanz oder aus einem Cloud Storage-Bucket lesen.

XEvent-Ausgabedateien aus einer Instanz lesen

Um die Daten aus einer XEvent-Datei abzurufen, die von einer XEvent-Sitzung erstellt wird, verwenden Sie die Funktion sys.fn_xe_file_target_read_file.

Beispiel:

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

XEvent-Ausgabedateien aus einem Bucket lesen

Wenn Sie XEvent-Ausgabedateien aus einem Cloud Storage-Bucket lesen möchten, laden Sie die Dateien aus dem Bucket in eine SQL Server-Instanz herunter. Sie können die Datei von einer der folgenden Instanzen herunterladen:

  • Eine Compute Engine-Windows-Instanz
  • Eine Compute Engine-Linux-Instanz
  • Eine andere Art von Instanz, auf der SQL Server ausgeführt wird

Übertragen Sie dann die XEvent-Ausgabedateien aus dem Bucket an einen für diese Instanz zugänglichen Speicherort, z. B. an das lokale Laufwerk. Führen Sie dann die Funktion sys.fn_xe_file_target_read_file mit einem Konto aus, das die Berechtigung VIEW SERVER STATE auf dem Server hat, um Informationen aus der XEvent-Ausgabedatei zurückzugeben. Weitere Informationen zu Berechtigungen finden Sie unter Berechtigungen.

Messwerte überwachen

Sie können die folgenden xevent-bezogenen Vorgänge als Teil der Cloud SQL-Messwerte überwachen, die über Metrics Explorer verfügbar sind:

  • database/sqlserver/xevents_upload_count: Gibt die Gesamtzahl der erfolgreichen und fehlgeschlagenen Upload-Versuche von XEvent-Dateien an. Prüfen Sie diesen Messwert, um zu prüfen, ob Ihre Uploads erfolgreich waren.
  • database/sqlserver/xevents_size: Gibt an, wie viel Speicherplatz von den auf der Instanz gespeicherten XEvent-Dateien belegt wird, in Byte.

XEvent-Sitzungen überwachen

Sie können XEvent-Sitzungsaktivitäten über die Datei xevents.log für die folgenden Vorgänge überwachen:

  • Die XEvent-Ausgabedateien wurden von der Festplatte entfernt, da sie nicht in Cloud Storage hochgeladen wurden und mehr Speicherplatz belegten als der Wert, der mit cloud sql xe output total disk size (mb) verknüpft ist.
  • Die XEvent-Ausgabedateien, die vom Datenträger entfernt wurden, die nicht in Cloud Storage hochgeladen wurden und die älter als der Wert sind, der mit cloud sql xe file retention verknüpft ist.

Hinweise zu Lesereplikaten

Dieser Abschnitt enthält Informationen zu XEvent-Sitzungen für neue und vorhandene Lesereplikate.

Für neue Lesereplikate

  • Alle XEvent-Sitzungskonfigurationsparameter, die über Datenbankflags auf der ursprünglichen Instanz übergeben werden, sind auf dem neu erstellten Lesereplikat verfügbar.
  • Alle XEvent-Sitzungen, die auf der ursprünglichen Instanz vorhanden sind, wenn die Lesereplikate erstellt werden, sind auf dem Lesereplikat verfügbar. XEvent-Sitzungen auf dem Lesereplikat müssen manuell gestartet werden, sofern sie nicht für den automatischen Start konfiguriert sind. Weitere Informationen finden Sie unter XEvent-Sitzungen erstellen.
  • Wenn Sie eine primäre Instanz klonen, werden alle Datenbankflags, die in der primären Instanz vorhanden sind, in die geklonte Instanz übertragen. Außerdem müssen Sie dem Dienstkonto der geklonten Instanz wieder Berechtigungen für den Zugriff auf den Cloud Storage-Bucket gewähren.

Für vorhandene Lesereplikate

  • XEvent-Sitzungskonfigurationsparameter, die über Datenbankflags an die ursprüngliche Instanz übergeben werden, werden nicht an Lesereplikate weitergegeben.
  • XEvent-Sitzungen, die auf der ursprünglichen Instanz erstellt wurden, werden nicht an Lesereplikate weitergegeben.