DB2 SQL语句性能调优利器- explain tool (部分转载)
来源:百度文库 编辑:神马文学网 时间:2024/04/20 15:46:58
DB2 SQL语句性能调优利器- explain tool (部分转载)
当我们发现某个SQL语句执行很慢时,可以通过查看它的访问计划来定位原因,如是否执行了合适的索引、是否采用了正确的连接方法等。但是我们发现很多用户对访问计划的生成和解释工具的使用存在很多疑惑,本文通过一些实例来解释具体的用法,希望对大家有所帮助。(文中后段引用的文章虽然有些翻译的比较拗口,但总体上还是不错的,可以参考) 步骤1. 创建explain表
访问计划的采集和评估是通过一些explain命令和工具实现的,在采集和评估之前需要先创建一些数据表来存放解释数据。在/sqllib/misc下有个文件叫EXPLAIN.DDL
db2 connect to
db2 -tvf/sqllib/misc/EXPLAIN.DDL (unix和linux下注意大小写)
在当前数据库中会生成9张解释表,第2步采集的解释数据会存放到这些表中。 步骤2. 采集explain数据和explain snapshot数据
explain数据包含关于一条 SQL 语句的访问计划的详细信息。此信息跨多个不同的解释表存储。
explain shapshot数据包含一条 SQL 语句的当前内部表示以及所有相关信息。此信息存储在 EXPLAIN_STATEMENT 解释表的 SNAPSHOT 列中。
explain和explain snapshot的解释数据采集有如下几种方法:
执行 EXPLAIN SQL 语句 设置 CURRENT EXPLAIN MODE 特殊寄存器/CURRENT EXPLAIN SNAPSHOT 特殊寄存器 在 PRECOMPILE 或 BIND 命令中使用 EXPLAIN 或 EXPLSNAP 绑定选项 Explain SQL:
explain语句为单条动态SQL语句收集解释数据,如
explain plan for "select * from employee"
-------------------------------------------
Current explain mode为多条动态SQL语句收集解释数据:
>db2 set current explain mode explain (打开注册变量为explain模式)
>db2 "select * from employee"
>db2 "select * from department"
>...
>db2 set current explain mode no (关闭解释模式)
-------------------------------------------
Prep(或延迟bind) ...explain为嵌入式(如SQLC等)SQL语句收集解释数据:
>db2 prep myapp.sqc explain yes explsnap yes 步骤3. 查看和评估解释数据
DB2提供了如下几个查看工具,其中db2exfmt最为强大,其余两个可辅助。
db2expln db2exfmt Visual Explain db2exfmt -d -g tic -s % -n % -# 0 -w -1 -o explain1.txt
具体命令的使用请参看DB2 command reference或信息中心
转载请注明源自www.DB2China.net,请保留版权.
原文地址:http://www.db2china.net/club/thread-6500-1-1.html
当我们发现某个SQL语句执行很慢时,可以通过查看它的访问计划来定位原因,如是否执行了合适的索引、是否采用了正确的连接方法等。但是我们发现很多用户对访问计划的生成和解释工具的使用存在很多疑惑,本文通过一些实例来解释具体的用法,希望对大家有所帮助。(文中后段引用的文章虽然有些翻译的比较拗口,但总体上还是不错的,可以参考) 步骤1. 创建explain表
访问计划的采集和评估是通过一些explain命令和工具实现的,在采集和评估之前需要先创建一些数据表来存放解释数据。在
db2 connect to
db2 -tvf
在当前数据库中会生成9张解释表,第2步采集的解释数据会存放到这些表中。 步骤2. 采集explain数据和explain snapshot数据
explain数据包含关于一条 SQL 语句的访问计划的详细信息。此信息跨多个不同的解释表存储。
explain shapshot数据包含一条 SQL 语句的当前内部表示以及所有相关信息。此信息存储在 EXPLAIN_STATEMENT 解释表的 SNAPSHOT 列中。
explain和explain snapshot的解释数据采集有如下几种方法:
执行 EXPLAIN SQL 语句 设置 CURRENT EXPLAIN MODE 特殊寄存器/CURRENT EXPLAIN SNAPSHOT 特殊寄存器 在 PRECOMPILE 或 BIND 命令中使用 EXPLAIN 或 EXPLSNAP 绑定选项 Explain SQL:
explain语句为单条动态SQL语句收集解释数据,如
explain plan for "select * from employee"
-------------------------------------------
Current explain mode为多条动态SQL语句收集解释数据:
>db2 set current explain mode explain (打开注册变量为explain模式)
>db2 "select * from employee"
>db2 "select * from department"
>...
>db2 set current explain mode no (关闭解释模式)
-------------------------------------------
Prep(或延迟bind) ...explain为嵌入式(如SQLC等)SQL语句收集解释数据:
>db2 prep myapp.sqc explain yes explsnap yes 步骤3. 查看和评估解释数据
DB2提供了如下几个查看工具,其中db2exfmt最为强大,其余两个可辅助。
db2expln db2exfmt Visual Explain db2exfmt -d
具体命令的使用请参看DB2 command reference或信息中心
转载请注明源自www.DB2China.net,请保留版权.
原文地址:http://www.db2china.net/club/thread-6500-1-1.html
DB2 SQL语句性能调优利器- explain tool (部分转载)
精妙SQL语句(转载)
精妙SQL语句(转载)
第 1 部分: 用 DB2 Performance Expert 简化性能管理和调优
DB2性能调优:设计并配置你的数据库
数据架构师:DB2 数据仓库性能,第 2 部分
数据架构师:DB2 数据仓库性能,第 1 部分
使用语句事件监视器调优 DB2 通用数据库
实现DB2 SQL语句的优化的方法和意义-IT168 技术开发专区
db2look - DB2 Statistics and DDL Extraction Tool
全面解析DB2性能调优方面的二十个疑难问题
DB2性能调节工作总结
DB2使用小结(转载)
数据架构师: DB2 索引和查询性能:第 1 部分
DB2 SQL 调优/优化 案例
DB2 SQL 调优/优化 案例
DB2 性能优化快速入门
SQL 精妙语句(确实牛!)--MuBo
SQL 精妙语句(确实牛!)
sql 语句(一)词汇解释
[SQL]SQL语句分析集锦
SQL Server:用 SQL 语句
SQL语法,SQL语句大全,SQL基础
常用的SQL语句