List open transactions to connected database
SELECT * FROM MON$TRANSACTIONS WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION;
Detach all connections to connected database
DELETE FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION;
View IO stats from instance
SELECT MON$PAGE_READS, MON$PAGE_WRITES, MON$PAGE_FETCHES, MON$PAGE_MARKS
FROM MON$IO_STATS WHERE MON$STAT_GROUP = 0;
Change table name
UPDATE RDB$RELATIONS SET RDB$RELATION_NAME='NEW TABLE NAME'
WHERE RDB$RELATION_NAME='OLD TABLE NAME';
UPDATE RDB$RELATION_FIELDS SET RDB$RELATION_NAME='NEW TABLE NAME'
WHERE RDB$RELATION_NAME='OLD TABLE NAME' AND RDB$SYSTEM_FLAG=0;
List tables
SELECT RDB$RELATION_NAME FROM RDB$RELATIONS
WHERE RDB$SYSTEM_FLAG=0 AND RDB$VIEW_BRL IS NULL;
List table fields
SELECT RDB$FIELD_NAME AS FIELD
FROM RDB$RELATIONS JOIN RDB$RELATION_FIELDS
ON (RDB$RELATION_FIELDS.RDB$RELATION_NAME = RDB$RELATIONS.RDB$RELATION_NAME)
WHERE RDB$RELATIONS.RDB$RELATION_NAME = 'TABLE NAME';
Cancelling all active queries for the specified connection
DELETE FROM MON$STATEMENTS WHERE MON$ATTACHMENT_ID = <ID>;
Display all active queries, excluding those running in your connection
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;
Get the call stack for all connections except your own
WITH RECURSIVE
HEAD AS (
SELECT
CALL.MON$STATEMENT_ID, CALL.MON$CALL_ID,
CALL.MON$OBJECT_NAME, CALL.MON$OBJECT_TYPE
FROM MON$CALL_STACK CALL
WHERE CALL.MON$CALLER_ID IS NULL
UNION ALL
SELECT
CALL.MON$STATEMENT_ID, CALL.MON$CALL_ID,
CALL.MON$OBJECT_NAME, CALL.MON$OBJECT_TYPE
FROM MON$CALL_STACK CALL
JOIN HEAD ON CALL.MON$CALLER_ID = HEAD.MON$CALL_ID
)
SELECT MON$ATTACHMENT_ID, MON$OBJECT_NAME, MON$OBJECT_TYPE
FROM HEAD
JOIN MON$STATEMENTS STMT ON STMT.MON$STATEMENT_ID = HEAD.MON$STATEMENT_ID
WHERE STMT.MON$ATTACHMENT_ID <> CURRENT_CONNECTION;