第五十章 Caché 函数大全 $PREFETCHOFF 函数
程序员文章站
2022-09-05 14:54:42
文章目录 第五十章 Caché 函数大全 $PREFETCHOFF 函数大纲参数描述参数grefgref2示例 第五十章 Caché 函数大全 $PREFETCHOFF 函数结束对全局变量的预取。大纲$PREFETCHOFF(gref,gref2)参数gref 可选-全局变量引用。gref2 可选-用于建立范围的全局变量引用。描述$PREFETCHOFF关闭由$PREFETCHON建立的全局节点的预取。$PREFETCHOFF有三种形式:$PREFETCHOFF()关闭为当前进...
第五十章 Caché 函数大全 $PREFETCHOFF 函数
结束对全局变量的预取。
大纲
$PREFETCHOFF(gref,gref2)
参数
- gref 可选-全局变量引用。
- gref2 可选-用于建立范围的全局变量引用。
描述
$PREFETCHOFF
关闭由$PREFETCHON
建立的全局节点的预取。
$PREFETCHOFF
有三种形式:
-
$PREFETCHOFF()
关闭为当前进程建立的所有预取。 -
$PREFETCHOFF(gref)
关闭gref节点及其所有后代的预取。 gref值必须与$PREFETCHON
值完全对应。 -
$PREFETCHOFF(gref,gref2)
关闭从gref到gref2范围内的节点的预取。 gref和gref2必须是相同全局节点。 gref和gref2值必须与$PREFETCHON
值完全对应。不能关闭部分值范围。
成功完成后,$PREFETCHOFF()
返回0。即使没有预取将关闭,它也返回0。
成功完成后,$PREFETCHOFF(gref)
和$PREFETCHOFF(gref,gref2)
返回由逗号分隔的六个整数的字符串。这六个值是:预取的块数,执行的I / O数,预取的操作数,预取的磁盘时间的毫秒数,后台作业:预取的块数和后台作业:执行的I / O数。
失败时,所有形式的$PREFETCHOFF
都会返回-1。如果没有对应的$PREFETCHON
与指定的全局范围或全局范围完全匹配,或者指定的预取全局范围或全局范围已关闭,则$PREFETCHOFF(gref)
和$PREFETCHOFF(gref,gref2)
返回-1。
参数
gref
全局引用,可以是全局引用,也可以是过程专用的全局引用。在关闭预取时无需定义全局。
gref2
用于建立gref范围的全局引用。因此,gref2必须是与gref在同一全局树中较低的全局节点。
示例
以下示例建立两个预取,然后分别关闭它们:
// d ##class(PHA.TEST.Function).PREFETCHOFF()
ClassMethod PREFETCHOFF()
{
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" }
}
DHC-APP>d ##class(PHA.TEST.Function).PREFETCHOFF()
prefetch established
prefetch established
prefetch turned off. Values:0,0,0,0,0,0
prefetch turned off. Values:0,0,0,0,0,0
以下示例建立两个预取,然后关闭当前进程的所有预取:
/// d ##class(PHA.TEST.Function).PREFETCHOFF1()
ClassMethod PREFETCHOFF1()
{
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" }
}
DHC-APP> d ##class(PHA.TEST.Function).PREFETCHOFF1()
prefetch established
prefetch established
all prefetches turned off
本文地址:https://blog.csdn.net/yaoxin521123/article/details/108990863