亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > DB2 > 正文

我用DB2的這幾年(三)

2024-09-06 23:58:02
字體:
來源:轉載
供稿:網友


系統運行一段時間以后,用戶抱怨某些操作響應速度過慢;這個在項目前期沒有出現過類似問題,因此懷疑是數據量過大造成的原因。但是,查詢相關業務表中僅僅只有3萬多的的數據量,不足以構成影響程序響應速度過慢的瓶頸。更奇怪的是采用導入的方法將此表數據裝載進來卻沒有發現上述現象,我百思不得其解。

幾天后,無意間翻閱一本雜志,其中有這么一段話——“每當sql語句被發送到到db2 數據庫管理器中處理時,sql 優化器會去讀取系統編目表來確定被引用的列的特性以及在被引用的表中時候已經定義了索引,同時被語句引用的每個表的大小也包括在內。根據這些得到的信息,優化器可以估算出能滿足sql語句需要的每一種數據存取路徑的成本,然后推薦最佳的一個。 優化器用于做決策的數據庫統計集合數據在系統編目表中是一個關鍵性的元素。所以,統計的變化可能導致選擇存取路徑的變化;如果信息丟失或過時,優化器也許選擇出來的存取計劃將導致sql語句執行時間比正常的要長。例如,一個刪除操作可能留下以后不能再使用的空的數據頁面。對各種長度的字段進行更新可能導致新的字段值不適合在同一個數據頁面中存放。這將導致某些行被移動到不同得頁面并且在表里產生內部空隙或者未使用空間。因此,db2不得不去讀取更多的物理頁面來取回應用程序所需要的數據”。結合前面遇見的這個問題,該操作所涉及的物理表的確是經常進行增刪改操作的,是不是因為這個原因呢?剛好前段時間學習過關于表重組和運行統計的內容,知道db2有runstats和reorg工具來完成表的運行統計和重組。于是我就做了以下試驗:

 ---1首先檢查是否要重新組織數據 reorgchk current statistics on table db2admin.t_ckd 得到表的統計信息和索引的統計信息顯示如下:

--------------------------------------

表統計信息:

表統計信息:

f1: 100 * overflow / card < 5

f2: 100 * tsize / ((fpages-1) * (tablepagesize-76)) > 70

 f3: 100 * npages / fpages > 80

creator name card ov np fp tsize f1 f2 f3 reorg

--------------------------------------------------------------------------------

db2admin t_ckd 1 0 1 12 9 0 0 8 -**

--------------------------------------------------------------------------------

索引統計信息:

f4: clusterratio 或正常化的 clusterfactor > 80

f5: 100 * (keys * (isize+8) + (card-keys) * 4) / (nleaf * indexpagesize) > 50

f6: (100-pctfree) * (indexpagesize-96) / (isize+12) ** (nlevels-2) * (indexpagesize-96) / (keys * (isize+8) + (card-keys) * 4) < 100

creator name card leaf lvls isize keys f4 f5 f6 reorg

--------------------------------------------------------------------------------

表:db2admin.t_ckd

db2admin xak1t_ckd 1 1 2 28 1 100 - +++ ---

db2admin xie1t_ckd 1 1 1 10 1 100 - - ---

db2admin xie2t_ckd 1 1 1 10 1 100 - - ---

db2admin xie3t_ckd 1 1 1 4 1 100 - - ---

db2admin xie4t_ckd 1 1 1 18 1 100 - - ---

sysibm sql010510174815750 1 1 2 28 1 100 - +++ ---

--------------------------------------------------------------------------------

clusterratio 或正?;?clusterfactor (f4) 將指示索引需要 reorg,該索引與基表不在相同的序列中。當在表中定義了多個索引時,一個或多個索引可能被標記為需要 reorg。 指定 reorg 順序的最重要索引。

可以看到表統計信息中要求f1<5,f2>70,f3>80而實際的表的f1=0,f2=0,f3=8不能滿足要求,索引的大部分f4,f5,f6也不能滿足要求,必須進行重新統計

----2重新組織數據庫表的索引

reorg table db2admin.t_ckd index db2admin.xie3t_ckd

----3重新統計索引

runstats on table db2admin.t_ckd and indexes all

----4重新統計后可以再看看數據表的信息 reorgchk current statistics on table db2admin.t_ckd 得到表的統計信息和索引的統計信息顯示如下:

--------------------------------------

表統計信息:

表統計信息:

f1: 100 * overflow / card < 5

f2: 100 * tsize / ((fpages-1) * (tablepagesize-76)) > 70

f3: 100 * npages / fpages > 80

creator name card ov np fp tsize f1 f2 f3 reorg

--------------------------------------------------------------------------------

db2admin t_ckd 4893 0 401 401 1546188 0 96 100 ---

--------------------------------------------------------------------------------

索引統計信息:

f4: clusterratio 或正?;?clusterfactor > 80

f5: 100 * (keys * (isize+8) + (card-keys) * 4) / (nleaf * indexpagesize) > 50

