Erfassen einer Ablaufverfolgung in Assistent für Datenbankexperimente

Sie können Assistent für Datenbankexperimente (DEA) verwenden, um eine Ablaufverfolgungsdatei mit einem Protokoll der erfassten Serverereignisse zu erstellen. Ein erfasstes Serverereignis ist ein Ereignis, das während eines bestimmten Zeitraums auf einem bestimmten Server auftritt. Eine Ablaufverfolgungserfassung muss einmal pro Server ausgeführt werden.

Bevor Sie eine Ablaufverfolgungserfassung starten, stellen Sie sicher, dass Sie alle Zieldatenbanken sichern.

Die Abfragezwischenspeicherung in SQL Server wirkt sich möglicherweise auf Auswertungsergebnisse aus. Es wird empfohlen, den SQL Server-Dienst (MSSQLSERVER) in der Dienstanwendung neu zu starten, um die Konsistenz der Auswertungsergebnisse zu verbessern.

Konfigurieren einer Ablaufverfolgungserfassung

  1. Wählen Sie in DEA auf der linken Navigationsleiste das Kamerasymbol aus, und wählen Sie dann auf der Seite "Alle Aufzeichnungen " die Option "Neue Aufnahme" aus.

    Create a capture in DEA

  2. Geben Sie auf der Seite "Neue Erfassung " unter "Erfassungsdetails" die folgenden Informationen ein, oder wählen Sie sie aus:

    • Erfassungsname: Geben Sie einen Namen für die Ablaufverfolgungsdatei für ihre Erfassung ein.

    • Format: Geben Sie das Format (Trace oder XEvents) für die Aufnahme an.

    • Dauer: Wählen Sie die Dauer (in Minuten) aus, die die Ablaufverfolgungserfassung ausführen soll.

    • Aufnahmespeicherort: Wählen Sie den Zielpfad für die Ablaufverfolgungsdatei aus.

      Hinweis

      Der Dateipfad zur Ablaufverfolgungsdatei muss sich auf dem Computer befinden, auf dem SQL Server ausgeführt wird. Wenn der SQL Server-Dienst nicht für ein bestimmtes Konto festgelegt ist, benötigt der Dienst möglicherweise Schreibberechtigungen für den angegebenen Ordner, damit die Ablaufverfolgungsdatei geschrieben werden kann.

  3. Vergewissern Sie sich, dass Sie eine Sicherung erstellt haben, indem Sie das Kontrollkästchen Ja, ich habe die Sicherung manuell übernommen... Kontrollkästchen.

  4. Geben Sie unter "Details erfassen" die folgenden Informationen ein, oder wählen Sie sie aus:

    • Servertyp: Geben Sie den Typ des SQL Server an (SqlServer, AzureSqlDb, AzureSqlManagedInstance).
    • Servername: Geben Sie den Servernamen oder die IP-Adresse Ihres SQL Server an.
    • Authentifizierungstyp: Wählen Sie für den Authentifizierungstyp Windows aus.
    • Datenbankname: Geben Sie einen Namen für eine Datenbank ein, für die eine Datenbankablaufverfolgung gestartet werden soll. Wenn Sie keine Datenbank angeben, wird die Ablaufverfolgung auf allen Datenbanken auf dem Server erfasst.
  5. Aktivieren oder deaktivieren Sie die Kontrollkästchen "Verbindung verschlüsseln" und "Serverzertifikat vertrauen" entsprechend Ihrem Szenario.

    New Capture page

Starten der Ablaufverfolgungserfassung

  1. Nachdem Sie die erforderlichen Informationen eingegeben oder ausgewählt haben, wählen Sie "Start " aus, um die Ablaufverfolgungserfassung zu initiieren.

    Wenn die eingegebenen Informationen gültig sind, beginnt der Ablaufverfolgungserfassungsprozess. Andernfalls werden Textfelder mit ungültigen Einträgen rot hervorgehoben. Wenn Fehler auftreten, korrigieren Sie alle erforderlichen Einträge, und wählen Sie dann erneut "Starten" aus.

    Während die Ablaufverfolgungserfassung ausgeführt wird, wird unter "Erfassungsdetails" der Status und der Fortschritt des Ablaufverfolgungsvorgangs angezeigt.

    Monitor capture progress

  2. Wenn die Ablaufverfolgungserfassung abgeschlossen ist, wird die neue Ablaufverfolgungsdatei (.trc) am Aufnahmespeicherort gespeichert, den Sie während der erstkonfiguration spezifisch haben.

    Completed trace capture

    Die Ablaufverfolgungsdatei enthält Ablaufverfolgungsergebnisse der Aktivität einer SQL Server-Datenbank. TRC-Dateien sollen weitere Informationen zu Fehlern bereitstellen, die von SQL Server erkannt und gemeldet werden.

Häufig gestellte Fragen zur Ablaufverfolgungserfassung

Im Folgenden werden einige häufig gestellte Fragen zur Ablaufverfolgungserfassung in DEA aufgeführt.

F: Welche Ereignisse werden erfasst, wenn ich eine Ablaufverfolgungserfassung in einer Produktionsdatenbank ausführt?

In der folgenden Tabelle sind die Ereignisse und die entsprechenden Spaltendaten aufgeführt, die DEA für Ablaufverfolgungen sammelt:

Ereignisname Textdaten (1) Binäre Daten (2) Datenbank-ID (3) Hostname (8) Anwendungsname (10) Anmeldename (11) SPID (12) Startzeit (14) Endzeit (15) Datenbankname (35) Ereignissequenz (51) IsSystem (60)
RPC:Completed (10) * * * * * * * * * * *
RPC:Starting (11) * * * * * * * * * *
RPC-Ausgabeparameter (100) * * * * * * * * * *
SQL:BatchCompleted (12) * * * * * * * * * * *
SQL:BatchStarting (13) * * * * * * * * * *
Überwachungsanmeldung (14) * * * * * * * * * * *
Überwachungsprotokollierung (15) * * * * * * * * * * *
Vorhandene Verbinden ion (17) * * * * * * * * * * *
CursorOpen (53) * * * * * * * * * *
CursorPrepare (70) * * * * * * * * * *
Vorbereiten von SQL (71) * * * * * * * * *
Exec Prepared SQL (72) * * * * * * * * *
CursorExecute (74) * * * * * * * * * *
CursorUnprepare (77) * * * * * * * * * *
CursorClose (78) * * * * * * * * * *

F: Gibt es einen Leistungseffekt auf meinem Produktionsserver, wenn die Ablaufverfolgungserfassung ausgeführt wird?

Ja, während der Ablaufverfolgungssammlung gibt es einen minimalen Leistungseffekt. Bei unseren Tests fanden wir etwa einen 3% Arbeitsspeicherdruck.

F: Welche Arten von Berechtigungen sind zum Erfassen von Ablaufverfolgungen in einer Produktionsauslastung erforderlich?

  • Der Windows-Benutzer, der den Ablaufverfolgungsvorgang in der DEA-Anwendung ausführt, muss über sysadmin-Rechte auf dem Computer verfügen, auf dem SQL Server ausgeführt wird.
  • Das auf dem Computer verwendete Dienstkonto, auf dem SQL Server ausgeführt wird, muss Schreibzugriff auf den angegebenen Ablaufverfolgungsdateipfad haben.

F: Kann ich Ablaufverfolgungen für den gesamten Server oder nur für eine einzelne Datenbank erfassen?

Mithilfe von DEA können Sie Ablaufverfolgungen für alle Datenbanken auf dem Server oder für eine einzelne Datenbank erfassen.

F: Ich habe einen verknüpften Server in meiner Produktionsumgebung konfiguriert. Werden diese Abfragen in den Ablaufverfolgungen angezeigt?

Wenn Sie eine Ablaufverfolgungserfassung für den gesamten Server ausführen, erfasst die Ablaufverfolgung alle Abfragen, einschließlich der verknüpften Serverabfragen. Wenn Sie eine Ablaufverfolgungserfassung für den gesamten Server ausführen möchten, lassen Sie das Feld "Datenbankname " unter "Neue Erfassung " leer.

F: Was ist die empfohlene Mindestzeit für Produktionsauslastungsablaufverfolgungen?

