DB2性能調(diào)節(jié)工作總結(jié)_第1頁(yè)
DB2性能調(diào)節(jié)工作總結(jié)_第2頁(yè)
DB2性能調(diào)節(jié)工作總結(jié)_第3頁(yè)
DB2性能調(diào)節(jié)工作總結(jié)_第4頁(yè)
DB2性能調(diào)節(jié)工作總結(jié)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余2頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、DB2 性能調(diào)節(jié)工作總結(jié)近期負(fù)責(zé)了 Metric 項(xiàng)目的服務(wù)器性能維護(hù),對(duì) DB2 的性能調(diào)節(jié)做了些研究。整體感覺(jué)數(shù)據(jù)庫(kù)調(diào)優(yōu)的關(guān)鍵點(diǎn)應(yīng)該還 是在建庫(kù)階段,好的查詢更能得到更好的性能。而后期對(duì)數(shù) 據(jù)庫(kù)參數(shù)等的調(diào)節(jié)結(jié)果并不是非常明顯的。網(wǎng)上數(shù)據(jù)庫(kù)調(diào)節(jié)方面的資料也很多,但大多數(shù)都是轉(zhuǎn)來(lái)轉(zhuǎn)去 的,在此只做下我個(gè)人的工作總結(jié) ;( /表示對(duì)上訴解釋 #表示對(duì)下面解釋)#1,Monitoring# db2 get database manager monitor switches /顯示監(jiān)視開(kāi)關(guān)的情況 db2 update dbm cfg using DFT_MON_BUFPOOL ONDFT_MON_L

2、OCK ON db2 update dbm cfg using DFT_MON_SORT ONDFT_MON_STMT ON db2 update dbm cfg using DFT_MON_TABLE ONDFT_MON_UOS ON db2 terminate db2stop db2start /在實(shí)例級(jí)打開(kāi)監(jiān)視開(kāi)關(guān),這樣隨著實(shí)例的重啟,開(kāi)關(guān)生效 db2 get database manager monitor switches db2 get monitor switches /發(fā)現(xiàn)實(shí)例級(jí)和下面的數(shù)據(jù)庫(kù)監(jiān)視開(kāi)關(guān)都打開(kāi)了 db2 deacivate database tp1 db2 act

3、ivate database tp1 /重新激活數(shù)據(jù)庫(kù),刷新監(jiān)視數(shù)據(jù) select agent_id,rows_read,rows_written,rows_selected,rows_inserted from sysibmadm.snapappl/監(jiān)視每個(gè)代理讀寫查詢的情況,如果read 的數(shù)量遠(yuǎn)高于select 的數(shù)量,考慮是不是缺少索引/在我的工作中,很少遇到寫多的情況,所以對(duì)這方面也沒(méi)深入db2 get snapshot for tables on tp1 > sntab1.txt /接下來(lái)監(jiān)視 tp1 數(shù)據(jù)庫(kù)下所有表的讀寫啦#下一步,就是抓到那個(gè)有大量讀大于寫的表,然

4、后提取該表上的查詢 SQL #這里就要考慮兩種情況了,是靜態(tài)的還是動(dòng)態(tài)的 #靜態(tài)的,從包里提取 db2bfd -s sqltp1st.bnd #動(dòng)態(tài)的,可以用 snapshot SQL STATEMENT 抓取 ,這里不寫了/然后就要提取出我們關(guān)注的大量讀的查詢SQL /我不太喜歡這部,累眼睛, 還煩瑣 ! 如果有大量查詢 SQL , 還需要想辦法自己找出db2 describe indexes for table acct show detail /然后就是從提出的 SQL 中找到表,從表中看有沒(méi)有索引, 沒(méi)有的話,新建#之后呢,就可以從訪問(wèn)計(jì)劃中看索引有沒(méi)有生效 #靜態(tài) SQL 可以用 d

5、b2expln 從包里弄,本人比較喜歡db2exfmt, 因?yàn)閯?dòng)靜 SQL 都可以弄#后面有 db2exfmt 關(guān)于動(dòng)靜的例子 ,我比較習(xí)慣把 SQL statement拿出來(lái) #然后放進(jìn)文本里 ,db2expln -d GTSSTGMS -f SQL.txt -g -z ;-o GTSSTGMS_sort.txt #或者, db2 connect to tp1 #db2 set current explain mode explain #db2 set current explain snapshot explain#db2 "select name,address from ac

6、ct where " #db2exfmt -l -d tp1 -o extp2.txt => vi extp2.txt#2,Talespace and I/OPerformance#syscat.bufferpools /查看數(shù)據(jù)庫(kù)的緩沖池, syscat.bufferpools 中的 bufferpoolid字段和 sysibmadm.snapdb_memory_pool /的 pool_secondary_id 是關(guān)聯(lián)的,從后一張表中記載著用戶 用戶間的緩沖池和系統(tǒng)自建的緩沖池/CURRENT_SIZE 當(dāng)前大小 ;POOL_CONFIG_SIZE 設(shè)置大 小 ;H

