DB2緩衝池建立修改和刪除
緩衝池是從磁碟讀取表和索引資料時,資料庫管理器分配的用於快取記憶體這些表或索引資料的主儲存器區域。每個DB2資料庫都必須具有一個緩衝池。
每個新資料庫都定義了一個稱為IBMDEFAULTBP的預設緩衝池。可以通過SYSCAT.BUFFERPOOLS目錄檢視訪問資料庫中所定義的緩衝池資訊。
一、緩衝池的使用方法:
首次訪問表中的資料行時,資料庫管理器會將包含該資料的頁放入緩衝池中。這些頁一直保留在緩衝池中,直到關閉資料庫或者其他頁需要使用某一頁所佔用的空間為止。
緩衝池中的頁可能正在使用,也可能沒有使用,它們可能是髒頁,也可能是乾淨頁:
l 正在使用的頁就是當前正在讀取或更新的頁。為了保持資料一致性,資料庫管理器只允許一次只有一個代理程式更新緩衝池中的指定頁。如果正在更新某頁,那麼它正在那一個代理程式互斥地訪問。如果正在讀取該頁,那麼多個代理程式可以同時讀取該頁。
l 髒頁包含已更改但尚未寫入磁碟的資料。
l 將一個已更改的頁寫入磁碟之後,它就是一個乾淨頁,並且可能仍然保留在緩衝池中。
二、建立緩衝池:
CREATE BUFFERPOOL
預設情況下,新的緩衝池是使用IMMEDIATE關鍵字建立的。對於立即請求,不需要重新啟動資料庫。落實此語句時,緩衝池將反映在系統目錄表中,但緩衝池要在下次啟動資料庫後才變成活動狀態。
如果發出CREATE BUFFERPOOL DEFERRED,那麼不會立即啟用緩衝池,將在下一次啟動資料庫時建立緩衝池。在重新啟動資料庫之前,任何新的表空間都將使用現有緩衝池,即使建立表空間時規定它顯式使用延遲緩衝池也是如此。
在分割槽資料庫上,還可以定義要在每個資料庫分割槽上以不同方式建立的緩衝池。預設ALL DBPARTITIONNUMS子句指示將在資料庫中的所有資料庫分割槽上建立此緩衝池。DATABASE PARTITION GROUP子句標識緩衝池定義適用於的資料庫分割槽組:
CREATE BUFFERPOOL
PAGESIZE 4096
DATABASE PARTITION GROUP
指定了此引數,那麼僅在這些資料庫分割槽組中的資料庫分割槽上建立緩衝池。每個資料庫分割槽組當前必須存在於資料庫中。
三、修改緩衝池
在下列情況下可能要修改緩衝池:
l 啟用緩衝池自調整功能,從而允許資料庫管理器根據工作負載調整緩衝池大小。
l 修改基於塊的I/O的緩衝池的塊區域。
l 將此緩衝池定義新增到新的資料庫分割槽組中。
l 修改部分或所有資料庫分割槽上的緩衝池大小。
>>-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-----------------------------------------------------------------------'
當使用IMMEDIATE引數時,將立即更改緩衝池大小,而不必等到下一次啟用資料庫時才生效。如果資料庫共享記憶體不足以分配新空間,那麼會延遲(DEFERRED)執行該語句。
當使用DEFERRED引數時,要在重新啟用資料庫後才應用對緩衝池所作的更改。
在落實ALTER BUFFERPOOL語句時,由於此語句而對緩衝池所作的更改將反映在系統目錄表中。但是,要在下次啟動資料庫之後,對實際緩衝池所作的更改才會生效,但是所指定的帶有預設IMMEDIATE關鍵字併成功執行的ALTER BUFFERPOOL請求除外。
四、刪除緩衝池
刪除緩衝池時,應確保沒有任何表空間已指定給這些緩衝池。不能刪除IBMDEFAULTBP緩衝池。
DROP BUFFERPOOL
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25744374/viewspace-751602/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL InnoDB緩衝池MySql
- [MYSQL][1]建立,修改,刪除表MySql
- 在Linux中,如何建立、刪除和修改檔案?Linux
- [譯] part23: 緩衝channel和協程池
- 建立元素和刪除元素
- Git分支建立和刪除Git
- InnoDB 中的緩衝池(Buffer Pool)
- IoTDB SQL語法 建立、新增、修改、刪除 windowsSQLWindows
- 修改刪除表
- ubuntu 建立和刪除使用者Ubuntu
- mysql 建立和刪除聯合索引MySql索引
- SQL基礎——DML(插入、修改和刪除)SQL
- MySQL學習筆記之SQL語句建立、修改和刪除資料庫MySql筆記資料庫
- Sqlserver中所有約束的型別,建立、修改與刪除SQLServer型別
- oracle主鍵序列的建立,刪除,修改序列起始值Oracle
- Conda 建立和刪除虛擬環境
- Linux使用者的建立和刪除Linux
- 緩衝池裡的祕密,你不好奇嗎?
- [20180409]delete刪除緩慢分析.txtdelete
- mongodb建立索引和刪除索引和背景索引backgroundMongoDB索引
- openGauss 建立-刪除MOT
- Oracle 增加 修改 刪除 列Oracle
- 開關電源緩衝吸收電路:拓撲吸收、RC吸收、RCD吸收、鉗位吸收、無損吸收、LD緩衝、LR緩衝、飽和電感緩衝、濾波緩衝、振鈴_rc吸收和rcd吸收
- 03_FreeRTOS的任務建立和刪除
- Golang併發程式設計有緩衝通道和無緩衝通道(channel)Golang程式設計
- vue實現li列表的新增刪除和修改Vue
- mysql使用者建立、修改、刪除及授權操作的總結MySql
- 緩衝管理
- Java併發程式設計:4種執行緒池和緩衝佇列BlockingQueueJava程式設計執行緒佇列BloC
- Mysql innodb引擎(一)緩衝和索引MySql索引
- onnx 增刪改查,修改節點,刪除節點,修改input,output
- 設計模式(十二)——享元模式(Integer緩衝池原始碼分析)設計模式原始碼
- Docker容器和映象的建立/匯出/刪除/匯入Docker
- elasticsearch(三)----索引建立與刪除Elasticsearch索引
- Mysql索引的建立與刪除MySql索引
- 在 Git 中怎樣克隆、修改、新增和刪除檔案?Git
- Java_轉換流和緩衝流Java
- SeekBar進度和緩衝進度使用
- 輸出緩衝