程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2數據庫綜合 >> IBM DB2 基本性能調整

IBM DB2 基本性能調整

編輯:DB2數據庫綜合
正在看的db2教程是:IBM DB2 基本性能調整。緩沖池

如果你有使用DB2 UDB的經驗,你應該知道, 緩沖池是內存中的一些單獨分配給DB2 數據庫管理器的空間,讓它去做為數據庫添加新數據或者去響應一個查詢從磁盤返回一些數據數據頁的緩沖區。由於從內存中訪問數據勢必比從磁盤上讀取要快的多,因此通過減少磁盤的I/O操作緩沖池改善了數據庫的整體性能。 實際上,研究緩沖池是怎樣被創建和被使用在調整優化的數據庫性能是最重要的一步。
由於緩沖區的重要性地位,每個DBA 都應該了解DB2 UDB怎麼使用他們。這裡是關於它的快速回顧課程。當新數據增加到數據庫時,它首先在緩沖區中增加新頁。最終這個頁將被具體化到數據庫存儲空間中。另一方面,為了響應查詢當數據從數據庫中被檢索出來的時候,DB2數據庫管理器首先將會將這些包含數據的頁存放在緩沖池中,然後才會把它傳遞給需要它的應用程序或者用戶。每次執行新的查詢時,將會在每個可以利用的緩沖池中搜尋是否已經有所需要數據的頁駐留在內存中。如果那樣,就會立刻將它傳遞給對應的的應用或用戶。但是,如果不能在這些緩沖池找到需要的數據的話,DB2 數據庫管理器將會講這些數據從存儲器中檢索出來並且在傳遞數據之前將它復制到緩沖區中。一旦頁被復制到緩沖池,那麼這個頁將會一直駐留在緩沖區中直到數據庫被關閉或直到它所在的空間需要存儲其他頁為止。(由於所有數據的加載和修改首先發生在緩沖區——修改過的頁最終會去刷新磁盤存儲——因此存放在緩沖池中的數據總是最新的)當緩沖池滿了之後,DB2 數據庫管理器將通過檢測頁的最後引用時間,頁類型,或者頁的修改不會影響磁盤內容的改變來選擇去除哪些頁,這些頁可能再次被引用。例如,在30 分鐘前被檢索以響應查詢的頁會比包含更新操作而沒有落實更新的頁更容易被覆蓋。
DB2 UDB缺省創建了一個緩沖池(IBMDEFAULTBP)作為數據庫創建過程的一部分。在Linux和Unix平台,該緩沖池從內存中被分配了1,000個4KB頁;在Windows平台,該緩沖池從內存中被分配了250個4KB頁。 你可以通過在控制中心找到緩沖池菜單並且選擇適當的操作或者執行ALTER BUFFERPOOL語句來增加或減少這個緩沖池的4KB 頁的數量。你也可以通過在控制中心同樣的方法或者執行CREATE BUFFERPOOL語句來創建另外的緩沖區。
由於緩沖區的重要性,你應該仔細考慮使用多少個緩沖池來適應你的實施需要;每一個究竟需要多大;以及每個緩沖池怎麼樣能被充分利用。 在多數環境裡,能被有效使用的緩沖區個數取決於可利用的系統內存的大小。 如果可利用的內存可以保留10,000個4k 頁(或更少),那麼通常的使用單獨的大緩沖池比去使用多個小緩沖池要好。 使用多個小緩沖區將導致頻繁地訪問頁來經常與內存進行進出交換,反過來會導致為存儲對象比如編目表的I/O競爭或者重復的訪問用戶表和索引。但是,如果有比較多的內存,應該考慮創兼各自的緩沖區為以下:
·           每一種臨時表空間被定義
·           包含著被一些短期的更新事務一直或者重復訪問表的表空間
·           包含著表和索引頻繁地被更新的表空間 
·           包含著表和索引頻繁地被查詢但很少被更新的表空間
·           包含著表頻繁地被使用於隨意的查詢的表空間 
·           包含著很少被應用程序訪問的數據的表空間 
·           包含著一些你想要使用的數據和索引的表空間。 
在許多情況下,大一點的緩沖池要優於較小的緩沖池。但是,考慮到可以使用的內存總額以及緩沖池將怎麼被使用。 如果你擁有一個要從一個非常大的表中執行許多隨機存取操作的應用,那麼你應該為這個特殊表創造和使用一個小緩沖池。 在這種情況下,沒有必要在緩沖池內存中保留數據頁一旦他們被用於去執行一次單獨的查詢。 另一方面,如果你擁有一個要從幾個看似很小的表中頻繁地檢索數據的應用,你應該考慮創建一個足夠大緩沖池來存放所有在這些表裡免得數據。 采用這個設計方案,數據能一次裝入內存,並且允許它反復的被獲取而沒有必要額外的磁盤I/O 。

本新聞共3頁,當前在第1頁  1  2  3  


<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved