WEB开发网
开发学院数据库DB2 DB2数据库SQL编码优化基础 阅读

DB2数据库SQL编码优化基础

 2008-08-27 16:26:20 来源:WEB开发网   
核心提示: 关于 列的信息,包括列的离散值的数量和存储在列中的值的分布范围; 关于 表空间的信息,DB2数据库SQL编码优化基础(5),包括活动页面的数量; 索引的当前状态,包括是否存在索引、索引的组织(叶子页的数量和级别的数量)、索引键的离散值的数量以及是否群集索引; 关于表空间和索引节点组或分区的

关于 列的信息,包括列的离散值的数量和存储在列中的值的分布范围;

关于 表空间的信息,包括活动页面的数量;

索引的当前状态,包括是否存在索引、索引的组织(叶子页的数量和级别的数量)、索引键的离散值的数量以及是否群集索引;

关于表空间和索引节点组或分区的信息。

当执行 RUNSTATS 或 RUN STATISTICS 实用程序时,统计信息就会填充 DB2 系统目录。您可以从控制中心(Control Center)、批处理作业或通过使用命令行处理器来调用该实用程序。一定要与您的 DBA 一起工作以确保在适当的时候积累统计信息,尤其是在生产环境中。

2) 构建适当的索引 :也许您为保证最佳 DB2 应用程序性能而可以做的最重要的事就是根据应用程序使用的查询为您的表创建正确的索引。当然,说总比做更容易。但我们可以从一些基础开始。例如,考虑以下这条 SQL 语句:

SELECT  LASTNAME, SALARY
FROM   EMP
WHERE  EMPNO = '000010'
AND   DEPTNO = 'D01'

什么索引会对这个简单查询有作用?首先,考虑您可以创建的所有可能的索引。您的第一个简短列表可能看起来如下:

  EMPNO 上的 Index1
DEPTNO 上的 Index2
EMPNO 和 DEPTNO 上的 Index3

这是一个好的开始,Index3 可能是最好的。它让 DB2 使用索引来立即查找满足 WHERE 子句中的两个简单谓词的行。当然,如果您已经有许多关于 EMP 表的索引,您也许应该检查再创建另一个关于表的索引所带来的影响。要考虑的因素包括:

修改影响 :DB2 将自动维护您创建的每个索引。这表示对该表的每个 INSERT 和每个 DELETE 都将不仅在表中插入和删除,而且会在其索引中插入和删除。如果您对在索引中的列的值进行 UPDATE 操作,那么您还更新了该索引。因此索引加快了检索过程的速度,但减慢了修改的速度。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:DB 数据库 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接