7、IGH_WATERMARK 最高記錄 ;/我發(fā)現(xiàn) ,這和使用 db2pd -db GTSSTGMS -mempools 是對(duì)應(yīng) 的 PhySz PhyUpBnd PhyHWM /使用 db2pd -db GTSSTGMS -memset ,將同類內(nèi)存集合并 計(jì)算/在這里插一段緩沖池自調(diào)節(jié)功能介紹 面我們創(chuàng)建示例緩沖池 MYBP1 ,其使用自調(diào)整功能(注意其 create bufferpool 語(yǔ)句使用了 automatic ),初始大小為400K ,具體如清單 4 所示:創(chuàng)建使用自動(dòng)自調(diào)整功能的示例緩沖池 MYBP1 db2 create bufferpool mybp1 immediate

8、size 100 automatic pagesize 4kdb2 "select BPNAME, NPAGES from sysibm.sysbufferpools"sysibm.sysbufferpools 表中的NPAGES 字段將設(shè)置為 -2。當(dāng)自調(diào)整功能處于禁用狀態(tài)時(shí),NPAGES 字段將設(shè)置為緩沖池的當(dāng)前大小。db2 alter bufferpool mybp2 immediate size 100 automatic表空間在讀大數(shù)據(jù)的時(shí)候,給表空間指定緩沖區(qū)是沒(méi)有用的。這種情況下,DB2 會(huì)利用直接 I/O 去接觸大數(shù)據(jù)。db2 create bufferpo

9、ol BP8K size 1000 pagesize 8k db2 create system temporary tablespace TMP8K pagesize 8k managed by system using ('TMP8K') EXTENTSIZE 8PREFETCHSIZE 8 bufferpool BP8K #接下來(lái)呢,當(dāng)然是看命中率了當(dāng)然可以用 db2 get snapshot for database on tp1 #這里介紹另外一個(gè)方法 select data_physical_reads,index_physical_reads,total_physi

10、cal_reads, bp_name from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%' select data_logical_reads,index_logical_reads,total_logical_reads,bp_n ame from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%' select data_hit_ratio_percent,index_hit_ratio_percent,total_hit_

11、ratio_p ercent,bp_name from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%' /上面這樣可以檢測(cè)每一個(gè)緩沖器的命中率情況 #接下來(lái),看一下緩沖器的讀寫情況 select substr(bp_name,1,15) as bp_name,total_physical_reads,average_read_time_ms from sysibmadm.bp_read_io where bp_name not like 'IBMSYSTEM%' select substr(bp

12、_name,1,15) as bp_name, total_write,average_write_time_ms from sysibmadm.bp_write_io where bp_name not like 'IBMSYSTEM%' /那個(gè) bufferpool 比較忙, 用于那個(gè)表空間, 該表空間有哪些 表,檢查。#下面檢查表空間 select pool_data_p_reads as Total_Data_Reads,Pool_async_data_reads as Asynch_Data_Reads, pool_async_read_time from sysib

13、madm.snapbp where bp_name='IBMDEFAULTBP' select pool_async_data_read_reqs as Data_Prefetch_Requests, decimal(POOL_ASYNC_DATA_READS)/decimal(POOL_ASYNC_DATA_READ_REQS) as Data_Page_Per_Prefetch, pages_from_block_ios from sysibmadm.snapbp where bp_name='IBMDEFAULTBP' #其中 DATA_PAGES_PER

14、_PREFETCH 要 match 上 extent size,為了得至y extent size, #(最好打開(kāi) Automatic Prefetch size, 這樣自動(dòng)計(jì)算數(shù)值NUM of Containers * Extent Size) 使用db2 get snapshot for tablespace on tp1 #最好將 IOSERVERS 和 IOCLEANERS 設(shè)為自動(dòng)db2 get db cfg show detail | grep NUM_IONUM_IOSERVERS AUTOMATIC?NUM_IOCLEANERS AUTOMATIC?#3,Memory Mana

15、gement# #當(dāng)然是要看內(nèi)存當(dāng)前使用了 db2 deactivate db tp1 db2 activate db tp1 db2 connect to tp1db2mtrk -d -v db2pd -db tp1 -mempools db2pd -db tp1 -memsets /這里就不多說(shuō)了,好多我也不明白,明白的具體情況具體分析#4,Memory Management# db2 get snapshot for database on tp1 | grep -i sort /需要看一下 total sorts 和 Sort Overflows 的情況/如果 sort heap 不夠

16、用的話,會(huì)用臨時(shí)表空間/可以 snapshot 一下這個(gè)臨時(shí)表空間/特別注意 Buffer pool temprorary data logical reads 和 Buffer pool temporary data physical reads /Buffer pool data writes,Asynchronous pool data page writes #接下來(lái)就要估一下 sortheap 是否夠用db2expln -d tp1 -f sortquery.sql -g -z ; -o expsort.txt #這里主要看 Rows * Row Width 和 sortheap 大

17、小#5,Access plan(Optimizer plan)#Monitor Static SQL cd $HOME/sqllib/bin db2 connect to tp1 db2 bind sqltp1st.bnd explain yes explsnap yes db2exfmt -l -d tp1 -n SQLTP1ST -# / -o exptp1.txt sort heap size * 4K(PAGE) 和 numrows*rowwidth(BYTE) 比 較大小,來(lái)決定 sort heap sizePCTFREE & FREEPAGE => 1) 只讀表,如果對(duì)于 個(gè)表沒(méi)有任務(wù)更新活動(dòng),那么可以將定義為沒(méi)有空余空間, 而且也沒(méi)有任何比較

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論