開發一個系統基本完畢的時候,為了提高系統的響應時間,我們需要把經常從數據庫獲取而又不經常修改的內容給緩存起來,但是,緩存起來,我們怎么知道是否緩存生效了,沒從數據庫去取呢?
對于DB2 V8.1數據庫,它提供了一個數據庫監視器開關,可以監視系統訪問數據庫里表的記錄。
首先,db2cmd,然后db2 connect to dbname user username using pwd;
執行db2 get dbm cfg ,其中可以看到:
缺省數據庫監視器開關
緩沖池 (DFT_MON_BUFPOOL) = OFF
鎖定 (DFT_MON_LOCK) = OFF
排序 (DFT_MON_SORT) = OFF
語句 (DFT_MON_STMT) = OFF
表 (DFT_MON_TABLE) = OFF
時間戳記 (DFT_MON_TIMESTAMP) = ON
工作單元 (DFT_MON_UOW) = OFF
現在,我們把表的監視器開關給打開,執行 db2 update dbm cfg using dft_mon_table on,
這種方式是 在實例級別上設置監視器開關(影響所有用戶和數據庫),還有另外一種方式,
執行 db2 get monitor switches,顯示
監視器記錄開關
db 分區號 0 的開關列表
緩沖池活動信息 (BUFFERPOOL) = OFF
鎖定信息 (LOCK) = OFF
排序信息 (SORT) = OFF
SQL 語句信息 (STATEMENT) = OFF
表活動信息 (TABLE) = OFF
獲取時間戳記信息(時間戳記) = ON 06/08/2005 08:28:10.052196
工作單元信息 (UOW) = OFF
db2 update monitor switches using switchName ,這種方式是 在應用程序級別上設置監視器開關(只適合于特定的應用程序)
再執行 db2 get dbm cfg 的時候發現 表的監視開關打開了: 表 (DFT_MON_TABLE) = ON
然后db2admin stop,db2admin start 讓表監視器開關生效。
執行 db2 reset monitor for database dbname 讓計數器復位,現在就可以運行應用系統了。之后獲取數據庫的快照可以執行 db2 get snapshot for database on dbname 就可以知道系統是否訪問數據庫了,緩存是否生效了。