文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程数据库如何在DB2里面更新执行计划
精品推荐
特别推荐
·学习SQL语句之SQL语句大全
·数据备份失败的五个原因及解决办法
·解决SQL Server常见的七个经典问题
·SQL存储过程的概念,创建,调用,管理,删除,优点
·带你轻松接触13个数据库术语
·如何恢复系统数据库如何恢复系统数据库?
·通过实例讲解由浅入深学会存储过程
·学会三个范式快速成为数据库设计的高手
·SQL数据库应聘人员面试时经常被问的问题
·问答:查询分析器不能单步调试的的原因
·数据库基础知识:SQL中的IIF语句详解
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·你知道吗?优化数据库前的十大问题
·自动备份注意事项让你远离误删数据噩梦
·关于MSSQL数据库日志满的快速解决办法
·SQL安全设置攻略
·SQL注入的不常见方法
·关于SQL语句的优化方式
·SQL优化34条
·查询及删除重复记录的方法
热点TOP10
·学习SQL语句之SQL语句大全
·玩转Windows桌面图标
·ADO连接数据库字符串大全
·精妙SQL语句收集
·ASP.NET中数据库的操作初步----DataSet操作数据库
·一个简单的酒店系统的数据库设计
·Apache+php+mysql安装与配置详解
·VB.NET的数据库基础编程(1)
·Transact-SQL语句总汇
·VB.NET的数据库基础编程(2)
·Delphi程序执行时实时生成报表
·SQL查询语句精华使用简要
·通过Remoting service上传文件
·QQ聊天记录器演示程序(一)
·SQLSERVER备份和对日志的处理
·如何在GridView中一次性批量更新多行数据
·数据库基础知识:SQL中的IIF语句详解
·MySQL密码恢复笔记
·MySQL数据导入导出方法与工具介绍(1)
·学会三个范式快速成为数据库设计的高手

如何在DB2里面更新执行计划

