狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

運用DB2look 重新創建優化器訪問計劃(4)

運用DB2look 重新創建優化器訪問計劃(4)

更新時間:2024-04-12 文章作者:未知 信息來源:網絡 閱讀次數:

生成 db2exfmt 輸出: 

db2exfmt -d DUMMYDB -g TIC -w -1 -n % -s % -# 0 -o test_dummydb_exfmt.txt 

檢查 test_dummydb_exfmt.txt 的內容并查看訪問計劃: 

Access Plan: 
----------- 
 Total Cost:   25.8843 
 Query Degree:  1 

              Rows  
             RETURN  
             (   1)  
              Cost  
               I/O  
               | 
                4  
             MSJOIN 
             (   2)  
             25.8843  
                2  
          /-----+-----\ 
        1                4  
     TBSCAN           TBSCAN  
     (   3)           (   5)  
     12.913           12.9682  
        1                1  
       |                | 
        8               35  
 TABLE: SKAPOOR   TABLE: SKAPOOR   
       ORG             STAFF  

您在測試中獲得了一個不同于生產中的訪問計劃。本例中,顯然我們在測試系統上已經將 DFT_QUERYOPT(默認的查詢優化)從 5 修改為 3。因此,您看到的是 Merge Join 計劃,而非 Hash Join 計劃,以及有一點點區別的總成本(Total Cost)。 
因為這些計劃不匹配(假設您不確定為什么),所以要檢查 db2exfmt 輸出中的配置。見 表 2。 
正如您可以看到的,測試(TEST)和生產(PRODUCTION)之間的惟一區別就是優化級別(Optimization Level),我們特意將之從 5 修改為 3,只是為了顯示在測試環境中復制生產訪問計劃為何會不成功。 
本例中,您將使用下列 UPDATE 語句將 DFT_QUERYOPT 更新為 5: 

UPDATE DB CFG FOR SAMPLE USING dft_queryopt 5 

然后,停止并重新連接數據庫。再次對 DUMMYDB 發出 query.sql,并使用 db2exfmt 命令生成訪問計劃。這次,您將看到相同的訪問計劃。否則,就進一步確保本文中所討論的所有優化器相關的參數都是相同的。 
示例 2: 
該示例顯示了 db2look 命令中 -m 選項的重要性。前面用 -m 選項收集的統計數據在測試和生產中應該相同。本例中,我們將看到沒有正確更新統計數據時計劃是如何變化的。  
數據庫管理器配置、數據庫配置和 db2set 注冊表變量與上面 示例 1 中的相同。這里的模式名是 SKAPOOR。用您的表的模式替換它。數據庫是相同的,與 示例 1 中一樣是 SAMPLE 和 DUMMY。這里所使用的平臺和 db2level 是 AIX 5.1 和 DB2 UDB ESE V8.2,Fix pack 8,單分區。 
在 sample 數據庫上執行下列命令: 

db2 "connect to sample" 
db2 "create index name_ind on staff (name,id)" 
db2 "runstats on table skapoor.staff with distribution and indexes all" 
db2 "set current explain mode explain" 
db2 "select name from staff where id=10 order by name" 
db2 "set current explain mode no" 
db2 "terminate" 

使用 db2exfmt 生成訪問計劃。您將看到下面的訪問計劃:  

Access Plan: 
----------- 
        Total Cost:             0.111065 
        Query Degree:           1 

      Rows 
     RETURN 
     (   1) 
      Cost 
       I/O 
       | 
        1 
     IXSCAN 
     (   2) 
    0.111065 
        0 
       | 
       35 
 INDEX: SKAPOOR 
    NAME_IND 

從 sample 數據庫中收集 db2look 信息: 

db2look -d sample -l -o storage.out 
db2look -d sample -e -a -m -t STAFF -o db2look.out 
db2look -d sample -f -fd -o config.out 

修改這些文件以使您連接 dummy 數據庫,而非之前在上面 示例 1 中所連接的 sample 數據庫。  
手工修改統計數據之一。在 db2look.out 文件中搜索下列語句(請注意,模式名、TABSCHEMA 和 INDSCHEMA 可能與您的具體情況不同): 

UPDATE SYSSTAT.INDEXES 
SET NLEAF=1, 
    NLEVELS=1, 
    FIRSTKEYCARD=35, 
    FIRST2KEYCARD=35, 
    FIRST3KEYCARD=-1, 
    FIRST4KEYCARD=-1, 
    FULLKEYCARD=35, 
    CLUSTERFACTOR=-1.000000, 
    CLUSTERRATIO=100, 
    SEQUENTIAL_PAGES=0, 
    DENSITY=0, 
    AVERAGE_SEQUENCE_GAP=0.000000, 
    AVERAGE_SEQUENCE_FETCH_GAP=0.000000, 
    AVERAGE_SEQUENCE_PAGES=0.000000, 
    AVERAGE_SEQUENCE_FETCH_PAGES=0.000000, 
    AVERAGE_RANDOM_PAGES=1.000000, 
    AVERAGE_RANDOM_FETCH_PAGES=0.000000, 
    NUMRIDS=35, 
    NUMRIDS_DELETED=0, 
    NUM_EMPTY_LEAFS=0 
WHERE INDNAME = ’NAME_IND’ AND INDSCHEMA = ’SKAPOOR ’ 
      AND TABNAME = ’STAFF’ AND TABSCHEMA = ’SKAPOOR ’; 

現在,將 FIRSTKEYCARD、FIRST2KEYCARD、FULLKEYCARD 和 NUMRIDS 從 35 修改為 37。現在保存 db2look.out 文件并運行這 3 個文件: 

db2 -tvf config.out > config_output.out 
db2 -tvf storage.out > storage_output.out 
db2 terminate 
db2stop 
db2start 
db2 -tvf db2look.out > db2look_output.out 

檢查前兩個文件 config_output.out 和 storage_output.out 的內容,以確保它們運行成功。現在,檢查 db2look_output.out 文件的內容。您將看到下列更新語句失敗了: 

UPDATE SYSSTAT.INDEXES SET NLEAF=1, NLEVELS=1, FIRSTKEYCARD=37, FIRST2KEYCARD=37 
, FIRST3KEYCARD=-1, FIRST4KEYCARD=-1, FULLKEYCARD=37, CLUSTERFACTOR=-1.000000, C 
LUSTERRATIO=100, SEQUENTIAL_PAGES=0, DENSITY=0, AVERAGE_SEQUENCE_GAP=0.000000, A 
VERAGE_SEQUENCE_FETCH_GAP=0.000000, AVERAGE_SEQUENCE_PAGES=0.000000, AVERAGE_SEQ 
UENCE_FETCH_PAGES=0.000000, AVERAGE_RANDOM_PAGES=1.000000, AVERAGE_RANDOM_FETCH_ 
PAGES=0.000000, NUMRIDS=37, NUMRIDS_DELETED=0, NUM_EMPTY_LEAFS=0 WHERE INDNAME = 
 ’NAME_IND’ AND INDSCHEMA = ’SKAPOOR ’ AND TABNAME = ’STAFF’ AND TABSCHEMA = ’SK 
APOOR ’ 
DB21034E  The command was processed as an SQL statement because it was not a 
valid Command Line Processor command.  During SQL processing it returned: 
SQL1227N  The catalog statistic "37" for column "FULLKEYCARD" is out of range 
for its target column, has an invalid format, or is inconsistent in relation 
to some other statistic. Reason Code = "8".  SQLSTATE=23521 

正如您可以看到的,上面用于索引 NAME_IND 的 UPDATE 語句失敗了,因為 FULLKEYCARD 大于表的基數(CARD)。正如通過 db2look.out 文件中的下列更新語句可以看到的,CARD 是 35: 

