使用DB2look 重新创建优化器访问计划(4)
时间:2007-12-23 来源:不详 作者:迈克DB
NUMRIDS=35,
NUMRIDS_DELETED=0,
NUM_EMPTY_LEAFS=0
WHEREINDNAME=’NAME_IND’ANDINDSCHEMA=’SKAPOOR’
ANDTABNAME=’STAFF’ANDTABSCHEMA=’SKAPOOR’;
现在,将FIRSTKEYCARD、FIRST2KEYCARD、FULLKEYCARD和NUMRIDS从35修改为37。现在保存db2look.out文件并运行这3个文件:
db2-tvfconfig.out>config_output.out
db2-tvfstorage.out>storage_output.out
db2terminate
db2stop
db2start
db2-tvfdb2look.out>db2look_output.out
检查前两个文件config_output.out和storage_output.out的内容,以确保它们运行成功。现在,检查db2look_output.out文件的内容。您将看到下列更新语句失败了:
UPDATESYSSTAT.INDEXESSETNLEAF=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_
内容来自dedecms
PAGES=0.000000,NUMRIDS=37,NUMRIDS_DELETED=0,NUM_EMPTY_LEAFS=0WHEREINDNAME=
’NAME_IND’ANDINDSCHEMA=’SKAPOOR’ANDTABNAME=’STAFF’ANDTABSCHEMA=’SK
APOOR’
DB21034EThecommandwasprocessedasanSQLstatementbecauseitwasnota
validCommandLineProcessorcommand.DuringSQLprocessingitreturned:
SQL1227NThecatalogstatistic"37"forcolumn"FULLKEYCARD"isoutofrange
foritstargetcolumn,hasaninvalidformat,orisinconsistentinrelation
tosomeotherstatistic.ReasonCode="8".SQLSTATE=23521
正如您可以看到的,上面用于索引NAME_IND的UPDATE语句失败了,因为FULLKEYCARD大于表的基数(CARD)。正如通过db2look.out文件中的下列更新语句可以看到的,CARD是35:
UPDATESYSSTAT.TABLES
SETCARD=35,
NPAGES=1,
FPAGES=1,
OVERFLOW=0,
ACTIVE_BLOCKS=0
WHERETABNAME=’STAFF’ANDTABSCHEMA=’SKAPOOR’;
现在,再次以解释模式运行相同的查询:
db2"selectnamefromstaffwhereid=10orderbyname"
并生成访问计划。您将看到它是不同的:
AccessPlan:
-----------
TotalCost:12.972 织梦内容管理系统
QueryDegree: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。
文章评论
共有位Admini5网友发表了评论 查看完整内容