欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第五十章 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