UPDATE SYSSTAT.TABLES 
SET CARD=35, 
    NPAGES=1, 
    FPAGES=1, 
    OVERFLOW=0, 
    ACTIVE_BLOCKS=0 
WHERE TABNAME = ’STAFF’ AND TABSCHEMA = ’SKAPOOR ’; 

現在,再次以解釋模式運行相同的查詢: 

db2 "select name from staff where id=10 order by name" 

并生成訪問計劃。您將看到它是不同的: 

Access Plan: 
----------- 
        Total Cost:             12.972 
        Query Degree:           1 

      Rows 
     RETURN 
     (   1) 
      Cost 
       I/O 
       | 
        1 
     TBSCAN 
     (   2) 
     12.972 
        1 
       | 
        1 
     SORT 
     (   3) 
     12.9708 
        1 
       | 
        1 
     TBSCAN 
     (   4) 
     12.9682 
        1 
       | 
       35 
 TABLE: SKAPOOR 
      STAFF 

該示例顯示,如果在表上發生 WRITE 活動時運行 RUNSTATS,統計數據就可能與本示例中的不一致。因此,用于更新統計數據的 UPDATE 語句可能失敗并產生 SQL1227N 錯誤消息。所有的 UPDATE 語句都運行成功十分重要,如果存在不一致性,就應該進行修理并重新運行。本例中,解決方案是將 KEYCARDS 和 NUMRIDS 從 37 重新修改為 35。 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
fc2成人免费人成在线观看播放| 精品处破学生在线二十三| 国产精品乱子久久久久| 99久久国产综合色|国产精品| 6080国产精品一区二区| 国产精品原创巨作av| 欧美在线观看一二区| 青青草国产成人99久久| 国产欧美二区| 亚洲成人av中文| 欧美色老头old∨ideo| 国产高清亚洲一区| 久久久亚洲精品石原莉奈| 91亚洲永久精品| 老司机亚洲精品| 国内精品久久久久久久影视蜜臀| 亚洲色图欧美在线| 欧美日韩一级黄| 91在线一区二区| 国产精品一二一区| 亚洲欧洲成人自拍| 欧美系列一区二区| 欧美激情亚洲| 日韩综合一区二区| 在线播放中文字幕一区| 久久先锋影音| 欧美精品二区三区四区免费看视频| 夜色激情一区二区| 欧美电影免费观看高清完整版| 欧美高清不卡| 玉米视频成人免费看| 国产欧美一区二区在线观看| 麻豆成人精品| 亚洲午夜精品久久久久久浪潮 | 国产成人精品午夜视频免费| 成人欧美一区二区三区在线播放| 色婷婷综合五月| 欧美日韩国产免费观看| 国产精品一区一区| 亚洲图片欧美综合| 国产亚洲欧美激情| 欧美成人三级电影在线| 欧美一区二区三区久久精品茉莉花| 国产精品色噜噜| 日韩三级高清在线| 一本一道久久a久久精品 | 亚洲综合丝袜美腿| 青草av.久久免费一区| 一区二区三区四区精品在线视频| 日韩三级在线观看| 欧美日韩三级在线| 在线日韩一区二区| 久久久久网址| 色婷婷综合激情| 久久都是精品| 色婷婷综合久久久中文一区二区| 欧美在线黄色| 欧美二区视频| 精品不卡一区| 欧美一区中文字幕| 性欧美xxxx大乳国产app| 久久99国产精品久久99果冻传媒| 亚洲青青青在线视频| 制服丝袜日韩国产| 久久久久久一区| 日本人妖一区二区| 五月激情综合网| 中文字幕亚洲精品在线观看| 国产精品久久久久永久免费观看 | 国产大陆a不卡| 国产一区二区伦理片| 国产麻豆精品久久一二三| 国产寡妇亲子伦一区二区| 成人免费观看男女羞羞视频| 日韩一区中文字幕| 久久网这里都是精品| 国产丝袜在线精品| 国产精品初高中害羞小美女文| 亚洲人成网站在线| 日韩精品一级中文字幕精品视频免费观看| 亚洲一二三四久久| 激情国产一区二区 | 一区二区精品在线观看| 日本乱人伦一区| 666欧美在线视频| 555www色欧美视频| 中文字幕久久午夜不卡| 午夜精品福利在线| 成人黄色免费短视频| 在线免费日韩片| 日韩视频在线你懂得| 美女一区二区视频| 亚洲欧美综合国产精品一区| 久久久夜夜夜| 国产人久久人人人人爽| 亚洲女子a中天字幕| 亚洲国产清纯| 久久久综合精品| 韩国三级在线一区| 久久av在线| 亚洲色图视频免费播放| 国产中文一区| 欧美色图一区二区三区| 亚洲情趣在线观看| zzijzzij亚洲日本少妇熟睡| 在线亚洲观看| 午夜av一区二区| aⅴ色国产欧美| 久久精品人人爽人人爽| 国产精品中文有码| 免费看的黄色欧美网站| 亚洲人成精品久久久久久 | 99国产精品久久久| 精品视频一区三区九区| 天天做天天摸天天爽国产一区| 美女网站在线免费欧美精品| 欧美日韩亚洲高清一区二区| 亚洲精品视频在线观看免费| 蜜桃视频第一区免费观看| 欧美一区二区三区免费大片 | 六月丁香婷婷色狠狠久久| 一区二区高清视频| 中文字幕一区在线观看| 精品二区久久| 欧美日韩一区二区电影| 久久久不卡影院| 亚洲精品护士| 视频一区在线播放| 欧美自拍偷拍一区| 亚洲色图在线播放| 欧美久久久久久蜜桃| 成人精品视频一区二区三区| 久久久www成人免费毛片麻豆| 91在线云播放| 蜜臀av性久久久久蜜臀av麻豆| 欧美久久久久中文字幕| 国产成人免费在线| 国产精品欧美综合在线| 成人性生交大片| 蜜桃精品视频在线| 精品三级在线观看| 亚洲大胆女人| 中文字幕视频一区二区三区久| 在线亚洲免费视频| 99久久综合色| 亚洲综合在线视频| 日韩欧美中文字幕公布| 在线亚洲+欧美+日本专区| 国产精品综合av一区二区国产馆| 久久久久9999亚洲精品| 久久精品一区二区国产| 美国欧美日韩国产在线播放| 亚洲欧美欧美一区二区三区| 欧美在线观看18| 欧美国产三区| 日韩电影免费一区| 亚洲人一二三区| 欧美男女性生活在线直播观看| 国产成人av电影免费在线观看| 91精品国产手机| 伊人精品视频| 欧美成人精品| 亚洲综合久久久久| 日韩三级在线观看| 奇米一区二区三区av| 久久国产乱子精品免费女| 久久精品日产第一区二区三区高清版 | 午夜影院久久久| 日韩三级精品电影久久久| 久久狠狠久久综合桃花| 国产一区 二区| 69堂成人精品免费视频| 色综合 综合色| 欧美91福利在线观看| 成人开心网精品视频| 丝袜诱惑制服诱惑色一区在线观看| 一区二区三区四区av| 中文字幕国产精品一区二区| 91精品久久久久久久久99蜜臂| 午夜亚洲视频| 不卡一区在线观看| 粉嫩嫩av羞羞动漫久久久| 亚洲在线视频一区| 一区二区三区国产精华| 国产欧美综合在线观看第十页 | 精品精品国产高清a毛片牛牛 | 国产高清精品在线| 国产主播一区二区三区| 国产精品卡一卡二| 亚洲不卡av一区二区三区| 最新国产の精品合集bt伙计| 18欧美乱大交hd1984| 在线欧美一区二区| 欧美性猛交xxxx乱大交退制版| 色噜噜狠狠色综合欧洲selulu| 色成年激情久久综合| 婷婷中文字幕综合| 午夜精品久久久久久久久久久| 香港成人在线视频| 国产一区在线看|