使用中のデータベースキャッシュ(グローバルバッファ)のサイズを知る方法
これは InterSystems FAQ サイトの記事です。
グローバル変数毎のデータベースキャッシュ使用量を確認するツール(^GLOBUFFユーティリティ)が用意されています。
%SYSネームスペースにて、ユーティリティを直接実行する方法と、プログラムで実行する方法があります。
ユーティリティを直接実行する方法は以下のようになります。
USER>zn "%SYS"
%SYS>do ^GLOBUFF
Find which globals are using the most buffers.
Display the top <25>: → Enter押下 // デフォルトは上位25グローバルを表示
Total buffers: 102400 Buffers in use: 6926 PPG buffers: 77 (1.112%) // グローバル名とデータベース名、バッファに占める割合が出力されます
Item Global Database Percentage (Count)
1 oddDEF IRISLIB 34.551 (2393)
2 rOBJ IRISLIB 15.261 (1057)
3 rOBJ IRISSYS 13.630 (944)
:
%SYS>do ^GLOBUFF
Find which globals are using the most buffers.
Display the top <25>: → Enter押下 // デフォルトは上位25グローバルを表示
Total buffers: 102400 Buffers in use: 6926 PPG buffers: 77 (1.112%) // グローバル名とデータベース名、バッファに占める割合が出力されます
Item Global Database Percentage (Count)
1 oddDEF IRISLIB 34.551 (2393)
2 rOBJ IRISLIB 15.261 (1057)
3 rOBJ IRISSYS 13.630 (944)
:
プログラムで実行する方法は以下のようになります。
set log="C:\temp\g.log"
open log:"WNS"
use log
do display^GLOBUFF(200) ;; 200個まで計測
close log
実行結果は以下のようになります。
Total buffers: 102400 Buffers in use: 6926 PPG buffers: 77 (1.112%)
Item Global Database Percentage (Count)
1 oddDEF IRISLIB 34.551 (2393)
2 rOBJ IRISLIB 15.261 (1057)
3 rOBJ IRISSYS 13.630 (944)
: