Heim >Datenbank >MySQL-Tutorial >Wie können erweiterte SQL Server-Ereignisse die SQL-Anweisungen identifizieren, die sich auf eine bestimmte Tabelle auswirken?
Erstellen eines Triggers zum Erfassen von ausgeführtem SQL für eine betroffene Tabelle
Problem:
An Um mysteriöse Aktualisierungen einer bestimmten Tabelle zu beheben, ist es notwendig, die ausgeführte SQL zu identifizieren, die zu den Änderungen geführt hat. Leider befindet sich die Geschäftslogik der Anwendung hauptsächlich in der Datenbank, was es schwierig macht, die Quelle dieser Aktualisierungen zu ermitteln.
Ziel:
Erstellen Sie einen Trigger für die Tabelle in Frage, um die SQL-Anweisungen zu protokollieren, die sie betreffen, und so die Identifizierung des schuldigen SQL zu ermöglichen.
Ansatz mit SQL Server Extended Veranstaltungen:
1. Datenbank zum Testen einrichten:
Erstellen Sie eine einfache Datenbank mit den erforderlichen Tabellen und Triggern, um das problematische Szenario zu simulieren.
2. Erstellen Sie eine erweiterte Ereignissitzung:
Verwenden Sie erweiterte SQL Server-Ereignisse, um die für die Tabelle ausgeführten SQL-Anweisungen zu erfassen. Dazu gehört das Erstellen einer Ereignissitzung, die nach dem Auslöser filtert, der zum Simulieren der Aktualisierungen verwendet wird.
3. Proc1-Prozedur auslösen:
Proc1 ausführen, was eine Kaskade von Prozeduraufrufen auslöst, die schließlich die mysteriöse Aktualisierung der Tabelle verursachen.
4. Stoppen Sie die erweiterte Ereignissitzung:
Nachdem die Verfahren ausgeführt wurden, stoppen Sie die erweiterte Ereignissitzung.
5. Ereignisdaten analysieren:
Verwenden Sie die Funktion fn_xe_file_target_read_file, um die von der erweiterten Ereignissitzung erfassten Daten zu lesen und den Aufrufstapel zu analysieren, um die ausgeführten SQL-Anweisungen zu identifizieren.
Vorteile von Erweiterter Ereignisansatz:
Zusätzlich Vorteil:
Die erfassten Daten zu erweiterten Ereignissen können auch zur Behebung von Leistungsproblemen verwendet werden, indem die Abfrageausführungspläne und -ausführungen analysiert werden Statistiken.
Das obige ist der detaillierte Inhalt vonWie können erweiterte SQL Server-Ereignisse die SQL-Anweisungen identifizieren, die sich auf eine bestimmte Tabelle auswirken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!