FirebirdSQL logo

MON$DATABASE

MON$DATABASE zeigt Header-Daten der Datenbank an, mit der der aktuelle Benutzer verbunden ist.

Spaltenname Datentyp Beschreibung

MON$DATABASE_NAME

VARCHAR(255)

Name und voller Pfad der primären Datenbankdatei oder der Datenbank-Alias.

MON$PAGE_SIZE

SMALLINT

Datenbank Seitengröße in Bytes.

MON$ODS_MAJOR

SMALLINT

Haupt-ODS-Version, z.B. 11

MON$ODS_MINOR

SMALLINT

Unter-ODS-Version, z.B. 2

MON$OLDEST_TRANSACTION

INTEGER

Nummer der ältesten (relevanten) Transaktion (oldest [interesting] transaction (OIT))

MON$OLDEST_ACTIVE

INTEGER

Nummer der ältesten aktiven Transaktion (oldest active transaction (OAT))

MON$OLDEST_SNAPSHOT

INTEGER

Nummer der Transaktion, die zum Zeitpunkt der OAT aktiv war - älteste Snapshot Transaktion (oldest snapshot transaction (OST))

MON$NEXT_TRANSACTION

INTEGER

Nummer der nächsten Transaktion zum Zeitpunkt als der Monitoring-Snapshot erstellt wurde

MON$PAGE_BUFFERS

INTEGER

Die Anzahl der Seiten, die im Speicher für den Datenbank Seiten-Cache (page cache) zugewiesen wurden

MON$SQL_DIALECT

SMALLINT

SQL-Dialekt der Datenbank: 1 oder 3

MON$SHUTDOWN_MODE

SMALLINT

Der derzeitige Shutdown-Status der Datenbank:

0 - Die Datenbank ist online
1 - Multi-User Shutdown
2 - Single-User Shutdown
3 - Kompletter Shutdown

MON$SWEEP_INTERVAL

INTEGER

Sweep-Intervall

MON$READ_ONLY

SMALLINT

Dieses Kennzeichen gibt an, ob die Datenbank im Modus read-only (Wert 1) oder read-write (Wert 0) arbeitet.

MON$FORCED_WRITES

SMALLINT

Gibt an, ob der Schreibmodus der Datenbank auf synchrones Schreiben (forced writes ON, Wert ist 1) oder asynchrones Schreiben (forced writes OFF, Wert ist 0) gestellt ist

MON$RESERVE_SPACE

SMALLINT

Gibt an, ob reserve_space (Wert 1) oder use_all_space (Wert 0) zum Füllen der Datenbankseiten verwendet wird.

MON$CREATION_DATE

TIMESTAMP WITH TIME ZONE

Datum und Zeit zu der die Datenbank erstellt oder wiederhergestellt wurde.

MON$PAGES

BIGINT

Anzahl der zugewiesenen Seiten der Datenbank auf einem externen Gerät

MON$STAT_ID

INTEGER

Statistik-Kennung

MON$BACKUP_STATE

SMALLINT

Derzeitiger physikalischer Backup-Status (nBackup):

0 - normal
1 - stalled
2 - merge

MON$CRYPT_PAGE

BIGINT

Anzahl verschlüsselter Seiten

MON$OWNER

CHAR(63)

Benutzername des Datenbankbesitzers

MON$SEC_DATABASE

CHAR(7)

Zeigt an, welcher Typ von Sicherheitsdatenbank verwendet wird:

Default - Standard-Sicherheitsdatenbank, d. h. security3.fdb
Self - aktuelle Datenbank wird als Sicherheitsdatenbank verwendet
Other - eine andere Datenbank wird als Sicherheitsdatenbank verwendet (nicht sie selbst oder security4.fdb)

MON$CRYPT_STATE

SMALLINT

Aktueller Stand der Datenbankverschlüsselung

0 - nicht verschlüsselt
1 - verschlüsselt
2 - laufende Entschlüsselung
3 - laufende Verschlüsselung

