This Domain(Admin5.com) is for Sale:

使用DB2look 重新创建优化器访问计划(3)

时间:2007-12-23  来源:不详  作者:迈克DB
在测试系统上重新创建优化器/查询计划问题的示例
示例1:
OS:Windows2000
DB2LEVEL:V8.2Fixpack8ESE单分区
测试并复制相同的OS和db2level。
数据库:
生产数据库:SAMPLE
测试数据库:DUMMYDB
使用下列命令创建Sample数据库:db2sampl
使用下列命令创建Dummy数据库:
db2createdbDUMMYDB

注重:用与生产中相同的代码页、地区和排序序列创建TEST数据库。

生产环境:

--------------------------------------------------------
--DatabaseSAMPLEandDatabaseManagerconfigurationparameters
--------------------------------------------------------
UPDATEDBMCFGUSINGcpuspeed9.446886e-007;
UPDATEDBMCFGUSINGintra_parallelNO;
UPDATEDBMCFGUSINGfederatedNO;
UPDATEDBMCFGUSINGfed_noauthNO;

!db2foptSAMPLEupdateopt_buffpage250;
!db2foptSAMPLEupdateopt_sortheap256;

UPDATEDBCFGFORSAMPLEUSINGlocklist50;
UPDATEDBCFGFORSAMPLEUSINGdft_degree1;
UPDATEDBCFGFORSAMPLEUSINGmaxlocks22;
UPDATEDBCFGFORSAMPLEUSINGavg_appls1; 织梦内容管理系统
UPDATEDBCFGFORSAMPLEUSINGstmtheap2048;
UPDATEDBCFGFORSAMPLEUSINGdft_queryopt5;

---------------------------------
--EnvironmentVariablessettings
---------------------------------

!db2setDB2_INLIST_TO_NLJN=yes;
!db2setDB2_HASH_JOIN=yes;

除了以上设置,还应在数据库配置中注重下列配置:

db2getdbcfgforsample>dbcfg_sample.out

Databaseheap(4KB)(DBHEAP)=600
SQLstatementheap(4KB)(STMTHEAP)=2048
Numberoffrequentvaluesretained(NUM_FREQVALUES)=10
Numberofquantilesretained(NUM_QUANTILES)=20

确保在修改数据库治理器配置(dbmcfg)之后停止并启动该实例。对于sample数据库,按下列方式对ORG和SALES表运行runstats:

db2connecttosample
db2runstatsontable<schema>.orgwithdistributionandindexesall
db2runstatsontable<schema>.saleswithdistributionandindexesall
db2terminate

现在,通过执行EXPLAIN.DDL文件生成EXPLAIN表,该文件在<installdirectory>\sqllib\misc目录下:

db2connecttosample
db2-tvf<intallpath>\EXPLAIN.DDL dedecms.com
db2terminate

在名为query.sql的文件中保存下列命令:

connecttosample
setcurrentexplainmodeexplain
select*fromorga,staffbwherea.deptnumb=b.deptandb.dept=15
setcurrentexplainmodeno
terminate

现在,按下列方式执行该文件:

db2-tvfquery.sql

上面将仅仅以解释模式编译查询。您将在屏幕上看到:

C:\>db2-tvfquery.sql
connecttosample

DatabaseConnectionInformation

Databaseserver=DB2/NT8.2.1
SQLauthorizationID=SKAPOOR
Localdatabasealias=SAMPLE

setcurrentexplainmodeexplain
DB20000ITheSQLcommandcompletedsuccessfully.

select*fromorga,staffbwherea.deptnumb=b.deptandb.dept=15
SQL0217WThestatementwasnotexecutedasonlyExplaininformationrequests
arebeingprocessed.SQLSTATE=01604

setcurrentexplainmodeno
DB20000ITheSQLcommandcompletedsuccessfully.

C:\>db2terminate
DB20000ITheTERMINATEcommandcompletedsuccessfully.

使用db2exfmt生成访问计划,如下:

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息