Es wird empfohlen, eine Zeit auszuwählen, die die gesamte Arbeitsauslastung am besten darstellt. Auf diese Weise wird die Analyse für alle Abfragen in Ihrer Workload ausgeführt.

F: Wie wichtig ist es, eine Datenbanksicherung direkt vor dem Starten einer Ablaufverfolgungserfassung zu übernehmen?

Bevor Sie eine Ablaufverfolgungserfassung starten, stellen Sie sicher, dass Sie alle Zieldatenbanken sichern. Die erfasste Ablaufverfolgung in Ziel 1 und Ziel 2 wird wiedergegeben. Wenn der Datenbankstatus nicht identisch ist, sind die Ergebnisse der Experimentierung schief.

F: Kann ich XEvents anstelle von Ablaufverfolgungen sammeln und XEvents wiedergeben?

Ja. DEA unterstützt XEvents. Laden Sie die neueste Version von DEA herunter, und probieren Sie es aus.

Problembehandlung bei Ablaufverfolgungsaufzeichnungen

Wenn beim Ausführen einer Ablaufverfolgungserfassung ein Fehler angezeigt wird, bestätigen Sie Folgendes:

  • Der Name des Computers, auf dem SQL Server ausgeführt wird, ist gültig. Versuchen Sie, eine Verbindung mit dem Computer herzustellen, auf dem SQL Server ausgeführt wird, mithilfe von SQL Server Management Studio (SSMS).
  • Ihre Firewallkonfiguration blockiert keine Verbindungen mit dem Computer, auf dem SQL Server ausgeführt wird.
  • Der Benutzer verfügt über die Berechtigungen, die in den häufig gestellten Fragen zur Wiedergabe aufgeführt sind.
  • Der Ablaufverfolgungsname folgt nicht der Standardrolloverkonvention (Capture_1). Probieren Sie stattdessen Ablaufverfolgungsnamen wie Capture_1A oder Capture1 aus.

Im Folgenden finden Sie einige mögliche Fehler, die Möglicherweise angezeigt werden, und Lösungen zum Beheben dieser Fehler:

Mögliche Fehler: Lösung
Die Ablaufverfolgung für das SQL Server-Ziel kann nicht gestartet werden, überprüfen Sie, ob Sie über die erforderlichen Berechtigungen verfügen und ob das SQL Server-Konto Schreibzugriff auf den angegebenen Ablaufverfolgungsdateipfad sql Error Code (53) hat. Der Benutzer, der das DEA-Tool ausführt, muss Zugriff auf den Computer haben, auf dem SQL Server ausgeführt wird. Dem Benutzer muss die Sysadmin-Rolle zugewiesen werden.
Die Ablaufverfolgung auf dem SQL Server-Ziel kann nicht gestartet werden, überprüfen Sie, ob Sie über die erforderlichen Berechtigungen verfügen und ob das SQL Server-Konto Schreibzugriff auf den angegebenen Ablaufverfolgungsdateipfad sql Error Code (19062) hat. Der angegebene Ablaufverfolgungspfad ist möglicherweise nicht vorhanden, oder der Ordner verfügt nicht über Schreibberechtigungen für das Konto, unter dem SQL Server-Dienste ausgeführt werden (z. B. NETWORK SERVICE). Der Pfad muss vorhanden sein, und er muss über die erforderlichen Berechtigungen verfügen, damit die Ablaufverfolgung gestartet werden kann.
Eine DEA-Ablaufverfolgung wird derzeit auf dem Zielserver ausgeführt. Eine aktive Ablaufverfolgung wird bereits auf dem Zielserver ausgeführt. Sie können keine neue Ablaufverfolgung starten, wenn bereits eine serverweite Ablaufverfolgung ausgeführt wird.
Die angeforderte Datenbank kann nicht zum Erfassen der Ablaufverfolgung geöffnet werden. Dieser Fehler kann durch einen falschen Datenbanknamen verursacht werden. Die angegebene Datenbank ist nicht vorhanden oder für den aktuellen Benutzer nicht zugänglich. Verwenden Sie den richtigen Datenbanknamen.

Wenn weitere Fehler mit der Bezeichnung SQL-Fehlercode angezeigt werden, finden Sie unter Datenbank-Engine Fehler ausführliche Beschreibungen.

Siehe auch