AUTO_RUNSTATS什么情况下调用

DB2 版本是 v9.5查看了下DB2的的自动维护参数是打开的,如下所示:
 自动维护                                   (AUTO_MAINT) = ON
   自动表维护                           (AUTO_TBL_MAINT) = ON
     自动 runstats                       (AUTO_RUNSTATS) = ON


维护窗口也是默认的,采用7*24小时在线维护,没有配置脱机维护。
 
  All
  All
  All
 


auto_runstats策略也是默认的,如下所示:

 
  
 


请问下auto_runstats到底在什么情况下被调用?据说DB2默认两个小时执行一次自动维护操作,但我发现很多表的stats_time都是去年,
数据量也翻了一翻,如card字段为4000,实际记录为9000等。
参与10

9同行回答

haoqingyunhaoqingyun数据库运维工程师CMBC
非常感谢,您解决了我长期困惑的问题,明明在Google中能搜索到文章但到IBM上搜索不了,原来是这么回事,谢 ...ppjava2009 发表于 2014-5-13 13:53     客气了。 互通有无,呵呵。显示全部
非常感谢,您解决了我长期困惑的问题,明明在Google中能搜索到文章但到IBM上搜索不了,原来是这么回事,谢 ...
ppjava2009 发表于 2014-5-13 13:53



    客气了。 互通有无,呵呵。收起
银行 · 2014-05-13
浏览1206
ppjava2009ppjava2009系统工程师用友汽车信息科技(上海)有限公司
回复  ppjava2009 这篇文章我以前看过,存在bookmarks里的。    哦,我知道了你为啥没搜到了。。。这篇 ...haoqingyun 发表于 2014-5-13 13:27 非常感谢,您解决了我长期困惑的问题,明明在Google中能搜索到文章但到IBM上搜索不了,原来是这么回事,谢谢!...显示全部
回复  ppjava2009

这篇文章我以前看过,存在bookmarks里的。

    哦,我知道了你为啥没搜到了。。。这篇 ...
haoqingyun 发表于 2014-5-13 13:27

非常感谢,您解决了我长期困惑的问题,明明在Google中能搜索到文章但到IBM上搜索不了,原来是这么回事,谢谢!收起
互联网服务 · 2014-05-13
浏览1161
haoqingyunhaoqingyun数据库运维工程师CMBC
回复 6# ppjava2009     试了一下,搜关键词 “Automatic table maintenance”,结果的第一条就是。显示全部
回复 6# ppjava2009


    试了一下,搜关键词 “Automatic table maintenance”,结果的第一条就是。收起
银行 · 2014-05-13
浏览1208
haoqingyunhaoqingyun数据库运维工程师CMBC
回复 6# ppjava2009 这篇文章我以前看过,存在bookmarks里的。    哦,我知道了你为啥没搜到了。。。这篇文章是英文站点上的。。。。 developworks的网站很土,每个站点(好像有6个站点吧,不记得了,英文的,中文的,俄文的,。。。)之间相互搜索不到。所以要搜两次, 分别在英文...显示全部
回复 6# ppjava2009

这篇文章我以前看过,存在bookmarks里的。

    哦,我知道了你为啥没搜到了。。。这篇文章是英文站点上的。。。。
