国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
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ù)階段,好的查詢(xún)更能得到更好的性能。而后期對(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ì)下面解釋?zhuān)?br>############1,Monitoring##################
db2 get database manager monitor switches
//顯示監(jiān)視開(kāi)關(guān)的情況
db2 update dbm cfg using DFT_MON_BUFPOOL ON DFT_MON_LOCK ON
db2 update dbm cfg using DFT_MON_SORT ON DFT_MON_STMT ON
db2 update dbm cfg using DFT_MON_TABLE ON DFT_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 activate 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è)代理讀寫(xiě)查詢(xún)的情況,如果read的數(shù)量遠(yuǎn)高于select的數(shù)量,考慮是不是缺少索引
//在我的工作中,很少遇到寫(xiě)多的情況,所以對(duì)這方面也沒(méi)深入
db2 get snapshot for tables on tp1 > sntab1.txt
//接下來(lái)監(jiān)視tp1數(shù)據(jù)庫(kù)下所有表的讀寫(xiě)啦
##下一步,就是抓到那個(gè)有大量讀大于寫(xiě)的表,然后提取該表上的查詢(xún)SQL
##這里就要考慮兩種情況了,是靜態(tài)的還是動(dòng)態(tài)的
##@@@靜態(tài)的,從包里提取
db2bfd -s sqltp1st.bnd
##@@@動(dòng)態(tài)的,可以用snapshot SQL STATEMENT抓取,這里不寫(xiě)了
//然后就要提取出我們關(guān)注的大量讀的查詢(xún)SQL
//我不太喜歡這部,累眼睛,還煩瑣!!!如果有大量查詢(xún)SQL,還需要想辦法自己找出
db2 describe indexes for table acct show detail
//然后就是從提出的SQL中找到表,從表中看有沒(méi)有索引,沒(méi)有的話(huà),新建
##之后呢,就可以從訪(fǎng)問(wèn)計(jì)劃中看索引有沒(méi)有生效
##靜態(tài)SQL可以用db2expln從包里弄,本人比較喜歡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 acct where ......"
##db2exfmt -l -d tp1 -o extp2.txt => vi extp2.txt

############2,Talespace and I/O Performance##################
db2 select bpname,bufferpoolid,npages,pagesize from syscat.bufferpools
//查看數(shù)據(jù)庫(kù)的緩沖池,syscat.bufferpools中的bufferpoolid字段和sysibmadm.snapdb_memory_pool
//的pool_secondary_id是關(guān)聯(lián)的,從后一張表中記載著用戶(hù)用戶(hù)間的緩沖池和系統(tǒng)自建的緩沖池
//CURRENT_SIZE 當(dāng)前大小;POOL_CONFIG_SIZE 設(shè)置大小;HIGH_WATERMARK 最高記錄;
//我發(fā)現(xiàn),這和使用 db2pd -db GTSSTGMS -mempools是對(duì)應(yīng)的 PhySz PhyUpBnd PhyHWM
//使用  db2pd -db GTSSTGMS -memset,將同類(lèi)內(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 size 100  automatic  pagesize 4k
db2 "select BPNAME, NPAGES from sysibm.sysbufferpools"
當(dāng)緩沖池啟用了自調(diào)整功能時(shí),該特定緩沖池的 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 bufferpool BP8K size 1000 pagesize 8k
db2 create system temporary tablespace TMP8K pagesize 8k managed by system using ('TMP8K') EXTENTSIZE 8 PREFETCHSIZE 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_physical_reads,bp_name from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%'
select data_logical_reads,index_logical_reads,total_logical_reads,bp_name from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%'
select data_hit_ratio_percent,index_hit_ratio_percent,total_hit_ratio_percent,bp_name from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%'
//上面這樣可以檢測(cè)每一個(gè)緩沖器的命中率情況
###接下來(lái),看一下緩沖器的讀寫(xiě)情況
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_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 sysibmadm.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_PREFETCH要match上extent size,為了得到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_IO
NUM_IOSERVERS AUTOMATIC?
NUM_IOCLEANERS AUTOMATIC?

############3,Memory Management##################
###當(dāng)然是要看內(nèi)存當(dāng)前使用了
db2 deactivate db tp1
db2 activate db tp1
db2 connect to tp1
db2mtrk -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不夠用的話(huà),會(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大小

############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 size
PCTFREE & FREEPAGE => 1) 只讀表,如果對(duì)于一個(gè)表沒(méi)有任務(wù)更新活動(dòng),那么可以將定義為沒(méi)有空余空間,而且也沒(méi)有任何比較reorg,因?yàn)椴粫?huì)產(chǎn)生分頁(yè)。
Monitor ----- Dynamic SQL
cd $HOME/sqllib/bin
db2 connect to tp1
db2 set current explain mode explain
db2 set current explain snapshot explain
db2 "select name,address from acct.where acct_grp < 50 order by name"
db2exfmt -l -d tp1 -o extp2.txt
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
db2數(shù)據(jù)庫(kù)性能參數(shù)優(yōu)化筆記整理
Linux 下的 DB2數(shù)據(jù)庫(kù)的遷移
IBM developerWorks 中國(guó) : 數(shù)據(jù)庫(kù)性能調(diào)優(yōu)專(zhuān)題
SQL CREATE DATABASE 語(yǔ)句
認(rèn)識(shí)Oracle數(shù)據(jù)庫(kù)System Global Area (SGA)-入門(mén)基礎(chǔ)
db2緩沖池問(wèn)題的診斷及優(yōu)化
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服