zoukankan      html  css  js  c++  java
  • 运用DB2look重新建立优化器会晤企图(5)

     
    手工修正统计数据之一。在 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。

     
    来自: 新客网(www.xker.com) 详文参考:http://www.xker.com/page/e2007/0801/29052.html


    版权声明: 原创作品,容许转载,转载时请务必以超链接情势标明文章 原始来由 、作者信息和本声明。否则将究查执法责任。

  • 相关阅读:
    神经网络量化入门--激活函数
    自我介绍+软工五问
    Myapp
    自我介绍+软工5问
    需求改进&系统设计
    团队展示&选题
    结对编程(java实现)
    个人项目-wc
    自我介绍+软工5问
    团队项目介绍
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975361.html
Copyright © 2011-2022 走看看