zoukankan      html  css  js  c++  java
  • DB2中更新执行方案的几个罕见的要领1

     
    和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,如许的话,一样往常来说也能包管得到切确的执行方案。当然起首要确保这个表内中的数据最好漫衍对照匀称。
     
     
    来自: 新客网(www.xker.com) 详文参考:http://www.xker.com/page/e2008/0128/46625.html


    版权声明: 原创作品,准许转载,转载时请务必以超链接情势标明文章 原始来由 、作者信息和本声明。不然将究查法令责任。

  • 相关阅读:
    poj2181 jumping cow
    poj2184
    POJ 1189 钉子和小球
    uva11019矩阵匹配器D316
    noip2015运输计划
    [LintCode] Last Position of Target
    [LintCode] K Closest Points
    [LintCode] K Closest Numbers In Sorted Array
    [LintCode] Closest Number in Sorted Array
    [LintCode] Perfect Squares
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975383.html
Copyright © 2011-2022 走看看