Datenbankleistung mit erweiterten Ereignissen analysieren

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

Cloud SQL unterstützt die Verwendung von XEvents zum Überwachen, Identifizieren und Beheben von Leistungsproblemen bei Ihrer Datenbank. Dazu erstellen Sie XEvent-Sitzungen und lesen XEvent-Ausgabedateien. Sie können die XEvent-Ausgabedateien entweder auf 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

  • Um die Übertragung großer Dateien zwischen Regionen zu vermeiden, empfehlen wir Folgendes:
    • Multiregionale Cloud Storage-Buckets erstellen
    • Cloud Storage-Ziel-Bucket in derselben Region wie die Instanz einrichten
  • Aktivieren Sie vor der Verwendung von XEvents die automatische Speichererweiterung. 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 in 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 für das Speichern von XEvent-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 Ereignisabrufwarteschlange bleiben 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 XEvent-Sitzungsausgabe hochladen möchten. Wenn dies nicht angegeben ist, werden die XEvent-Sitzungsausgabedaten nicht in Cloud Storage hochgeladen.
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 Standardspeicherplatz von 512 MB. Wenn die XEvent-Ausgabedateien mehr Speicherplatz belegen als der Wert von cloud sql xe output total disk size (mb), entfernt Cloud SQL diese Dateien vom Laufwerk.
cloud sql xe file retention (mins) Geben Sie die Aufbewahrungszeit in der Instanz in Minuten 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

Wenn Sie die Daten aus einer XEvent-Datei abrufen möchten, die von einer XEvent-Sitzung erstellt wurde, 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 den Metrics Explorer verfügbar sind:

  • database/sqlserver/xevents_upload_count: Gibt die Gesamtzahl der erfolgreichen und fehlgeschlagenen Uploadversuche von Xevent-Dateien an. Prüfen Sie diesen Messwert, um zu prüfen, ob Uploads erfolgreich waren.
  • database/sqlserver/xevents_size: Gibt an, wie viel Festplattenspeicher 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 vom Laufwerk entfernten XEvent-Ausgabedateien, die nicht in Cloud Storage hochgeladen wurden und mehr Speicherplatz belegten als der mit cloud sql xe output total disk size (mb) verknüpfte Wert.
  • Die vom Laufwerk entfernten XEvent-Ausgabedateien, die nicht in Cloud Storage hochgeladen wurden und älter als der mit cloud sql xe file retention verknüpfte Wert sind.

Hinweise zu Lesereplikaten

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

Für neue Lesereplikate

  • Alle Parameter für die XEvent-Sitzungskonfiguration, die über Datenbank-Flags in der ursprünglichen Instanz übergeben werden, sind im neu erstellten Lesereplikat verfügbar.
  • Alle XEvent-Sitzungen, die zum Zeitpunkt der Erstellung der Lesereplikate auf der ursprünglichen Instanz vorhanden sind, sind auch auf dem Lesereplikat verfügbar. XEvent-Sitzungen auf dem Leserreplikat müssen manuell gestartet werden, es sei denn, sie sind für den automatischen Start konfiguriert. Weitere Informationen finden Sie unter XEvent-Sitzungen erstellen.
  • Wenn Sie eine primäre Instanz klonen, werden alle Datenbank-Flags, die in der primären Instanz angezeigt werden, an die geklonte Instanz weitergegeben. Außerdem müssen Sie dem Dienstkonto der geklonten Instanz Berechtigungen zum erneuten Zugriff auf den Cloud Storage-Bucket gewähren.

Für vorhandene Lesereplikate

  • Parameter für die XEvent-Sitzungskonfiguration, die über Datenbankflaggen 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.