基本性能調整2
2024-07-21 02:08:18
供稿:網友
基本性能調整2
basic performance tuning part 2
roger sanders 著
笑熬漿糊 譯
天堂鳥自由空間原創作品
天堂鳥自由空間©2002-2005版權所有
轉載請保持文檔的完整性
訪問更多可以瀏覽http://hbird.myrice.com/myself.html
mailto:[email protected]
基本性能調整 2
roger sanders 著
笑熬漿糊 譯
原文出處:《db2 magazine》 quarter 4, 2003 · vol. 8, issue 4
英文原文(由于文章翻譯未經授權,請在轉載時保留原文鏈接)
怎么樣去修改改你的實例以及最好的性能效果的數據庫參數的獲得。
如果你曾經閱讀過db2 magazine quarter 3, 2003期distribued dba 欄目 這篇文章的第一部分的話,你就應該知道數據庫性能問題將會出現在以下因素的當中一個:
系統(環境)配置實例配置數據庫配置數據庫設計應用程序設計
在前面的那一期中,我談到了一些一般性的調整建議并且描述了如何使用注冊變量在系統級別上去調整db2 udb8.1 for linux,unix和windows 版本的性能。(請注意在本文末尾的更正)
在這期中,我將解釋實例和可用于db2 udb 數據庫的配置參數變量,以 及v8.1的新版向導工具的配置。
db2 udb配置參數
db2 udb使用了一個擴展配置參數數組來控制系統資源和數據庫資源怎樣被分配和使用。
在心中謹記這些提供給與非常簡單系統一起產生的大部分這種配置參數的缺省值。(db2 udb的目標就是運行,應該不受這個約束,事實上它可以在任何一個平臺上,而不是僅為一特定平臺改良的)。因此,你通常能極大改進整個系統和數據庫性能—— 以很少努力—— 經過改變一個或多個配置參量的值。 實際上,你應該經常的修改db2 udb 配置參數值如果你的數據庫環境包含一個或更多的下列:
大數據庫 通常工作在很大數量的并發連接的數據庫 有高性能要求的一個或更多特別應用 特別硬件結構 獨特的查詢或交易裝載 獨特的查詢或交易類型。配置實例
每當實例被創建,一個對應的db2數據庫管理配置文件同時也會創建并且初始化。每一個db2數據庫管理配置文件包括68個不同參數。其中一些參數會對性能產生比較顯著的影響;其它的可能影響甚微。表一顯示的是一些可能會導致重要性能改進的數據庫管理實例配置參數
表1: 關鍵db2 數據庫管理配置參數。
察看或者修改參數
那么你如何確定db2 數據庫管理配置參量的當前值? 在db2 udb v8.1中,有二種方式可以察看db2數據庫管理配置文件的內容:
使用dbm配置對話框,它很容易從控制中心或配置助理中得到;或者執行db2 命令行處理器(clp) 命令get database manager configuration。這個命令的語法:
get database manager | db manager | dbm configuration | config | cfg
同樣的,一個或多個db2 數據庫管理器配置參量的具體值也可以使用dbm 配置對話框,或執行clp命令update database manager configuration來改變;語法如下:
update database manager | db manager | dbm configuration | config | cfg using parameter value,... < immediate | deferred >
其中:
parameter明確了一個或多個db2 數據庫管理器配置參量(根據關鍵字)的值將被修改 。 value明確了將被分配到指定db2 數據庫管理器配置參數被指定的新值。
注意:在角括號里(<>)的參數是可以選擇的;圓括號中的變量或者選項擇是必須的而且必須備提供的;逗號以及跟隨在他后面的省略號(...)則表明前面的參數可以被重復使用多次。
如果immediate選項被指定,如果可能的話,所有改變將會立即生效。(不是所有的改變都能立刻被執行的——參見db2 udb administration章節13——performance documentation for more information。) 如果deferred 選項選中,變動不會開始有效直到對應的實例被停止和被重新開始。在什么都不指定的情況下,immediate是缺省值。
因此,如果你想要把db2 數據庫管理器配置參量intra_parallel的值變成yes,只需要是用這條語句來更新數據庫管理器配置:update dbm cfg using intra_parallel yes。
db2數據庫配置
像當實例被創建同時db2 數據庫管理器配置文件被創造和初始化一樣;每次新的數據庫被創建的同時一個數據庫配置文件也被創造和初始化。每個數據庫配置文件包括82 種不同的參數。其中一些對于性能有重大作用,而其他的則影響甚微。表2 顯示是很可能導致重大性能改善的數據庫配置參量。
表2: 關鍵數據庫配置參量。
察看或者改變這些參數
有二種方式察看數據庫配置文件的內容:使用數據庫配置對話框(比較容易的從控制中心訪問),或由執行clp 命令get database configuration。語法如下:
get database | db configuration | config | cfg for databasealias
databasealias 指明指明db2 udb 數據庫(根據別名)為顯示配置參數值。
一個或多個db2 數據庫配置參量的具體值也可以使用數據庫配置對話框,或執行clp命令update database configuration來改變;語法如下:
update database | db configuration | config | cfg for databasealias using parameter value ,... < immediate | deferred >
parameter明確了一個或多個db2 數據庫配置參量(根據關鍵字)的值將被修改 。 value明確了將被分配到指定db2 數據庫配置參數被指定的新值。
在這種情況下,如果immediate選項被指定,如果可能的話,所有改變將會立即生效。 如果deferred 選項選中,變動不會開始有效直到與數據庫的所有現有的連接被終止并且新數據庫連接被建立。 immediate選項是缺省值。
舉個例子,如果你想要改變sample 數據庫的seqdetect 數據庫配置參量的價值為no,你可以執行 update database configuration語句如下:
update db cfg for sample using seqdetect no
配置向導
鑒于配置參數的選擇范圍是比較寬廣,決定在哪里開始和什么做變動是困難的。幸好,db2 udbv8.1封裝了一個工具來幫助你開始你的配置——配置顧問(configuration advisor)。 你可以從控制中心訪問配置顧問,它被設計用于獲取關于你的數據庫環境的具體信息并且會基于所獲取的信息推薦一些配置參數的改變。由于由配置顧問所做配置變化幾乎總會導致性能改善,我推薦在嘗試其他配置調整之前使用這個工具。
照這么說,如果你的系統沒有配置安裝控制中心的話應該怎么辦?你既可以利用db2autoconfig()的api函數來開發一個專門的程序來完成相同的功能,也可以是用autoconfigure clp命令,這個命令在db2 udb v.8.1中有介紹,該命令的語法如下:
autoconfigure < using keyword value, ... > < apply db only | db and dbm | none >
keyword 指明顯示在表3中的一個或多個關鍵字。value 指明同關鍵字聯系在一起的值。
表3描述了一些可能被這個命令所使用的關鍵字。
表3: autoconfigure 命令關鍵字和值。
如果被顯示在表3中的任何關鍵字的值不被指定,那么當autoconfigure 命令執行時,這些關鍵字的缺省值將被使用。另外,如果apply選項不被指定,所有推薦的配置變化導致當autoconfig 命令被執行將會應用于數據庫配置,而不是db2 數據庫管理器配置。
注意:db2 udbv8.1版本的create database命令提供一個autoconfigure選項他使用與autoconfigure命令完全相同的關鍵字和語法。因此當一個新數據庫被創建的時候配置變化可能自動地被執行。
接下來
現在你知道了一些通過修改實例和數據庫配置參數值來改進性能的方法。同時你也學會了怎么在配置顧問或者autoconfig命令的幫助下進行一些對于實例和數據庫配置調整的嘗試性的工作。那么,這就是你需要知道為了得到最佳的db2性能的全部嗎? 不盡然,在以后的部分中,我將給你們講述數據庫設計在性能上的影響。
更正
本文的第一部分也就是上一期有兩個關于db2 udb v.8.1注冊變量的錯誤信息:
在v.8.1中,db2_hash_join的缺省值是yes(no是7.2版本的缺省值)。 db2_striped_containers不再使用于8.1中。根據db2文檔說明:”in earlier versions of db2, the db2_striped_containers registry variable was used to create table spaces with an extent-sized tag. however, because this is now the default behavior, this registry variable no longer has any affect." 關于作者
roger e. sanders是 network appliance inc.的數據庫維護工程師。 并且是幾本關于db2 udb的書的作者,包括db2 universal database v.8.1 certification exam 700 study guide (ibm press, 2003).。如果你想與他取得聯系,請致函[email protected]。