热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

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

来源: 作者: 时间:2007-08-05 Tag: 点击:
 

提示:正如将在下面的 “排序堆” 一节中所看到的,它的工作方式与排序堆的相同。 如果您是一名 DBA,就可能会使用 DB2 SQL Explain&

 

正如将在下面的 “排序堆” 一节中所看到的,它的工作方式与排序堆的相同。

如果您是一名 DBA,就可能会使用 DB2 SQL Explain Tool(db2exfmt)来获得对于 SQL 访问计划的理解。db2exfmt 工具用于格式化解释表的内容。如果您在生产中使用 db2exfmt 查看一个访问计划的输出,就会注意到计划顶部的下列内容。(注意:这些参数通常是由 db2look 输出中的 -f 和 -fd 选项所选择的,除了 dbheap 设置之外)。

 

清单 3. db2exfmt 的示例输出:

 

Database Context:  
----------------   
        Parallelism:            None      
        CPU Speed:              6.523521e-07         
       Comm Speed:             100   
        Buffer Pool size:       50000   
        Sort Heap size:         10000   
        Database Heap size:     5120   
        Lock List size:         1000   
        Maximum Lock List:      10   
        Average Applications:   1   
        Locks Available:        7849   

Package Context:   
---------------   
        SQL Type:               Dynamic   
        Optimization Level:     5   
        Blocking:               Block All Cursors   
        Isolation Level:        Cursor Stability   

---------------- STATEMENT 1  SECTION 201 ----------------   
        QUERYNO:                1   
        QUERYTAG:               CLP   
        Statement Type:         Select   
        Updatable:              No   
        Deletable:              No   
        Query Degree:           1

 

如果您稍稍深入查看 db2exfmt 的输出,就在访问计划之后,您将看到是否具有影响优化器计划的注册表设置。

注意:另外,遗憾的是,db2look -f 并非列出了所有相关的注册表变量。您将需要添加那些遗漏的。一般来说,您测试系统上的注册表变量设置应与生产系统上的相同,或者尽可能接近。

 

清单 4. 影响访问计划的注册表设置

 

1) RETURN: (Return Result)   
        Cumulative Total Cost:          57.6764   
        Cumulative CPU Cost:            191909   
        Cumulative I/O Cost:            2   
        Cumulative Re-Total Cost:       5.37264   
        Cumulative Re-CPU Cost:         134316   
        Cumulative Re-I/O Cost:         0   
        Cumulative First Row Cost:      26.9726   
        Estimated Buffer pool Buffers:   2   

        Arguments:   
        ---------   
        BLDLEVEL: (Build level)   
                DB2 v8.1.0.80 : s041221   
        ENVVAR  : (Environment Variable)   
      DB2_ANTIJOIN=yes   
                DB2_INLIST_TO_NLJN = yes   
        STMTHEAP: (Statement heap size)   
                2048

 

 

 

创建数据定义语言(DDL)

下列 "db2look" 命令创建了 DDL 以复制所有数据库对象,以及配置和统计信息。

 

db2look -d <dbname> -e -a -m -o db2look.out

 

 

 

 

核心提示:这里,我们使用了下列参数: -a:为所有的创建器(creator)生成统计数据。如果指定了该选项,那么将忽略 -u 选项。 -e:提取复制数据库所需的&n。

这里,我们使用了下列参数:

-a:为所有的创建器(creator)生成统计数据。如果指定了该选项,那么将忽略 -u 选项。

-e:提取复制数据库所需的 DDL 文件。该选项生成包含了 DDL 语句的脚本。该脚本可以在另一数据库上运行以重新创建数据库对象。

-m:以模拟模式运行 db2look 实用程序。该选项生成包含了 SQL UPDATE 语句的脚本。这些 SQL UPDATE 语句捕获所有的统计数据。该脚本可以在另一数据库上运行以复制原来的那一个数据库。当指定 -m 选项时,将忽略 -p、-g 和 -s 选项。

收集数据库子集的统计数据和 DDL

为了仅仅收集某些表和相关对象的统计数据和 ddl,可使用下列命令:

 

db2look -d <dbname> -e -a -m -t <table1> <table2> 
.. <tableX> -o table.ddl

 

 

 

这里,我使用了下列附加参数:

-t:为特定的表生成统计数据。可以将表的最大数目指定为 30。

此外,如果您不使用 -a 选项,就可以使用 -z 选项:

-z:模式名。如果同时指定了 -z 和 -a,那么将忽略 -z。联邦区域将忽略模式名。

 

注意:-m 选项极其重要。该选项将从系统表收集所有统计数据。测试中的统计数据必须与生产中的相同,这些统计数据是可以在测试环境中模拟生产环境的关键。

 

db2exfmt 输出的更多细节

数据库管理器级的配置参数

注意:使用命令 db2 "get dbm cfg" 查看这些参数,并使用

 

并行性(Parallelism):

 

db2 "update dbm cfg using <parameter> <value>"

 

更新数据库管理器的配置参数。

该参数表明是启用分区间并行性(inter-partition parallelism),还是启用内部分区并行性(intra-partition parallelism)。如果这是具有多个分区的 DPF,那么您将看到 Inter Partition Parallelism。如果这只是 SMP(启用 intra_parallel)单个节点环境,那么您将看到 Intra Partition Parallelism。如果启用了 intra_parallel,并且是多个分区的环境,您将看到该参数为 Inter and Intra partitions parallelism。最后,如果没有分区间或分区内并行性,该参数将显示 NONE。

CPU 速度(cpuspeed):

SQL 优化器使用 CPU 速度(每条指令几微秒)来评估某些操作的执行成本。



相关文章:
db2日期操作函数
SQL 语法参考手册
谈谈IBM DB2的数据库备份与恢复
对 DB2 V9 中 XML 类型的编码处理(dW)
构建DB2 Cube View元数据桥
DB2存储过程开发最佳实践
DB2中使用所有内存
DB2与SQL Server2000间SQL数据复制
用户和组帐户与DB2 UDB的交互
DB2 9数据库优点及缺点详细分析
DB2中实现Oracle的相关功能
将Siebel 7电子商务应用程序从DB2 UDB V8 迁移到D
解析:DB2 无限活动日志策略的实用技巧
DB2 9数据服务器发展的3个阶段
为DB2数据库添加验证约束
DB2数据库创建存储过程时遇到的错误
DB2 9数据库性能理解的二十大误区
DB2中的终极SQL性能调节技术
DB2数据库应用系统性能优化深入探究
提高DB2 Web程序性能5条规则
详解安装DB2 9数据库管理软件的4种方式
DB2 9.5的数据库内存保护技术
解决DB2中出现的SQL1032N错误现象
创建克隆文件
DB2数据库优化的几条策略
如何解决DB2中出现的SQL1032N错误现象
解决DB2数据库代码页不兼容的问题
DB2创建存储过程时遇到的错误
教你提高商业智能环境中的DB2查询性能
DB2 9.5的数据库内存保护