$PREFETCHOFF (ObjectScript)
構文
$PREFETCHOFF(gref,gref2)
引数
引数 | 説明 |
---|---|
gref | オプション — グローバル参照。 |
gref2 | オプション — 範囲の指定に使用するグローバル参照。 |
説明
$PREFETCHOFF は、$PREFETCHON で現在のプロセスに対して確立されたグローバル・ノードの事前フェッチを無効にします。
$PREFETCHOFF には、以下の 3 つの形式があります。
-
$PREFETCHOFF() は、現在のプロセスで確立されたすべての事前フェッチを無効にします。
-
$PREFETCHOFF(gref) は、gref ノードとそのすべての下位ノードの事前フェッチを無効にします。gref の値は、$PREFETCHON の値と正確に一致する必要があります。
-
$PREFETCHOFF(gref,gref2) は、gref から gref2 の範囲のノードの事前フェッチを無効にします。gref および gref2 は、同じグローバルのノードである必要があります。gref および gref2 の値は、$PREFETCHON の値と正確に一致する必要があります。値の範囲の一部を無効にすることはできません。
正常に終了すると、$PREFETCHOFF() は 0 を返します。無効にする事前フェッチがない場合でも、0 を返します。
正常に終了すると、$PREFETCHOFF(gref) および $PREFETCHOFF(gref,gref2) はコンマで区切られた 6 つの整数の文字列を返します。これらの 6 つの値はそれぞれ、事前フェッチされたブロック数、実行された入出力数、事前フェッチ処理数、事前フェッチ・ディスク時間 (ミリ秒)、バックグラウンド・ジョブで事前フェッチされたブロック数、およびバックグラウンド・ジョブで実行された入出力数です。
失敗すると、$PREFETCHOFF のすべての形式で -1 が返されます。$PREFETCHOFF(gref) および $PREFETCHOFF(gref,gref2) は、指定されたグローバルまたはグローバルの範囲に正確に一致する $PREFETCHON がない場合、または指定された事前フェッチのグローバルまたはグローバルの範囲が既に無効になっている場合に、-1 を返します。
引数
gref
グローバル参照は、グローバルまたはプロセス・プライベート・グローバルのいずれかです。グローバルは、事前フェッチが無効になる時点では、定義の必要はありません。
このグローバルは @ 間接演算を使用して指定できます。"間接 (@)" のリファレンス・ページを参照してください。
この引数には、構造化システム変数名 (SSVN) を指定することはできません。
gref2
gref で範囲の指定に使用するグローバル参照。したがって、gref2 は gref と同じグローバル・ツリーの下位のグローバル・ノードである必要があります。
このグローバルは @ 間接演算を使用して指定できます。"間接 (@)" のリファレンス・ページを参照してください。
例
以下の例は、事前フェッチを 2 つ確立し、その後それぞれを無効にします。
SET ret=$PREFETCHON(^a)
IF ret=1 { WRITE !,"prefetch established" }
ELSE { WRITE !,"prefetch not established" }
SET ret2=$PREFETCHON(^b)
IF ret2=1 { WRITE !,"prefetch established" }
ELSE { WRITE !,"prefetch not established" }
SET retoff=$PREFETCHOFF(^a)
IF retoff'=-1 { WRITE !,"prefetch turned off. Values:",retoff }
ELSE { WRITE !,"prefetch not turned off" }
SET retoff2=$PREFETCHOFF(^b)
IF retoff2'=-1 { WRITE !,"prefetch turned off. Values:",retoff2 }
ELSE { WRITE !,"prefetch not turned off" }
以下の例は、事前フェッチを 2 つ確立し、その後現在のプロセスの事前フェッチをすべて無効にします。
SET ret=$PREFETCHON(^a)
IF ret=1 { WRITE !,"prefetch established" }
ELSE { WRITE !,"prefetch not established" }
SET ret2=$PREFETCHON(^b)
IF ret2=1 { WRITE !,"prefetch established" }
ELSE { WRITE !,"prefetch not established" }
SET retoff=$PREFETCHOFF()
IF retoff=0 { WRITE !,"all prefetches turned off" }
ELSE { WRITE !,"prefetch not turned off" }
関連項目
-
$PREFETCHON 関数