開(kāi)發(fā)一個(gè)系統(tǒng)基本完畢的時(shí)候,為了提高系統(tǒng)的響應(yīng)時(shí)間,我們需要把經(jīng)常從數(shù)據(jù)庫(kù)獲取而又不經(jīng)常修改的內(nèi)容給緩存起來(lái),但是,緩存起來(lái),我們?cè)趺粗朗欠窬彺嫔Я耍瑳](méi)從數(shù)據(jù)庫(kù)去取呢?
對(duì)于DB2 V8.1數(shù)據(jù)庫(kù),它提供了一個(gè)數(shù)據(jù)庫(kù)監(jiān)視器開(kāi)關(guān),可以監(jiān)視系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)里表的記錄。
首先,db2cmd,然后db2 connect to dbname user username using pwd;
執(zhí)行db2 get dbm cfg ,其中可以看到:

 缺省數(shù)據(jù)庫(kù)監(jiān)視器開(kāi)關(guān)
   緩沖池                         (DFT_MON_BUFPOOL) = OFF
   鎖定                                   (DFT_MON_LOCK) = OFF
   排序                                   (DFT_MON_SORT) = OFF
   語(yǔ)句                              (DFT_MON_STMT) = OFF
   表                                 (DFT_MON_TABLE) = OFF
   時(shí)間戳記                         (DFT_MON_TIMESTAMP) = ON
   工作單元                            (DFT_MON_UOW) = OFF

現(xiàn)在,我們把表的監(jiān)視器開(kāi)關(guān)給打開(kāi),執(zhí)行 db2 update dbm cfg using dft_mon_table on,
這種方式是 在實(shí)例級(jí)別上設(shè)置監(jiān)視器開(kāi)關(guān)(影響所有用戶和數(shù)據(jù)庫(kù)),還有另外一種方式,
執(zhí)行 db2 get monitor switches,顯示

            監(jiān)視器記錄開(kāi)關(guān)

db 分區(qū)號(hào) 0 的開(kāi)關(guān)列表
緩沖池活動(dòng)信息        (BUFFERPOOL) = OFF
鎖定信息                    (LOCK) = OFF
排序信息                    (SORT) = OFF
SQL 語(yǔ)句信息           (STATEMENT) = OFF
表活動(dòng)信息                 (TABLE) = OFF
獲取時(shí)間戳記信息(時(shí)間戳記)    = ON  06/08/2005 08:28:10.052196
工作單元信息                 (UOW) = OFF
    db2 update monitor switches using switchName ,這種方式是 在應(yīng)用程序級(jí)別上設(shè)置監(jiān)視器開(kāi)關(guān)(只適合于特定的應(yīng)用程序)
再執(zhí)行 db2 get dbm cfg 的時(shí)候發(fā)現(xiàn) 表的監(jiān)視開(kāi)關(guān)打開(kāi)了:   表        (DFT_MON_TABLE) = ON
然后db2admin stop,db2admin start 讓表監(jiān)視器開(kāi)關(guān)生效。
執(zhí)行 db2 reset monitor for database dbname 讓計(jì)數(shù)器復(fù)位,現(xiàn)在就可以運(yùn)行應(yīng)用系統(tǒng)了。之后獲取數(shù)據(jù)庫(kù)的快照可以執(zhí)行 db2 get snapshot for database on dbname 就可以知道系統(tǒng)是否訪問(wèn)數(shù)據(jù)庫(kù)了,緩存是否生效了。