首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 数据库 → DB2 → 文章内容

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

作者:无从考证  来源:转载  发布时间:2007-2-7 11:48:38
在测试系统上重新创建优化器/查询计划问题的示例 
示例 1: 
OS:Windows 2000 
DB2LEVEL:V8.2 Fixpack 8 ESE 单分区 
测试并复制相同的 OS 和 db2level。 
数据库: 
生产数据库:SAMPLE 
测试数据库:DUMMYDB 
使用下列命令创建 Sample 数据库:db2sampl 
使用下列命令创建 Dummy 数据库: 
db2 create db DUMMYDB 

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

生产环境: 

-------------------------------------------------------- 
-- Database SAMPLE and Database Manager configuration parameters 
-------------------------------------------------------- 
UPDATE DBM CFG USING cpuspeed 9.446886e-007; 
UPDATE DBM CFG USING intra_parallel NO; 
UPDATE DBM CFG USING federated NO; 
UPDATE DBM CFG USING fed_noauth NO; 

!db2fopt SAMPLE update opt_buffpage 250; 
!db2fopt SAMPLE update opt_sortheap 256; 

UPDATE DB CFG FOR SAMPLE USING locklist 50; 
UPDATE DB CFG FOR SAMPLE USING dft_degree 1; 
UPDATE DB CFG FOR SAMPLE USING maxlocks 22; 
UPDATE DB CFG FOR SAMPLE USING avg_appls 1; 
UPDATE DB CFG FOR SAMPLE USING stmtheap 2048; 
UPDATE DB CFG FOR SAMPLE USING dft_queryopt 5; 

--------------------------------- 
-- Environment Variables settings 
--------------------------------- 

!db2set DB2_INLIST_TO_NLJN=yes; 
!db2set DB2_HASH_JOIN=yes; 

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

db2 get db cfg for sample > dbcfg_sample.out 

Database heap (4KB)                     (DBHEAP)  =  600 
SQL statement heap (4KB)                (STMTHEAP)  =  2048 
Number of frequent values retained     (NUM_FREQVALUES) =  10 
Number of quantiles retained            (NUM_QUANTILES) =  20 

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

db2 connect to sample 
db2 runstats on table <schema>.org with distribution and indexes all 
db2 runstats on table <schema>.sales with distribution and indexes all 
db2 terminate 

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

db2 connect to sample 
db2 -tvf <intall path>\EXPLAIN.DDL 
db2 terminate 

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

connect to sample 
set current explain mode explain 
select * from org a, staff b where a.deptnumb=b.dept and b.dept=15 
set current explain mode no 
terminate 

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

db2 -tvf query.sql 

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

C:\>db2 -tvf query.sql 
connect to sample 

   Database Connection Information 

 Database server        = DB2/NT 8.2.1 
 SQL authorization ID   = SKAPOOR 
 Local database alias   = SAMPLE 

set current explain mode explain 
DB20000I  The SQL command completed successfully. 

select * from org a, staff b where a.deptnumb=b.dept and b.dept=15 
SQL0217W  The statement was not executed as only Explain information requests 
are being processed.  SQLSTATE=01604 

set current explain mode no 
DB20000I  The SQL command completed successfully. 

C:\>db2 terminate 
DB20000I  The TERMINATE command completed successfully. 

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

db2exfmt -d SAMPLE -g TIC -w -1 -n % -s % -# 0 -o prod_sample_exfmt.txt 

检查 prod_sample_exfmt.txt 文件的内容。您将看到生成了下面的访问计划: 

Access Plan: 
----------- 
 Total Cost:   25.8823 
 Query Degree:  1 

              Rows  
             RETURN  
             (   1)  
              Cost  
               I/O  
               | 
                4  
             HSJOIN 
             (   2)  
             25.8823  
                2  
          /-----+-----\ 
        4                1  
     TBSCAN           TBSCAN  
     (   3)           (   4)  
     12.9682          12.913  
        1                1  
       |                | 
       35                8  
 TABLE: SKAPOOR   TABLE: SKAPOOR   
      STAFF             ORG  

现在,这就是您要在生产 sample 数据库上继续的计划。您需要在测试环境中模拟该计划。 
从生产 sample 数据库中收集下列信息: 

db2look -d SAMPLE -l -o storage.out                         
db2look -d SAMPLE -f -fd -o config.out 
db2look -d SAMPLE -e -a -m -t ORG SALES -o table.ddl 

测试环境: 
修改上面将数据库从 SAMPLE 连接到 DUMMYDB 时所收集的每个文件中的数据库名。 
例如,如果您查看了 3 个文件的内容,就会注意到: 
CONNECT TO SAMPLE; 

将它修改为: 
CONNECT TO DUMMYDB; 

在测试环境中接管这些文件。本例中,所有的表都是在默认的表空间 USERSPACE1 中创建的。因此,它们也应在测试系统上相同的 SMS 表空间中用 storage.out 中转储的相同配置(包括 PREFETCHSIZE、EXTENTSIZE 等)进行创建。 
在 config.out 文件中进行少量修改。将下列内容: 
UPDATE DB CFG FOR SAMPLE USING dft_queryopt 5; 

修改为 
UPDATE DB CFG FOR SAMPLE USING dft_queryopt 3; 

并保存 config.out 文件。 
现在,执行 storage.out、config.out 和 table.ddl,如下: 

db2 -tvf storage.out > storage_output.out 
db2 -tvf config.out > config_output.out 
db2 -tvf table.ddl > table.out 

检查输出文件以确保所有命令都成功运行了。并且按照生产环境设置中所显示的用于 SAMPLE DB 的设置来修改 DBHEAP、STMTHEAP、NUM_FREQVALUES、NUM_QUANTILES,使它们适用于 DUMMYDB。同时,检查注册表变量设置是否尽可能地相同。 
使用 db2stop 和 db2start 停止并启动该实例。重新为 DUMMYDB 数据库创建解释表: 

db2 connect to dummydb; 
<install path>\sqllib\misc\db2 -tvf EXPLAIN.DDL 
db2 terminate; 

现在,对 DUMMYDB 数据库运行查询,在前面对 SAMPLE 数据库运行查询时所生成的 query.sql 文件中将数据库名从 SAMPLE 修改为 DUMMYDB。 

C:\>db2 -tvf query.sql 
connect to dummydb 

   Database Connection Information 

 Database server        = DB2/NT 8.2.1 
 SQL authorization ID   = SKAPOOR 
 Local database alias   = DUMMYDB 

set current explain mode explain 
DB20000I  The SQL command completed successfully. 

select * from org a, staff b where a.deptnumb=b.dept and b.dept=15 
SQL0217W  The statement was not executed as only Explain information requests 
are being processed.  SQLSTATE=01604 

set current explain mode no 
DB20000I  The SQL command completed successfully. 

C:\>db2 terminate 
DB20000I  The TERMINATE command completed successfully.
[] [返回上一页] [打 印]
  • 上一篇文章:使用DB2look 重新创建优化器访问计划(2)
  • 下一篇文章:使用DB2look 重新创建优化器访问计划(4)

  • 相关文章:
  • 使用DB2look 重新创建优化器访问计划(5)
  • 使用DB2look 重新创建优化器访问计划(4)
  • 使用DB2look 重新创建优化器访问计划(3)
  • 使用DB2look 重新创建优化器访问计划(2)
  • 使用DB2look 重新创建优化器访问计划(1)
  • 使用db2look 重新创建优化器访问计划
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号