使用DB2look 重新创建优化器访问计划(3)
时间:2007-12-23 来源:不详 作者:迈克DB
db2exfmt-dSAMPLE-gTIC-w-1-n%-s%-#0-oprod_sample_exfmt.txt
检查prod_sample_exfmt.txt文件的内容。您将看到生成了下面的访问计划:
AccessPlan:
-----------
TotalCost:25.8823
QueryDegree:1
Rows
RETURN
(1)
Cost
I/O
|
4
HSJOIN
(2)
25.8823
2
/----- -----\
41
TBSCANTBSCAN
(3)(4)
12.968212.913
11
||
358
TABLE:SKAPOORTABLE:SKAPOOR
STAFFORG
现在,这就是您要在生产sample数据库上继续的计划。您需要在测试环境中模拟该计划。
从生产sample数据库中收集下列信息:
db2look-dSAMPLE-l-ostorage.out
db2look-dSAMPLE-f-fd-oconfig.out
db2look-dSAMPLE-e-a-m-tORGSALES-otable.ddl
测试环境:
修改上面将数据库从SAMPLE连接到DUMMYDB时所收集的每个文件中的数据库名。
例如,假如您查看了3个文件的内容,就会注重到:
CONNECTTOSAMPLE;
将它修改为:
CONNECTTODUMMYDB;
在测试环境中接管这些文件。本例中,所有的表都是在默认的表空间USERSPACE1中创建的。因此,它们也应在测试系统上相同的SMS表空间中用storage.out中转储的相同配置(包括PREFETCHSIZE、EXTENTSIZE等)进行创建。 织梦好,好织梦
在config.out文件中进行少量修改。将下列内容:
UPDATEDBCFGFORSAMPLEUSINGdft_queryopt5;
修改为
UPDATEDBCFGFORSAMPLEUSINGdft_queryopt3;
并保存config.out文件。
现在,执行storage.out、config.out和table.ddl,如下:
db2-tvfstorage.out>storage_output.out
db2-tvfconfig.out>config_output.out
db2-tvftable.ddl>table.out
检查输出文件以确保所有命令都成功运行了。并且按照生产环境设置中所显示的用于SAMPLEDB的设置来修改DBHEAP、STMTHEAP、NUM_FREQVALUES、NUM_QUANTILES,使它们适用于DUMMYDB。同时,检查注册表变量设置是否尽可能地相同。
使用db2stop和db2start停止并启动该实例。重新为DUMMYDB数据库创建解释表:
db2connecttodummydb;
<installpath>\sqllib\misc\db2-tvfEXPLAIN.DDL
db2terminate;
现在,对DUMMYDB数据库运行查询,在前面对SAMPLE数据库运行查询时所生成的query.sql文件中将数据库名从SAMPLE修改为DUMMYDB。
C:\>db2-tvfquery.sql
connecttodummydb
DatabaseConnectionInformation
Databaseserver=DB2/NT8.2.1
SQLauthorizationID=SKAPOOR
织梦内容管理系统
Localdatabasealias=DUMMYDB
setcurrentexplainmodeexplain
DB20000ITheSQLcommandcompletedsuccessfully.
select*fromorga,staffbwherea.deptnumb=b.deptandb.dept=15
SQL0217WThestatementwasnotexecutedasonlyExplaininformationrequests
arebeingprocessed.SQLSTATE=01604
setcurrentexplainmodeno
DB20000ITheSQLcommandcompletedsuccessfully.
C:\>db2terminate
DB20000ITheTERMINATEcommandcompletedsuccessfully.
文章评论
共有位Admini5网友发表了评论 查看完整内容