MON$GUID

CHAR(38)

Datenbank-GUID (persistent bis Wiederherstellung/Fixup)

MON$FILE_ID

VARCHAR(255)

Eindeutige ID der Datenbankdatei auf Dateisystemebene

MON$NEXT_ATTACHMENT

BIGINT

Aktueller Wert der nächsten Verbindungs-ID

MON$NEXT_STATEMENT

BIGINT

Aktueller Wert der nächsten Statement-ID

MON$REPLICA_MODE

SMALLINT

Datenbankreplikatmodus

0 - kein Replikat
1 - nur-lese-Replikat
2 - lese-schreib-Replikat

MON$IO_STATS

MON$IO_STATS zeigt Input/Output-Statistiken an.Die Zähler arbeiten kumulativ, gruppiert für jede Statistikgruppe.

Spaltenname Datentyp Beschreibung

MON$STAT_ID

INTEGER

Statistik-Kennung

MON$STAT_GROUP

SMALLINT

Statistik-Gruppe:

0 - Datenbank
1 - Verbindung
2 - Transaktion
3 - Statement
4 - Aufruf (Call)

MON$PAGE_READS

BIGINT

Anzahl der gelesenen Datenbankseiten

MON$PAGE_WRITES

BIGINT

Anzahl der geschriebenen Datenbankseiten

MON$PAGE_FETCHES

BIGINT

Anzahl der geholten (fetched) Datenbankseiten

MON$PAGE_MARKS

BIGINT

Anzahl der markierten Datenbankseiten

docnext count = 5

MON$MEMORY_USAGE

MON$MEMORY_USAGE zeigt Statistiken zu Speichernutzung an.

Spaltenname Datentyp Beschreibung

MON$STAT_ID

INTEGER

Statistik-Kennung

MON$STAT_GROUP

SMALLINT

Statistik-Gruppen:

0 - Datenbank
1 - Verbindung
2 - Transaktion
3 - Statement
4 - Aufruf (Call)

MON$MEMORY_USED

BIGINT

Die Größe des genutzten Speichers in Bytes.Diese Daten beziehen sich auf die höchste Speicherzuteilung, die vom Server abgerufen wird.Dies ist nützlich, um Speicherlecks und exzessiven Speicherverbrauch in Verbindungen, Prozeduren, etc. zu ermitteln.

MON$MEMORY_ALLOCATED

BIGINT

Die vom Betriebssystem zugewiesene Speichermenge in Byte.Diese Daten beziehen sich auf die Low-Level-Speicherzuweisung, die vom Firebird-Speichermanager durchgeführt wird - die vom Betriebssystem zugewiesene Speichermenge -, mit der Sie die physische Speichernutzung steuern können.

MON$MAX_MEMORY_USED

BIGINT

Der größte Speicherverbrauch für dieses Objekt in Bytes.

MON$MAX_MEMORY_ALLOCATED

BIGINT

Die größte Speicherreservierung für dieses Objekt durch das Betriebssystem in Bytes.

Note

Zähler, die den Datensätzen auf Datenbankebene MON$DATABASE (MON$STAT_GROUP = 0) zugeordnet sind, zeigen die Speicherzuweisung für alle Verbindungen an.In Classic und SuperClassic zeigen Nullwerte der Zähler an, dass diese Architekturen keinen gemeinsamen Cache haben.

Kleinere Speicherzuweisungen werden hier nicht gesammelt, sondern stattdessen dem Datenbankspeicherpool hinzugefügt.

Erhalten von 10 Anfragen, die den meisten Speicher verbrauchen
SELECT
  STMT.MON$ATTACHMENT_ID,
  STMT.MON$SQL_TEXT,
  MEM.MON$MEMORY_USED
FROM MON$MEMORY_USAGE MEM
NATURAL JOIN MON$STATEMENTS STMT
ORDER BY MEM.MON$MEMORY_USED DESC
FETCH FIRST 10 ROWS ONLY

