サーチ…


備考

Firebird 2.1とODS 11.1以降のデータベースでは、Firebirdは特定のデータベース内で発生するサーバー側の活動を監視する機能を導入しています。

SYSDBAとデータベースの所有者は、完全なデータベース監視を利用できます。通常のユーザーは、自分の添付ファイルに関する情報のみに制限されています。他の添付ファイルは表示されません。

Firebird 2.1およびODS 11.1以降で使用可能なモニタリングテーブル:

  • MON $ DATABASE(接続されたデータベース)
  • MON $ ATTACHMENTS(接続された添付ファイル)
  • MON $ TRANSACTIONS(開始トランザクション)
  • MON $ STATEMENTS(準備文)
  • MON $ CALL_STACK(アクティブなPSQL要求の呼び出しスタック)
  • MON $ IO_STATS(I / O統計)
  • MON $ RECORD_STATS(レコードレベル統計)

リファレンス: Firebird 2.1リリースノート

Firebird 2.5およびODS 11.2以降のデータベースでは、Firebirdは次の新しいモニタテーブルを追加します

  • MON $ MEMORY_USAGE(現在のメモリー使用量)
  • MON $ CONTEXT_VARIABLES(既知のコンテキスト変数)

リファレンス: Firebird 2.5リリースノート

接続されたデータベースの添付ファイルに関する情報を取得する

データベース接続に関する情報

SELECT
       a.mon$attachment_id as Attachment_ID,
       a.mon$server_pid as Server_PID, 
       case a.mon$state 
          when 1 then 'active'
          when 0 then 'idle'
       end as State, 
       a.mon$attachment_name as Database_Name, 
       a.mon$user as User_Name, 
       a.mon$role as Role_Name, 
       a.mon$remote_protocol as Remote_Protocol, 
       a.mon$remote_address as  Remote_Address, 
       a.mon$remote_pid as Remote_PID, 
       cs.rdb$character_set_name as Connection_Character_Set, 
       a.mon$timestamp as Established_At,
       case a.mon$garbage_collection 
          when 1 then 'allowed'
          when 0 then 'not allowed'
       end as Garbage_Collection, 
       a.mon$remote_process as Remote_Process, 
       a.mon$stat_id as Statistics_ID
    FROM
       mon$attachments a, rdb$character_sets cs
    where 
       (a.mon$character_set_id = cs.rdb$character_set_id)

結果:

ここに画像の説明を入力

より具体的な例

接続されたクライアントに関する情報。

SELECT
   a.mon$remote_protocol as Remote_Protocol,
   a.mon$remote_address as  Remote_Address,
   a.mon$remote_pid as Remote_PID,
   a.mon$timestamp as Established_At,
   a.mon$remote_process as Remote_Process
FROM
   mon$attachments a

現時点でCPUをロードしているすべてのサーバープロセスのPIDを取得します(Classic Server Architectureで興味深い)

SELECT
   MON$SERVER_PID
FROM
   MON$ATTACHMENTS
WHERE
   MON$STATE = 1

接続されたユーザー、ワークステーション、およびクライアントアプリケーションに関する情報を取得する

SELECT
   mon$attachment_name as Database_Name,
   mon$user as User_Name,
   mon$role as Role_Name,
   mon$remote_process as Client_Application,
   mon$remote_address as Client_IP,
   mon$remote_pid as Client_Application_PID
FROM
   mon$attachments

参照:



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow