狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
一区二区三区精品| 亚洲成a天堂v人片| 欧美一卡在线观看| 欧美乱妇23p| 欧美一区二区三区视频| 欧美日韩一区二区三区免费看| 91官网在线观看| 欧美在线免费观看亚洲| 欧美日韩国产美| 日韩视频免费观看高清在线视频| 日韩一区二区三区在线| 成人深夜视频在线观看| 亚洲精品123区| 欧美日韩国产探花| 亚洲国产99| 久久aⅴ国产紧身牛仔裤| 免费久久99精品国产自| 欧美亚洲国产怡红院影院| 在线成人免费观看| 337p日本欧洲亚洲大胆色噜噜| 国产视频一区不卡| 亚洲欧洲日韩在线| 视频在线观看一区| 国产91高潮流白浆在线麻豆| 欧美黄色精品| 久久精品二区三区| 欧美日产在线观看| 国产午夜精品久久久久久久| 亚洲精选视频免费看| 久久国内精品视频| 校园激情久久| 亚洲成a人v欧美综合天堂下载| 亚洲免费在线视频一区 二区| 亚洲一卡二卡三卡四卡无卡久久| 蜜桃视频在线观看一区| 成人a免费在线看| 在线午夜精品| 欧美精品欧美精品系列| 欧美国产欧美综合| 视频一区视频二区中文字幕| 国产69精品久久99不卡| aa国产精品| 91麻豆精品国产91久久久久久久久| 国产肉丝袜一区二区| 亚洲午夜久久久久| 国产91精品久久久久久久网曝门| 伊人久久婷婷| 日韩视频在线观看一区二区| 国产精品久久久久精k8| 精品综合久久久久久8888| 91精品国产一区二区| 海角社区69精品视频| 久久精品综合| 精品国产一区二区精华| 亚洲成av人片观看| 色综合婷婷久久| 色天使色偷偷av一区二区| 久久久久久久久久电影| 蜜臀久久99精品久久久久久9| 欧美在线91| 在线电影欧美成精品| 亚洲一区二区四区蜜桃| 色综合咪咪久久| 欧美群妇大交群中文字幕| 亚洲一二三四区不卡| 色综合一区二区| 51久久夜色精品国产麻豆| 亚洲电影一区二区| 精久久久久久| 久久婷婷久久一区二区三区| 久久电影国产免费久久电影 | 北条麻妃一区二区三区| 一区二区av| 国产视频一区不卡| 国产盗摄一区二区三区| 在线观看国产日韩| 亚洲女爱视频在线| 欧美/亚洲一区| 欧美xxxxxxxxx| 国内精品伊人久久久久影院对白| 性伦欧美刺激片在线观看| 中文字幕乱码一区二区免费| 懂色一区二区三区免费观看| 色拍拍在线精品视频8848| 亚洲在线成人精品| 亚洲人成久久| 中文字幕一区二区三区四区不卡 | 视频在线观看国产精品| 99精品热视频只有精品10| 国产清纯美女被跳蛋高潮一区二区久久w| 久久精品免费看| 色天天综合久久久久综合片| 一区二区免费在线播放| 亚洲日本精品国产第一区| 中文av一区二区| 欧美一区二区三区四区在线观看地址 | 国产日韩影视精品| 欧美一区二区三区久久精品| 久久蜜桃一区二区| 欧美 日韩 国产 一区| 欧美高清在线一区二区| 欧美日韩亚洲一区二区三区在线 | 欧美高清视频在线高清观看mv色露露十八| 天堂午夜影视日韩欧美一区二区| 香蕉久久久久久久av网站| 五月天欧美精品| 在线看国产一区| 国产精品综合网| 欧美精品一区男女天堂| 亚洲欧美影院| 亚洲色图一区二区三区| 国产精品乱看| 日韩电影在线免费| 4438亚洲最大| 91最新地址在线播放| 国产精品初高中害羞小美女文| 亚洲欧洲综合| 免费成人深夜小野草| 欧美日本一区二区三区| 99久久精品99国产精品| 中文字幕一区二区5566日韩| 久久狠狠一本精品综合网| 国产在线看一区| 久久久久久久久久久久久夜| 亚洲人久久久| 精品亚洲国产成人av制服丝袜| 91麻豆精品国产91久久久使用方法| 99vv1com这只有精品| 亚洲乱码国产乱码精品精98午夜 | 亚洲成人在线免费| 欧美精品丝袜中出| 欧美一区成人| 天堂va蜜桃一区二区三区漫画版| 91精品国产免费| 好吊色欧美一区二区三区四区 | 亚洲国产精品久久久久婷婷老年| 日韩精品成人一区二区三区| 日韩免费电影一区| 国产一区二区三区高清| 国产精品综合在线视频| 亚洲蜜桃精久久久久久久| 欧美性三三影院| 欧美激情一区二区三区在线视频| 亚洲综合色区另类av| 日韩三级av在线播放| 一区二区av| 成人午夜av电影| 亚瑟在线精品视频| 国产欧美精品一区| 在线观看免费视频综合| 国产在线成人| 国内精品久久久久影院薰衣草| 1024成人网| 午夜久久福利影院| 亚洲国产精品二十页| 欧美日韩亚州综合| 亚洲欧洲国产专区| 精品1区2区3区4区| 国产成人av电影在线播放| 一区二区三区中文在线观看| 精品日韩一区二区| 一本在线高清不卡dvd| 欧美国产三级| 国产91清纯白嫩初高中在线观看| 亚洲一区二区视频| 中文一区在线播放| 日韩一级二级三级| 欧美午夜精品一区二区蜜桃| 中文高清一区| 欧美特黄一级| www.亚洲色图.com| 国产麻豆一精品一av一免费| 亚洲曰韩产成在线| 日韩毛片在线免费观看| 久久婷婷综合激情| 日韩欧美久久久| 欧美性三三影院| 久久婷婷久久| 国产亚洲在线观看| 欧美一区二区三区喷汁尤物| 国产精品尤物| 最新成人av网站| 好吊一区二区三区| 91美女蜜桃在线| www.66久久| 国产宾馆实践打屁股91| 国内精品久久久久影院一蜜桃| 日韩在线一区二区三区| 午夜电影网亚洲视频| 一区二区三区四区乱视频| 中文字幕在线观看一区| 国产精品麻豆欧美日韩ww| 国产日韩av一区二区| 久久久久久久国产精品影院| 日韩欧美中文字幕制服| 日韩免费视频线观看| 欧美成人女星排名| 精品国产一区a| 久久婷婷色综合| 国产欧美精品在线观看|