讲解一个标准规则的集合──DB2优化器
2008-09-03 16:28:34 来源:WEB开发网在Load的时候使用statistics选项可以在装入的过程中生成统计数据,这些统计数据可以供优化器确定最有效的执行sql语句的方式。
比如:
对表和索引产生最详细的统计数据:
loadfrommobile_number.delofdelreplaceinto
mobilestatisticsyeswithdistributionanddetailedindexesall
对表和索引都产生简略的统计:
loadfrommobile_number.delofdelreplaceinto
mobilestatisticsyesandindexesall
需要值得注意的时候在DB28.2新版本里面,可以这样做:
loadfrommobile_number.delofdelreplaceinto
mobilestatisticsuseprofile
DB2 LOOK
Db2look是DB2一个相当强大的一辅助工具,可以帮助我们从当前数据库里面把数据库结构抽取出来。在数据迁移的很多场合,我们都非常需要这个强大的工具。
在一些场合,特别是开发库迁移到生产库,生产库迁移到开发库的环境中,为了保证SQL执行计划的一致,我们需要用db2look这个工具,利用 db2look 工具提供的抽取数据库对象统计信息的功能,把数据库的统计信息进行迁移。
比如:
(1) 在用户环境下提取统计信息:
db2 runstats on table <用户表模式名>.<表名>
db2look -d <用户数据库名> -t <表名> -m -o statis.sql
输出文件中是对用户的 DB2 系统编目表中与该表统计信息相关的各字段值的 update 语句。
db2-svtfstatis.sql
(2) 利用用户提供的统计信息更新测试环境下测试表的统计信息。
总结
本文对DB2里面更新执行计划的几个常见的方法,做了一些抛砖引玉的说明。实际工作中的环境,是千差万别的,会有很多的不同。需要强调的是,在DB2数据库里面,基于成本的优化器决定着SQL的执行效率。而正确、及时地收集数据库的统计信息对于让优化器生成正确的执行计划是至关重要的。
更多精彩
赞助商链接