Obsah

Monitoring tables

Ve verzi Firebird 2.1

select * from mon$database;
select * from mon$attachments;
select * from mon$transactions;
select * from mon$statements where mon$state=1;

Dokumentace: http://wiki.firebirdsql.org/wiki/index.php?page=Monitoring+tables

Cancel query

Ukončí všechny SQL query kromě aktivního připojení:

DELETE FROM mon$statements WHERE mon$attachment_id <> current_connection;

Transactions ani attachments se nedají ukončit. Je tedy možno zabít vytěžující SQL dotaz, ale není možno uvolnit visející licence.

Zobrazeni blokujících transakcí

SELECT
a.MON$SERVER_PID, CAST(a.MON$REMOTE_ADDRESS AS VARCHAR(16)) AS IP,
t.MON$ATTACHMENT_ID, t.MON$TRANSACTION_ID, t.MON$TIMESTAMP,
s.MON$RECORD_UPDATES, s.MON$RECORD_INSERTS, s.MON$RECORD_DELETES
 FROM MON$TRANSACTIONS t
 JOIN MON$RECORD_STATS s ON s.MON$STAT_ID=t.MON$STAT_ID
 JOIN MON$ATTACHMENTS a ON a.MON$ATTACHMENT_ID=t.MON$ATTACHMENT_ID
 WHERE t.MON$STATE=1 AND s.MON$RECORD_UPDATES+s.MON$RECORD_INSERTS+s.MON$RECORD_DELETES>0
;