第五十章 Caché 函數大全 $PREFETCHOFF 函數 第五十章 Caché 函數大全 $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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章