Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
База данных / IS_to_STUD / Soft / 2.1.0.17798-Final / Firebird-2.1-ReleaseNotes.pdf
Скачиваний:
36
Добавлен:
18.03.2015
Размер:
684.09 Кб
Скачать

Administrative Features

1:attachment

2:transaction

3:statement

4:call

-MON$RECORD_SEQ_READS (number of records read sequentially)

-MON$RECORD_IDX_READS (number of records read via an index)

-MON$RECORD_INSERTS (number of inserted records)

-MON$RECORD_UPDATES (number of updated records)

-MON$RECORD_DELETES (number of deleted records)

-MON$RECORD_BACKOUTS (number of records where a new primary record version or a change to an existing primary record

version is backed out due to rollback or savepoint undo)

-MON$RECORD_PURGES (number of records where record version chain is being purged of versions no longer needed by OAT

or younger transactions)

-MON$RECORD_EXPUNGES (number of records where record version chain is being deleted due to deletions by transactions

older than OAT)

Note

Textual descriptions of all “state” and “mode” values can be found in the system table RDB$TYPES.

Usage

Creation of a snapshot is usually quite a fast operation, but some delay could be expected under high load (especially in the Classic Server).

A valid database connection is required in order to retrieve the monitoring data. The monitoring tables return information about the attached database only. If multiple databases are being accessed on the server, each of them has to be connected to and monitored separately.

The system variables CURRENT_CONNECTION and CURRENT_TRANSACTION could be used to select data about the caller's current connection and transaction respectively. These variables correspond to the ID columns of the appropriate monitoring tables.

Examples

1.Retrieve IDs of all CS processes loading CPU at the moment

SELECT MON$SERVER_PID

FROM MON$ATTACHMENTS

WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION

AND MON$STATE = 1

2.Retrieve information about client applications

SELECT MON$USER, MON$REMOTE_ADDRESS,

MON$REMOTE_PID,

106

Administrative Features

MON$TIMESTAMP

FROM MON$ATTACHMENTS

WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION

3.Get isolation level of the current transaction

SELECT MON$ISOLATION_MODE

FROM MON$TRANSACTIONS

WHERE MON$TRANSACTION_ID = CURRENT_TRANSACTION

4.Get statements that are currently active

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

5.Retrieve call stacks for all connections

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

Cancel a Running Query

Runaway and long-running queries can now be cancelled from a separate connection.

107