日期:2007年10月26日 作者: 查看:[大字体 中字体 小字体]


  和Oracle数据库一样,DB2数据库里面也是通过优化器来分析你的SQL,生成它认为最优的执行计划(Access Plan)。DB2的优化器实际上是一个标准规则集合,一般来说我们只要告诉DB2要检索什么,而不是如何检索。

  那么DB2的优化器是根据什么来判断SQL的最优存取路径呢?

  DB2的优化器是基于成本的优化器,也就是CBO(Cost Based Optmizer)。也就是说DB2 优化器会应用查询成本公式,该公式对每条可能的存取路径的四个因素进行评估和权衡:CPU 成本、I/O 成本、DB2 系统目录中的统计信息和实际的 SQL 语句。

  那么我们来简单看一下DB2的优化器的工作流程:

  1. DB2的优化器,在接收到SQL语句后,会首先校验SQL的语法,确保是正确的SQL

  2. 根据当前的系统环境信息,生成最优的执行计划来优化SQL语句

  3. 把SQL翻译成计算机指令语言,并执行这个优化后的SQL

  4. 返回结果,或者存储它们,以便将来的执行

  在我们看来,DB2 系统目录中统计信息是让DB2优化器正确工作的一个非常重要的依据。这些统计信息向优化器提供了与正在被优化的 SQL 语句将要访问的表状态相关的信息。这些信息主要包括:

  Table--包括表的记录数、PAGE、PCTFREE以及COMPRESS等信息,相关的系统视图是:sysstat.tables、syscat.tables

  Columns—包括COLUMNS的数量、长度、分布特征以及COMPRESS等信息,相关的系统视图是:sysstat.columns、syscat. columns

  Index--包括是否存在索引、索引的组织(叶子页的数量和级别的数量)、索引键的离散值的数量以及是否群集索引, 相关的系统视图是:sysstat.indexes、syscat. indexes

  其他的还有分区/节点组信息和表空间的信息

  如何及时更新这些信息呢?保证DB2优化器正确的工作,在DB2里面提供了以下的办法。

  RUNSTATS与REOGCHK

  Runstats这个命令的功能主要就是收集数据库对象的状态信息,这对数据库使用合理的ACCESS PLAN是至关重要的。一般来说,以下几种情况下面,我们需要用runstats来收集统计信息:

  1. 在给表创建一个index后,我们最好做一次runstat。这个情况也是大家经常忽略的。很多时候大家在给表增加了一个index后,分析执行计划,发现没有变化,觉得很奇怪。其实这个时候,你需要做一次runstats,就可以了。在8.2里面,DB2做了很好的改进,可以避免这个问题,在创建index的时候,可以立即更新你的信息。

  2. 在对table做了一次reorg后,记得要做一次runstats。因为对表做reorg,会修改表的很多信息,比如高水位等,所以做一次runstats,可以更新统计信息。

  3. 当你的表里面的数据发生了比较大的变化,一般来说,大约表里面的数据量的10%-20%发生了变化,就应该作一次runstats。这些变化包括删除,修改,插入。对于一些非常大的表,比方在数据仓库的项目里面,某些事实表非常巨大。这个时候,完整的对一个大表作runstats可能花费时间相当大,DB2 8.1里面支持我们对这些大表作抽样,比方说只对20%的数据作runstats,这样的话,一般来说也能保证得到正确的执行计划。当然首先要确保这个表里面的数据最好分布比较均匀。

  4. 当你在分区(DPF)数据库里面使用了REDISTRIBUTE DATABASE PARTITION GROUP这个命令,那么就需要用runstats来收集新的统计信息。

  RUNSTATS命令的语法如下:

  如果表名为DB2INST1.STAFF,表上有索引,则可以用下面的例子完成RUNSTATS命令:

  db2 runstats on table db2inst1.staff with distribution and detailed indexes all

  在实际的项目里面,对于变化比较大的表,需要我们定时对数据库做runstats,一般来说runstats和reorg可以结合起来做,首先对表作reorg,然后做runstats,最后REBIND数据库根据最新的统计信息生成合适的统计计划。

  值得注意的是,如果我们要处理的表数据量是快速变化的,比如在电信移动行业,需要在月末进行处理的汇总表。在不长的时间范围内数据量变化特别大,从而使得RUNSTATS 得到的统计信息不准确,原因是这些统计信息只是某个时间点的信息。您可以用这条语句来把表修改为volatile。

  alter table table_name volatile cardinality

  这样优化器将考虑使用索引扫描而不是表扫描。无论统计信息如何,优化器将使用索引扫描而不是使用表扫描。

  IBM的文档里面还提供了REORGCHK这个命令,可以根据统计公式计算表是否需要重整。

  比如可以分为对系统表和用户表两部分分别进行REORGCHK:

  1) 针对系统表进行REORGCHK

  db2 reorgchk update statistics on table system

  2) 针对用户表进行REORGCHK

  db2 reorgchk update statistics on table user

  需要注意的是,如果数据库中数据量比较大,这些操作一般所需时间比较长,所以尽量安排在数据库比较空闲的时候做。

  db2 update db cfg using AUTO_MAINT off AUTO_TBL_MAINT off AUTO_RUNSTATS off


[1] [2] 下一页 




上一篇:SQL Server 2008:传递表值参数

下一篇:不使用VS进行ASP.NET Membership管理

如何在DB2里面更新执行计划 相关文章:
·“黑客”教你如何远程控制计算机
·我是怎么进入他人计算机的
·复旦附中校园网络系统规划和设计
·突破网络限制之三十六计篇
·经典常见计算机密码破解实用手册
·专为宽屏设计 炫彩曲线高分辨率壁纸
·3DS Max 7卧室效果图设计:建模篇
·华北水利水电学院新校区校园网规划与设计
·综合实例:PS洗衣粉包装设计印刷全攻略
·如何建立一个网站?规划、设计、目的、原则、宣传
如何在DB2里面更新执行计划 相关软件:
·Dreamweaver 网页设计
·计算机基础知识教程
·计算机基础知识
·C语言程序设计
·创世卓越-三十六计经典故事高清晰PDF电子书
·亿尚发型设计管理系统
·美工设计教程
·家装设计全攻略精美珍藏版
·Photoshop CS经典创意设计200例
·高级计算机网络

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn