開(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ù)了,緩存是否生效了。