f6: (100-pctfree) * (indexpagesize-96) / (isize+12) ** (nlevels-2) * (indexpagesize-96) / (keys * (isize+8) + (card-keys) * 4) < 100

creator name card leaf lvls isize keys f4 f5 f6 reorg

--------------------------------------------------------------------------------

表:db2admin.t_ckd

db2admin xak1t_ckd 4893 49 2 28 4893 81 87 2 ---

db2admin xie1t_ckd 4893 7 2 10 3 99 68 18 ---

db2admin xie2t_ckd 4893 7 2 10 2 99 68 18 ---

db2admin xie3t_ckd 4893 7 2 4 18 100 68 18 ---

db2admin xie4t_ckd 4893 6 2 18 6 90 80 18 ---

sysibm sql010510174815750 4893 49 2 28 4893 81 87 2 ---

--------------------------------------------------------------------------------

clusterratio 或正常化的 clusterfactor (f4) 將指示索引需要 reorg,該索引與基表不在相同的序列中。當在表中定義了多個索引時,一個或多個索引可能被標記為需要 reorg。 指定 reorg 順序的最重要索引。

至此,試驗完成。接下來比較一下運行統計和重組前后運行成本,如下圖:

運行重組統計前

 

運行重組統計后

  

對比運行統計前后的sql語句成本可以看出由運行前的4469變成了運行后的1572,運行成本是原來的三分之一多。然后再運行程序發現響應速度比以前有大幅度的提高,到此這個棘手的問題算是解決了(當然這是治標不治本,要從根本改變就應該從sql語句本身入手優化它的性能)。同時我對于“采用導入的方法將此表數據裝載進來卻沒有發現上述現象”這個問題也找到了答案,那就是——在import過程中由于導入目標表示新表,import工具將會用類似運行統計的方式將數據均勻填充到葉面當中,因此速度也會加快。這個問題說明對于在數據庫中那些經常發生變動的表,定期進行運行統計是對數據庫性能提高是有幫助的。

 

【附錄:一些其他的背景知識】

對 reorgchk 所使用的度量的考慮因素包括:(當查看 reorgchk 工具的輸出時,找到用于表的 f1、f2 和 f3 這幾列,以及用于索引的 f4、f5、f6、f7 和 f8 這幾列。如果這些列中的任何一列有星號 (*),則說明當前的表和/或索引超出了閾值。) f1: 屬于溢出記錄的行所占的百分比。當這個百分比大于 5% 時,在輸出的 f1 列中將有一個星號 (*)。

f2: 數據頁中使用了的空間所占的百分比。當這個百分比小于 70% 時,在輸出的 f2 列上將有一個星號 (*)。

f3: 其中含有包含某些記錄的數據的頁所占的百分比。當這個百分比小于 80% 時,在輸出的 f3 列上將有一個星號 (*)。

 f4: 群集率,即表中與索引具有相同順序的行所占的百分比。當這個百分比小于 80% 時,那么在輸出的f4 列上將有一個星號 (*)。

f5: 在每個索引頁上用于索引鍵的空間所占的百分比。當這個百分比小于 50% 時,在輸出的 f5 列上將有一個星號 (*)。

f6: 可以存儲在每個索引級的鍵的數目。當這個數字小于 100 時,在輸出的 f6 列上將有一個星號 (*)。

f7: 在一個頁中被標記為 deleted 的記錄 id(鍵)所占的百分比。當這個百分比大于 20% 時,在輸出的 f7 列上將有一個星號 (*)。

f8: 索引中空葉子頁所占的百分比。當這個百分比大于 20% 時,在輸出的 f8 列上將有一個星號 (*)。

對所有表運行 reorgchk 工具,并確保您正在使用當前統計信息,可使用命令:

reorgchk update statistics on table user

可以使用如下語句來檢查任何沒有統計信息的表:

select tabname from syscat.tables where stats_time is null

可以使用如下語句來檢查任何沒有統計信息的索引:

select indname from syscat.indexes where stats_time is null

可以使用如下語句來查找具有時間超過 30 天的統計信息的表和索引:

select tabname from syscat.tables where stats_time < current timestamp - 30 days select indname from syscat.indexes where stats_time < current timestamp - 30 days

