1. 程式人生 > >DB2 檢視緩衝池真實大小

DB2 檢視緩衝池真實大小

DB2中,修改緩衝池大小的命令有兩個選項,預設的是IMMEDIATE,也就是立刻生效。 另一種是DEFERRED, 它只是在系統表中做了修改,實際上沒有生效,需要重新啟用資料庫生效,也就是使用檢視SYSCAT.BUFFERPOOLS查到的,並不一定是真實大小,那麼如何檢視緩衝池真實大小呢?

If the statement is executed as deferred, the following is true: Although the buffer pool definition is transactional and the changes to the buffer pool definition will be reflected in the catalog tables on commit, no changes to the actual buffer pool will take effect until the next time the database is started. The current attributes of the buffer pool will exist until then, and there will not be any impact to the buffer pool in the interim. Tables created in table spaces of new database partition groups will use the default buffer pool. The statement is IMMEDIATE by default when that keyword applies.

>>-ALTER BUFFERPOOL--bufferpool-name---------------------------->


     .-IMMEDIATE-.                                                                                        
>--+-+-----------+--+-------------------------------------+--SIZE--+-number-of-pages----------------+-+-><
   | '-DEFERRED

--'  '-DBPARTITIONNUM--db-partition-number-'        '-+-----------------+--AUTOMATIC-' |   
   |                                                                 '-number-of-pages-'              |   
   +-ADD DATABASE PARTITION GROUP--db-partition-group-name--------------------------------------------+   
   +-NUMBLOCKPAGES--number-of-pages--+----------------------------+-----------------------------------+   
   |                                 '-BLOCKSIZE--number-of-pages-'                                   |   
   '-BLOCKSIZE--number-of-pages-----------------------------------------------------------------------'   



答案是使用MON_GET_BUFFERPOOL表函式。

參考測試如下:

$ db2 "create bufferpool bffpl1 immediate size 1000 PAGESIZE 4k"    
DB20000I  The SQL command completed successfully.


$ db2 "select substr(BPNAME, 1, 30) as BPNAME, BUFFERPOOLID, NPAGES, PAGESIZE from SYSCAT.BUFFERPOOLS"


BPNAME                         BUFFERPOOLID NPAGES      PAGESIZE   
------------------------------ ------------ ----------- -----------
IBMDEFAULTBP                              1          -2        4096
BFFPL1                                    2        1000        4096


  2 record(s) selected.


1.)
$ db2 "alter bufferpool bffpl1 size 1500"
DB20000I  The SQL command completed successfully.


$ db2 "select substr(BPNAME, 1, 30) as BPNAME, BUFFERPOOLID, NPAGES, PAGESIZE from SYSCAT.BUFFERPOOLS"


BPNAME                         BUFFERPOOLID NPAGES      PAGESIZE   
------------------------------ ------------ ----------- -----------
IBMDEFAULTBP                              1          -2        4096
BFFPL1                                    2        1500        4096


  2 record(s) selected.


$ db2 "select substr(BP_NAME, 1, 30) as BP_NAME, BP_CUR_BUFFSZ from table(MON_GET_BUFFERPOOL('BFFPL1',-1))"


BP_NAME                        BP_CUR_BUFFSZ       
------------------------------ --------------------
BFFPL1                                         1500


  1 record(s) selected.


採用預設的方式,發現系統表裡發生了變化,實際大小也改變了。
  
2.)
$  db2 "alter bufferpool bffpl1 DEFERRED size 2000" 
DB20000I  The SQL command completed successfully.


$ db2 "select substr(BPNAME, 1, 30) as BPNAME, BUFFERPOOLID, NPAGES, PAGESIZE from SYSCAT.BUFFERPOOLS"


BPNAME                         BUFFERPOOLID NPAGES      PAGESIZE   
------------------------------ ------------ ----------- -----------
IBMDEFAULTBP                              1          -2        4096
BFFPL1                                    2        2000        4096


  2 record(s) selected.


$ db2 "select substr(BP_NAME, 1, 30) as BP_NAME, BP_CUR_BUFFSZ from table(MON_GET_BUFFERPOOL('BFFPL1',-1))"


BP_NAME                        BP_CUR_BUFFSZ       
------------------------------ --------------------
BFFPL1                                         1500


  1 record(s) selected.


採用了DEFERRED,雖然系統表發生了變化(1500->2000),但緩衝池實際大小沒變(1500->1500),必須重新啟用資料庫才生效。


$ db2 terminate
DB20000I  The TERMINATE command completed successfully.


$ db2 connect to qsmiao


   Database Connection Information


 Database server        = DB2/AIX64 9.7.6
 SQL authorization ID   = E97Q6C
 Local database alias   = QSMIAO


$  db2 "select substr(BP_NAME, 1, 30) as BP_NAME, BP_CUR_BUFFSZ from table(MON_GET_BUFFERPOOL('BFFPL1',-1))"


BP_NAME                        BP_CUR_BUFFSZ       
------------------------------ --------------------
BFFPL1                                         2000


  1 record(s) selected.  

相關推薦

DB2 檢視緩衝真實大小

DB2中,修改緩衝池大小的命令有兩個選項,預設的是IMMEDIATE,也就是立刻生效。 另一種是DEFERRED, 它只是在系統表中做了修改,實際上沒有生效,需要重新啟用資料庫生效,也就是使用檢視SYSCAT.BUFFERPOOLS查到的,並不一定是真實大小,那麼如何檢視緩

db2 表空間 緩衝

簡介 對於剛涉足 DB2 領域的 DBA 或未來的 DBA 而言,新資料庫的設計和效能選擇可能會很令人困惑。在本文中,我們將討論 DBA 要做出重要選擇的兩個方面:表空間和緩衝池。表空間和緩衝池的設計和調優會對 DB2 伺服器的效能產生深遠的影響,因此我們將著重討論這些活

DB2 建立資料庫緩衝和表空間

1、建立資料庫CREATE DATABASE frkAUTOMATIC STORAGE NO  ON'C:\' USING CODESET UTF-8 TERRITORY CN COLLATEUSING SYSTEM PAGESIZE 32768CATALOG TABLES

DB2如何建立表空間 如何建立資料庫 如何建立緩衝

如果你是在一個專案的角度,要建立表空間、建立緩衝池、建立資料庫,到最終完成專案連線DB2成功的話,請看完這篇文章  對於開發近三年左右的程式設計師,我們總會碰到DB2資料庫的專案(做銀行、政府、國企等專案尤其如此),我是搞java的,我相信大部分3年左右java開發經驗的程

DB2檢視指定資料庫大小

問題 想要檢視DB2所在資料庫的大小。 解決 登入伺服器 不論是用SSH或者是Telnet登入伺服器即可。然後,執行db2命令切換

jquery獲取圖片的真實大小

樣式 所有 clas 取圖 src 希望 var als eight 在前端中有許多時候希望顯示圖片的的真實大小的場景(如果圖片預覽這樣的場景),如果直接用選擇器把html中的img元素選擇出來然後輸出他的width()和height()的話,如果對img元素有做樣式限定的

php獲取文件真實大小(支持遠程文件)

php獲取文件真實大小(支持遠程文件)代碼: <?php /* @desc:獲取文件大小 @author <lee> [<[email protected]>] @param name 文件名 @return size 文件大小 byte */ function getfilesiz

檢視oracle表空間大小

轉載,感謝分享的人 以系統管理員身份登入資料庫: select * from sys.dba_tablespaces; --查詢表空間使用情況 SELECT UPPER(F.TABLESPACE_NAME) "表空間名",       &nbs

Unity簡單物件緩衝技術

一、建立物件緩衝池指令碼 /*** * * Title: * 預載入與物件緩衝池技術 * * 物件緩衝池管理器 * * Description: * 基本原理: *

linux檢視硬碟空間 檔案大小

    du,disk usage,是通過搜尋檔案來計算每個檔案的大小然後累加,du能看到的檔案只是一些當前存在的,沒有被刪除的。他計算的大小就是當前他認為存在的所有檔案大小的累加和   df,disk free,通過檔案系統來快速獲取空間大小的資訊,當我們刪除一個檔案的

MySQL 原始碼分析 Innodb緩衝刷髒的多執行緒實現

簡介 為了提高效能,大多數的資料庫在操作資料時都不會直接讀寫磁碟,而是中間經過緩衝池,將要寫入磁碟的資料先寫入到緩衝池裡,然後在某個時刻後臺執行緒把修改的資料刷寫到磁碟上。MySQL的InnoDB引擎也使用緩衝池來快取從磁碟讀取或修改的資料頁,如果當前資料庫需要操作的資料集比緩衝池中的空閒頁面大

Linux中檢視各資料夾大小命令du -h --max-depth=1

du [-abcDhHklmsSx] [-L <符號連線>][-X <檔案>][--block-size][--exclude=<目錄或檔案>] [--max-depth=<目錄層數>][--help][--

得到python物件的真實大小

得到python物件的真實大小 sys.getsizeof只給你這個物件和他的屬性的大小,並沒有遞迴的尋找sub-attributes。 sys.getsizeof得到的大小總感覺奇怪… 下面是一個能到真實大小的指令碼: import sys def get_size(obj, seen=None):

檢視redis佔用記憶體大小的方法

檢視redis佔用記憶體大小的方法 redis-cli auth 密碼 info Memory used_memory:13490096 //資料佔用了多少記憶體(位元組) used_memory_human:12.87M //資料佔用了多少記憶體(帶單位的,可讀性好)

【linux】Linux下檢視CPU型號,記憶體大小,硬碟空間的命令(詳解)

1 檢視CPU 1.1 檢視CPU個數 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:刪除重複行;wc –l命令:統計行數** 1.2 檢視CPU核數 # cat /proc/c

如何檢視到chrome真實的的快取內容?

1、快取的路徑: C:\Users\你的使用者名稱\AppData\Local\Google\Chrome\User Data\Default\Cache。然而當你開啟它時,會發覺資料夾裡都是些不知所云

[kafka掃盲]---(7)kafka原始碼閱讀之生產者客戶端緩衝

Author:趙志乾 Date:2018-10-21 Declaration:All Right Reserved!!! BufferPool.java 1、檔案位置: 該檔案在原始碼中的位置:kafka-2.0.0-src/clients/src/main/java/

MySQL檢視某庫表大小及鎖表情況

查詢所有資料庫佔用磁碟空間大小的SQL語句: 語句如下: 1 2 3 4 5 select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2)

DB2 檢視儲存過程內容並匯出

1.檢視儲存過程內容: [email protected]:~>db2 "select * from syscat.PROCEDURES where PROCNAME ='?'" 2.匯出儲存過程資訊: [email protected]:~&g

ubuntu 檢視佔用檔案空間大小

1,檢視分割槽情況 fdisk -l 2,檢視系統的磁碟空間佔用情況 df -hdf -TH 3,檢視某個目錄的使用空間大小 du -sh 需要先進入該目錄,或者後面加上路徑du -sh 路徑 4,檢視該目錄下,每個資料夾佔用的空間大小 檢視某目