MON$RECORD_STATS

MON$RECORD_STATS zeigt Statistiken auf Datensatzebene an.Die Zähler sind kumulativ nach Gruppe für jede Statistikgruppe.

Spaltenname Datentyp Beschreibung

MON$STAT_ID

INTEGER

Statistik-Kennung

MON$STAT_GROUP

SMALLINT

Statistik-Gruppen:

0 - Datenbank
1 - Verbindung
2 - Transaktion
3 - Statement
4 - Aufruf (Call)

MON$RECORD_SEQ_READS

BIGINT

Anzahl der sequenziell gelesenen Datensätze

MON$RECORD_IDX_READS

BIGINT

Anzahl der mittels Index gelesenen Datensätze

MON$RECORD_INSERTS

BIGINT

Anzahl der eingefügten Datensätze

MON$RECORD_UPDATES

BIGINT

Anzahl der aktualisierten Datensätze

MON$RECORD_DELETES

BIGINT

Anzahl der gelöschten Datensätze

MON$RECORD_BACKOUTS

BIGINT

Anzahl der Datensätze für die eine neue primäre Datensatzversion während eines Rollbacks oder Savepoint-Undo erstellt wurde.

MON$RECORD_PURGES

BIGINT

Anzahl der Datensätze für die die Versionskette nicht länger von der OAT (oldest active transaction) oder jüngeren Transaktionen benötigt wird.

MON$RECORD_EXPUNGES

BIGINT

Anzahl der Datensätze, in denen die Versionskette aufgrund von Löschungen innerhalb von Transaktionen gelöscht wird, die älter als die OAT (oldest active transaction) sind

MON$RECORD_LOCKS

BIGINT

Anzahl gesperrter Datensätze records

MON$RECORD_WAITS

BIGINT

Anzahl der Aktualisierungs-, Lösch- oder Sperrversuche für Datensätze, die anderen aktiven Transaktionen gehören.Die Transaktion befindet sich im WAIT-Modus.

MON$RECORD_CONFLICTS

BIGINT

Anzahl der erfolglosen Aktualisierungs-, Lösch- oder Sperrversuche für Datensätze, die anderen aktiven Transaktionen gehören.Diese werden als Aktualisierungskonflikte gemeldet.

MON$BACKVERSION_READS

BIGINT

Anzahl der gelesenen Back-Versionen, um sichtbare Datensätze zu finden

MON$FRAGMENT_READS

BIGINT

Anzahl der gelesenen fragmentierten Datensätze

MON$RECORD_RPT_READS

BIGINT

Anzahl der wiederholten Lesevorgänge von Datensätzen

MON$RECORD_IMGC

BIGINT

Anzahl der vom zwischengeschalteten Garbage Collector verarbeiteten Datensätze

MON$STATEMENTS

MON$STATEMENTS zeigt Anweisungen an, die zur Ausführung vorbereitet sind.

Spaltenname Datentyp Beschreibung

MON$STATEMENT_ID

INTEGER

Statement-Kennung

MON$ATTACHMENT_ID

INTEGER

Verbindungs-Kennung

MON$TRANSACTION_ID

INTEGER

Transaktions-Kennung

MON$STATE

SMALLINT

Statement-Status:

0 - Leerlauf (idle)
1 - Aktiv
2 - verzögert (stalled)

MON$TIMESTAMP

TIMESTAMP WITH TIME ZONE

Der Zeitpunkt an dem das Statement vorbereitet wurde.

MON$SQL_TEXT

BLOB TEXT

Statement-Text in SQL

MON$STAT_ID

INTEGER

Statistik-Kennung

MON$EXPLAINED_PLAN

BLOB TEXT

Erklärter Ausführungsplan

MON$STATEMENT_TIMEOUT

INTEGER