注意: 在使用 runstats 命令的時候,必須指定表所在的模式。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品久久久久久久久青青| 亚洲男人天堂手机在线| 欧美视频在线看| 日本一区二区在线免费播放| 国产精品国产三级国产aⅴ9色| 中日韩美女免费视频网站在线观看| 欧美色视频日本版| 精品国产福利在线| 欧美激情第三页| 日韩电影中文字幕av| 综合136福利视频在线| 亚洲成人久久电影| 欧美国产日韩一区二区| 人妖精品videosex性欧美| 岛国av一区二区在线在线观看| 亚洲欧洲午夜一线一品| 精品美女国产在线| 一个人www欧美| 一区二区在线视频| 777国产偷窥盗摄精品视频| 日韩欧美在线观看| 久久99久久99精品中文字幕| 少妇高潮久久久久久潘金莲| 国产精品久久久久久久天堂| 亚洲自拍偷拍视频| 亚洲精品wwwww| 97超碰蝌蚪网人人做人人爽| 国产中文字幕亚洲| 亚洲专区国产精品| 久久久久久高潮国产精品视| 日韩亚洲综合在线| 欧美高清在线观看| 91免费看视频.| 亚洲字幕一区二区| 成人午夜高潮视频| 黑人狂躁日本妞一区二区三区| 日韩高清有码在线| 久久久久国产精品免费网站| 午夜精品福利电影| 久久精品亚洲一区| 成人激情视频免费在线| 国产精品久久91| 欧美色欧美亚洲高清在线视频| 日本伊人精品一区二区三区介绍| 亚洲精品第一国产综合精品| 亚洲自拍小视频免费观看| 日韩大片免费观看视频播放| 欧美激情视频一区二区三区不卡| xvideos亚洲| 热久久99这里有精品| 国产午夜精品免费一区二区三区| 中文字幕亚洲无线码a| 亚洲精品91美女久久久久久久| 欧美性生交xxxxx久久久| 亚洲区一区二区| 欧美激情手机在线视频| 欧美国产在线电影| 精品国内自产拍在线观看| 日韩av免费在线观看| 岛国av在线不卡| 国产精品69久久| 国产精品亚洲美女av网站| 国产精品久久久久久久久久免费| 久久亚洲欧美日韩精品专区| 亚洲影视九九影院在线观看| 欧美孕妇性xx| 欧美猛交免费看| 92国产精品久久久久首页| 欧美极品少妇xxxxx| 欧美富婆性猛交| 国产亚洲激情在线| 亚洲国产91色在线| 最近2019年手机中文字幕| 色先锋资源久久综合5566| 欧美高清在线视频观看不卡| 亚洲第一区中文字幕| 一个人看的www欧美| 午夜精品一区二区三区在线播放| 国产精品露脸自拍| 国产亚洲欧洲在线| 日韩美女在线看| 中文字幕亚洲激情| 青青青国产精品一区二区| 欧美激情视频网站| 96sao精品视频在线观看| 亚洲欧洲国产伦综合| 亚洲国产第一页| 国产精品成人一区二区三区吃奶| 日韩av快播网址| 黑人狂躁日本妞一区二区三区| 欧美日韩一区二区精品| 国产91网红主播在线观看| 91精品国产综合久久香蕉的用户体验| 久久久综合av| 国产精品日韩欧美大师| 亚洲第一福利网站| 亚洲欧美综合图区| 国产精品美女久久| 亚洲欧美激情四射在线日| 成人a级免费视频| 久久久免费精品视频| 久久精品这里热有精品| 欧美片一区二区三区| 91久久久国产精品| 在线观看日韩视频| 4444欧美成人kkkk| 国产在线高清精品| 久久久久久噜噜噜久久久精品| 欧美一级视频免费在线观看| 日韩欧美第一页| 国产精品夫妻激情| 狠狠综合久久av一区二区小说| 深夜精品寂寞黄网站在线观看| 久久免费视频网| 97色在线观看免费视频| 亚洲午夜久久久久久久| 91久久国产婷婷一区二区| 日韩在线视频网| 国产精品视频网址| 久久国产精品久久精品| 黑人狂躁日本妞一区二区三区| 日韩av有码在线| 亚洲性日韩精品一区二区| 久久免费福利视频| 国产日韩精品电影| 中文字幕亚洲图片| 日韩在线观看网址| 97久久久免费福利网址| 最近2019中文字幕在线高清| 欧美极品在线播放| 精品久久久久久久中文字幕| 欧美黑人xxxⅹ高潮交| 亚洲精品美女久久久久| 欧美精品videofree1080p| 日韩欧美在线网址| 亚洲最大激情中文字幕| 国产69精品99久久久久久宅男| 国产日韩欧美中文在线播放| 日韩欧美国产成人| 久久免费视频网站| 欧美精品一区二区免费| 成人午夜高潮视频| 国语自产精品视频在线看| 成人av在线天堂| 92看片淫黄大片看国产片| 色妞色视频一区二区三区四区| 91精品久久久久久久久久久久久久| 日本伊人精品一区二区三区介绍| 国产成人一区二区三区电影| 亚洲一区二区黄| 欧美激情三级免费| 亚洲精品久久久久久久久| 国产精品1区2区在线观看| 久久久久久成人| 久久香蕉国产线看观看av| 国产精品欧美激情在线播放| 精品动漫一区二区三区| 国产精品国语对白| 久久香蕉国产线看观看网| 久久中文字幕在线| 亚洲电影免费在线观看| 日韩av免费看网站| 91久热免费在线视频| 色yeye香蕉凹凸一区二区av|