developworks的网站很土,每个站点(好像有6个站点吧,不记得了,英文的,中文的,俄文的,。。。)之间相互搜索不到。
所以要搜两次, 分别在英文的 http://www.ibm.com/developerworks/, 以及中文的 http://www.ibm.com/developerworks/cn (多一个“cn”)收起
银行 · 2014-05-13
浏览1187
ppjava2009ppjava2009系统工程师用友汽车信息科技(上海)有限公司
“DB2默认两个小时执行一次自动维护操作”,准确的说是两小时一次进行evaluation, 就是评估是否需要做自动 ...haoqingyun 发表于 2014-5-12 13:25 上面文档描述对我非常重要,有了这些信息我就可以分析一下原因了,能不能请教一下该文档是怎么搜索出来的,我在IBM文档库(入口页面 ...显示全部
“DB2默认两个小时执行一次自动维护操作”,准确的说是两小时一次进行evaluation, 就是评估是否需要做自动 ...
haoqingyun 发表于 2014-5-12 13:25

上面文档描述对我非常重要,有了这些信息我就可以分析一下原因了,能不能请教一下该文档是怎么搜索出来的,我在IBM文档库(入口页面 http://www.ibm.com/developerworks/cn/views/data/libraryview.jsp)中搜索automatic没有。收起
互联网服务 · 2014-05-12
浏览1248
haoqingyunhaoqingyun数据库运维工程师CMBC
“DB2默认两个小时执行一次自动维护操作”,准确的说是两小时一次进行evaluation, 就是评估是否需要做自动维护,如果需要,再根据维护窗口 schedule 维护任务。如果这次评估发现没有维护的需求,就结束然后等下一时间的评估。...显示全部
“DB2默认两个小时执行一次自动维护操作”,准确的说是两小时一次进行evaluation, 就是评估是否需要做自动维护,如果需要,再根据维护窗口 schedule 维护任务。如果这次评估发现没有维护的需求,就结束然后等下一时间的评估。收起
银行 · 2014-05-12
浏览1194
haoqingyunhaoqingyun数据库运维工程师CMBC
上一个回帖只是介绍auto runstats的机制。对于楼主这个问题,“数据量也翻了一翻,如card字段为4000,实际记录为9000等”, 那看起来UDI counter应该大于50%了。可以通过 db2pd -tcbstat 看当前的UDI counter的值是多少。流程图里还有一个条件,就是这个表是活跃的,也就是近期有被...显示全部
上一个回帖只是介绍auto runstats的机制。

对于楼主这个问题,“数据量也翻了一翻,如card字段为4000,实际记录为9000等”, 那看起来UDI counter应该大于50%了。
可以通过 db2pd -tcbstat 看当前的UDI counter的值是多少。

流程图里还有一个条件,就是这个表是活跃的,也就是近期有被用到。

楼主可以继续分析一下。收起
银行 · 2014-05-12
浏览1184
ppjava2009ppjava2009系统工程师用友汽车信息科技(上海)有限公司
看了下面两篇文章,但没有找到自己想要的答案通过 SQL 界面在 DB2 for Linux, UNIX, and Windows 中配置自动维护Automate DB2 9.7 database maintenance in an embedded database environment显示全部
互联网服务 · 2014-05-12
浏览1171
haoqingyunhaoqingyun数据库运维工程师CMBC
回复 2# ppjava2009     看这篇文章,http://www.ibm.com/developerwork ... rticle/dm-0706tang/  Automatic table maintenance in DB2, Part 1: Automatic statistics collection in DB2 for Linux, UNIX, and Windows里面有个图,“Figure 12. Flowc...显示全部
回复 2# ppjava2009


    看这篇文章,http://www.ibm.com/developerwork ... rticle/dm-0706tang/  
Automatic table maintenance in DB2, Part 1: Automatic statistics collection in DB2 for Linux, UNIX, and Windows

里面有个图,“Figure 12. Flowchart on determining which tables to collect statistics on DB2 V8.2”,可以知道DB2是通过看UDI conter来判断是否需要runstats的。
这个图是基于v8.2的,目前基本上应该也是这个设计。

The easiest way to understand automatic statistics collection is to think of it as a series of tests applied sequentially to each table. A test is performed only if the results of all previous tests were positive.


Check if the table is due for evaluation. No further action performed if the table is not due for evaluation. An internal table is used to track if tables are due for evaluation.
    Check if the table has been accessed by the current workload.
    Check if table has statistics. If statistics hare never been collected for this table, issue RUNSTATS on the table. No further checks performed.
    Check whether UDI counter is greater than 10% of the rows. If not, no action on the table.
    Check whether UDI counter is greater than 50% of the rows, issue RUNSTATS on the table if UDI counter is greater than 50% of the rows.
    Issue RUNSTATS if the table is small.
    if table is large (more than 4000 pages), sample the table to decide whether or not to perform RUNSTATS.
收起
银行 · 2014-05-12
浏览1236

提问者

ppjava2009
系统工程师用友汽车信息科技(上海)有限公司
擅长领域: 中间件数据库java

问题状态

  • 发布时间:2014-05-12
  • 关注会员:1 人
  • 问题浏览:7422
  • 最近回答:2014-05-13
  • X社区推广