Zeitüberschreitung der Anweisung auf Verbindungsebene in Millisekunden.Wenn 0 gemeldet wird, gilt das Timeout von MON$ATTACHMENT.MON$STATEMENT_TIMEOUT für diese Verbindung.

MON$IDLE_TIMER

TIMESTAMP WITH TIME ZONE

Ablaufzeit des Statement-Timers

Der Status STALLED zeigt an, dass die Anweisung zum Zeitpunkt des Snapshots einen geöffneten Cursor hatte und darauf wartete, dass der Client den Abruf von Zeilen wieder aufnimmt.

Aktive Abfragen anzeigen, ausgenommen diejenigen, die in Ihrer Verbindung ausgeführt werden
SELECT
  ATT.MON$USER,
  ATT.MON$REMOTE_ADDRESS,
  STMT.MON$SQL_TEXT,
  STMT.MON$TIMESTAMP
FROM MON$ATTACHMENTS ATT
JOIN MON$STATEMENTS STMT ON ATT.MON$ATTACHMENT_ID = STMT.MON$ATTACHMENT_ID
WHERE ATT.MON$ATTACHMENT_ID <> CURRENT_CONNECTION
AND STMT.MON$STATE = 1

Verwenden von MON$STATEMENTS zum Abbrechen einer Abfrage

Überwachungstabellen sind schreibgeschützt.Der Server verfügt jedoch über einen eingebauten Mechanismus zum Löschen (und nur zum Löschen) von Datensätzen in der Tabelle MON$STATEMENTS, der es ermöglicht, eine laufende Abfrage abzubrechen.

Note
Anmerkungen
  • Wenn derzeit keine Anweisungen in der Verbindung ausgeführt werden, wird jeder Versuch, Abfragen abzubrechen, nicht fortgesetzt

  • Nachdem eine Abfrage abgebrochen wurde, wird beim Aufrufen von API-Funktionen zum Ausführen/Abrufen ein Fehler mit dem Code isc_cancelled zurückgegeben

  • Nachfolgende Abfragen von dieser Verbindung werden wie gewohnt fortgesetzt

  • Der Abbruch der Anweisung erfolgt nicht synchron, sondern markiert nur die Anforderung der Stornierung, und die Stornierung selbst erfolgt asynchron durch den Server

Beispiel

Alle aktiven Abfragen für die angegebene Verbindung abbrechen:

DELETE FROM MON$STATEMENTS
  WHERE MON$ATTACHMENT_ID = 32

MON$TABLE_STATS

MON$TABLE_STATS gibt Statistiken auf Tabellenebene aus.

Spaltenname Datentyp Beschreibung

MON$STAT_ID

INTEGER

Statistikkennung

MON$STAT_GROUP

SMALLINT

Statistikgruppe:

0 - Datenbank
1 - Verbindung
2 - Transaktion
3 - Anweisung (Statement)
4 - Aufruf (Call)

MON$TABLE_NAME

CHAR(63)

Tabellenname

MON$RECORD_STAT_ID

INTEGER

Link zu MON$RECORD_STATS

Statistiken auf Datensatzebene für jede Tabelle für die aktuelle Verbindung abrufen
SELECT
  t.mon$table_name,
  r.mon$record_inserts,
  r.mon$record_updates,
  r.mon$record_deletes,
  r.mon$record_backouts,
  r.mon$record_purges,
  r.mon$record_expunges,
  ------------------------
  r.mon$record_seq_reads,
  r.mon$record_idx_reads,
  r.mon$record_rpt_reads,
  r.mon$backversion_reads,
  r.mon$fragment_reads,
  ------------------------
  r.mon$record_locks,
  r.mon$record_waits,
  r.mon$record_conflicts,
  ------------------------
  a.mon$stat_id
FROM mon$record_stats r
JOIN mon$table_stats t ON r.mon$stat_id = t.mon$record_stat_id
JOIN mon$attachments a ON t.mon$stat_id = a.mon$stat_id
WHERE a.mon$attachment_id = CURRENT_CONNECTION