db2索引优化

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 02:30 点击:

 在数据库应用程序开发期间,开发人员倾向于在表上定义大量索引,以保证每个查询能够良好地执行。当应用程序开发完成并且数据库投入到生产环境中之后,存在过多索引将导致数据库性能下降。大量的索引意味着数据库系统在执行 update、insert 和 delete (uid) 操作时要做更多的工作。另外,存在大量索引时,runstats 和 reorg 等常规维护活动的运行也显著变慢。因此, 要实现最佳的数据库性能,最关键的是确定哪些索引对查询执行是必要的,哪些是可以安全删除而且不影响查询运行时的。本文解释了几种方法,db2® for linux®, unix®, and windows® (db2 luw) 数据库管理员(dba)可以通过它们识别未使用和不常使用的索引。

db2 design advisor (db2advis)

db2 design advisor 是识别未使用索引的简单方法。您可以使用 design advisor 分析一组 sql 语句及其执行频率。分析完成之后,design advisor 返回以下信息:
额外的索引定义,它们通过减少查询的运行时间改进查询性能
db2 用于查询执行的现有索引的名称
db2 未用于查询执行的现有索引的名称

让我们看看基于 db2 测试数据库 sample 的 design advisor 使用场景。

首先,通过在命令行上执行 db2sampl 命令创建 sample 数据库,如清单 1 所示。

清单 1. 创建 sample 数据库                       
db2sampl

 

在调用 design advisor 之前,您必须运行 explain.ddl 脚本来创建它需要的 explain 表。您可以在 db2 安装的 sqllib/misc 子目录中找到该脚本。您仅需运行该脚本一次。清单 2 显示了运行该脚本所需的命令。

清单 2. 创建 explain 表                       
db2 "connect to sample"
db2 -tf "c:\program files\ibm\sqllib\misc\explain.ddl"

 

当调用 design advisor 时,您必须定义需要对其进行分析的 sql 语句组。您可以通过几种方法定义 sql 语句组。其中一种方法是提供一个包含需要分析的 sql 语句的文本文件。例如,清单 3 显示了一个名为 queries.sql 样例文件,它包含一组 sql 语句。

清单 3. db2 design advisor 输入文件 queries.sql                       
-- employee queries

--#set frequency 123
select lastname from employee where empno = '000010';
--#set frequency 456
select lastname from employee where workdept = 'a00';


-- department queries

--#set frequency 245
select deptname from department where deptno = 'a00';
--#set frequency 678
select deptname from department where mgrno = '000010';


-- project queries

--#set frequency 345
select projname from project where projno = 'op1000';

 

在创建 design advisor 需要分析的 sql 语句文本文件时,您需要考虑以下事项:
注释行以 -- 开始,design advisor 将忽略它们。
如果知道的话,您可以选择指定每个查询的大致执行频率。这能够帮助 design advisor 更好地估计创建新的索引能够对数据库性能有多大的改进。为此,在查询定义之前添加另外一个以 --#set frequency 开始的行(尽管这些行以 -- 开始,但不被看作是注释行)。
文本文件中的每个 sql 语句都必须以分号结束(;)。
sql 语句可能包含参数标记。可以存在参数标记,因为 design advisor 并没有实际执行 sql 语句,它仅为它们计算其他可行的访问计划。
对于所有没有完全限定的表和视图(不带有显式模式),调用方的授权 id 被用作默认的模式。在调用 design advisor 时,您也可以选择使用 -q 选项覆盖默认模式。

清单 4 显示了一个样例命令,您可以使用它调用 design advisor 和将 queries.sql 指定为包含需要分析的 sql 语句的输入文件。

清单 4. 使用输入文件 queries.sql 调用 db2 data studio                       
db2advis -d sample -i queries.sql -m i -l -1 -t 0 -o db2advis_file.txt

 

以上命令的选项包含一些含义:
-d,数据库名。
-i,包含需要分析的 sql 语句的输

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • db2管理工具小结
      • DB2数据库的导出与导入(Windows客户端)
      • db2 CLP中如何换行
      • DB2查看表结构及所用表语句
      • DB2 · CREATE TABLESPACE
      • 使用DB2对象:创建模式、表和视图
      • DB2数据库逻辑卷的复制
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1