网站首页/技术开发列表/内容

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

技术开发2024-04-12阅读
正如将在下面的 排序堆 一节中所看到的,它的工作方式与排序堆的相同。 
如果您是一名 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 

[1] [2]  下一页

相关阅读