グローバルのサイズの決定
InterSystems IRIS® データ・プラットフォームには、グローバルのサイズの測定に使用できるツールが用意されています。
^%GSIZE ルーチン
^%GSIZE ルーチンを使用すると、1 つ以上のグローバルのサイズを決定できます。このルーチンを使用するには、以下を実行します。
-
ObjectScript シェルを起動します。
-
ルーチンを起動します。
do ^%GSIZE
-
最初のプロンプトでは、参照するデータベースを指定できます。このプロンプトは、データベース・ファイルを含むディレクトリを参照します。
Directory name: c:\intersystems\iris211\mgr\enslib\ =>
既定は、現在使用しているネームスペースで使用されているグローバル・データベースです。Enter キーを押してこの既定をそのまま使用するか、完全なディレクトリ名を入力して Enter キーを押します。
-
次のプロンプトは、以下のとおりです。
All Globals? No =>
すべてのグローバルの情報が必要な場合は、「Y 」(大文字と小文字は区別されません) と入力します。それ以外の場合は、Enter キーを押します。
Note:すべてのグローバルの情報を要求すると、ドキュメント化されていないすべての内部グローバルと、独自のグローバルが含められます。これらの中には、非常に大きなものもあります。
-
前の手順で「Y」と入力しなかった場合、次のプロンプトは、グローバル名を尋ねる以下のようなものになります。
Global ^
先頭のキャレットなしでグローバル名を入力して、Enter キーを押します。
必要に応じて繰り返します。グローバル名の入力が終了したら、再び Enter キーを押します。ルーチンは、選択したグローバル数を示すメッセージを表示します。
All Globals? No => No Global ^IRIS.Msg Global ^ 1 global selected from 64 available globals.
-
次のプロンプトは、生成するレポートの種類を尋ねます。
1) Get exact packing details 2) Get block counts only 3) Use fast stochastic estimate Please select an option: 3 =>
オプション 1 では、グローバル全体をスキャンして、すべての情報を取得します。大規模なグローバルの場合、これには時間がかかります。オプション 2 では、ブロック・カウントのみを取得します。オプション 3 (リリース 2023.3 の新機能) では、サイズを見積もります。これは、グローバル全体をスキャンするより高速です。
「1」、「2」または「3」と入力します。
-
次の 2 つのプロンプトに対して Enter キーを押し、出力を書き込む場所を指定します。
Device:
および
Right margine: 80 =>
-
オプション 1 または 3 を使用した場合、以下のような出力が表示されます。
Page: 1 Global Blocks Bytes Used Packing ----------- ---------------- ------------------- ------- IRIS.Msg 942 5,791,760 75 % TOTAL Blocks Bytes Used Packing ----------- ---------------- ------------------- ------- 942 5,791,760 75 %
オプション 2 を使用した場合、レポートにはブロック・カウントのみが表示されます。
グローバルのサイズを取得する API
いくつかのクラスは、グローバルのサイズを取得する API を提供しています。
-
%GlobalEditOpens in a new tab クラスは、以下のようなメソッドを提供します。
-
CheckIntegrity()
-
GetGlobalSize()
-
GetGlobalSizeBySubscript()
-
その他
-
-
%SYS.GlobalQueryOpens in a new tab クラスは、以下のクエリを提供します。
-
DirectoryList()
-
NameSpaceList()
-
NameSpaceListChui()
-
Size()
-