Die Firebird-Engine kann Aktivitäten in einer Datenbank überwachen und über die Monitoring-Tabellen für Benutzerabfragen zur Verfügung stellen.Die Definitionen dieser Tabellen sind immer in der Datenbank vorhanden, alle mit dem Präfix MON$
benannt.Die Tabellen sind virtuell: Sie werden nur in dem Moment mit Daten gefüllt, wenn der Benutzer sie abfragt.Das ist auch ein guter Grund, warum es sinnlos ist, Trigger für sie zu erstellen!
Der Schlüsselbegriff zum Verständnis der Überwachungsfunktion ist ein Aktivitäts-Snapshot.Die Aktivitätsmomentaufnahme stellt den aktuellen Zustand der Datenbank zu Beginn der Transaktion dar, in der die Überwachungstabellenabfrage ausgeführt wird.Es liefert viele Informationen über die Datenbank selbst, aktive Verbindungen, Benutzer, vorbereitete Transaktionen, laufende Abfragen und mehr.
Der Snapshot wird erstellt, wenn eine Überwachungstabelle zum ersten Mal abgefragt wird.Sie wird bis zum Ende der aktuellen Transaktion beibehalten, um eine stabile, konsistente Ansicht für Abfragen über mehrere Tabellen hinweg aufrechtzuerhalten, z. B. eine Master-Detail-Abfrage.Mit anderen Worten, Monitoring-Tabellen verhalten sich immer so, als ob sie sich in der Isolation SNAPSHOT TABLE STABILITY
(“consistency”) befinden, selbst wenn die aktuelle Transaktion mit einer niedrigeren Isolationsstufe gestartet wird.
Um den Snapshot zu aktualisieren, muss die aktuelle Transaktion abgeschlossen und die Überwachungstabellen in einem neuen Transaktionskontext erneut abgefragt werden.
-
SYSDBA und der Datenbankbesitzer haben vollen Zugriff auf alle Informationen, die in den Überwachungstabellen verfügbar sind
-
Normale Benutzer können Informationen über ihre eigenen Verbindungen sehen;andere Verbindungen sind für sie nicht sichtbar
Warning
|
In stark belasteten Umgebungen kann das Sammeln von Informationen über die Monitoringtabellen einen negativen Einfluss auf die Systemleistung haben. |
- [fblangref-appx05-monattach-de]
-
Informationen über aktive Datenbankattachments
- [fblangref-appx05-moncallstk-de]
-
Aufrufe des Stack durch aktive Abfragen gespeicherter Prozeduren und Trigger
- [fblangref-appx05-contxtvars-de]
-
Informationen zu benutzerdefinierten Kontextvariablen
- [fblangref-appx05-mondb-de]
-
Informationen über die Datenbank, an die die
CURRENT_CONNECTION
angehängt ist - [fblangref-appx05-iostats-de]
-
Eingabe-/Ausgabestatistiken
- [fblangref-appx05-memusage-de]
-
Statistiken zur Speichernutzung
- [fblangref-appx05-recstats-de]
-
Recordlevelstatistiken
- [fblangref-appx05-statements-de]
-
Zur Ausführung vorbereitete Anweisungen
- [fblangref-appx05-tablestats-de]
-
Statistiken auf Tabellenebene
- [fblangref-appx05-transacs-de]
-
Gestartete Transaktionen