ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle数据库管理 » 关于自动收集统计数据的疑问

标题: 关于自动收集统计数据的疑问
离线 Arrayorientzkd
小兵


精华贴数 0
个人空间 0
技术积分 6198 (215)
社区积分 1635 (683)
注册日期 2005-6-23
论坛徽章:19
会员2007贡献徽章会员2006贡献徽章授权会员ITPUB新首页上线纪念徽章在线时间生肖徽章:鸡
生肖徽章:马生肖徽章:牛生肖徽章:羊生肖徽章:猴生肖徽章:兔数据库板块每日发贴之星

发表于 2006-3-9 08:46 
关于自动收集统计数据的疑问

我从oracle 文档上看到,如果数据库是DBCA建立的,那么每天的10:00PM至6:00AM,会自动地收集统计数据。我查询ALL_TAB_COL_STATISTICS,看到last_analyzed这一栏,却发现收集的时间是3-8的下午2点,而且再早就是2月28收集的数据,像自动收集统计数据有什么初始参数控制么?
数据库的版本为10.1.0.2.0


只看该作者    顶部
离线 hrb_qiuyb
397分


来自 哈尔滨
精华贴数 5
个人空间 9358
技术积分 6751 (189)
社区积分 78 (3901)
注册日期 2002-4-2
论坛徽章:23
现任管理团队成员ITPUB元老2008年新春纪念徽章   
      

发表于 2006-3-9 08:56 
Re: 关于自动收集统计数据的疑问



QUOTE:
最初由 orientzkd 发布
我从oracle 文档上看到,如果数据库是DBCA建立的,那么每天的10:00PM至6:00AM,会自动地收集统计数据。我查询ALL_TAB_COL_STATISTICS,看到last_analyzed这一栏,却发现收集的时间是3-8的下午2点,而且再早就是2月28收集的数据,像自动收集统计数据有什么初始参数控制么?
数据库的版本为10.1.0.2.0


对于Oracle来说,它不可能在操作系统上建个crontab,也不可能开发一个专门的进程来做这件事吧,最大的可能就是建个job。查查dba_jobs吧


__________________
看来是老喽,对技术不狂热了。。

俺的几个地:
我的Otn|我的IT168专栏|我的旧Blog|我的新Blog
只看该作者    顶部
离线 oracledba
高级会员


精华贴数 2
个人空间 0
技术积分 12028 (97)
社区积分 185 (2478)
注册日期 2001-9-26
论坛徽章:12
ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:兔2008北京奥运纪念徽章:蹦床
2008北京奥运纪念徽章:跳水ITPUB新首页上线纪念徽章数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星

发表于 2006-3-9 09:06 
gather_database_stats_job_proc收集的是没有统计信息或者统计信息不对的对象,你可以试试改一些东西再运行这个过程或者再跑那个scheduler job


__________________
MSN: rogerhuang75@hotmail.com
只看该作者    顶部
离线 orientzkd
小兵


精华贴数 0
个人空间 0
技术积分 6198 (215)
社区积分 1635 (683)
注册日期 2005-6-23
论坛徽章:19
会员2007贡献徽章会员2006贡献徽章授权会员ITPUB新首页上线纪念徽章在线时间生肖徽章:鸡
生肖徽章:马生肖徽章:牛生肖徽章:羊生肖徽章:猴生肖徽章:兔数据库板块每日发贴之星

发表于 2006-3-9 09:11 
Re: Re: 关于自动收集统计数据的疑问



QUOTE:
最初由 hrb_qiuyb 发布


对于Oracle来说,它不可能在操作系统上建个crontab,也不可能开发一个专门的进程来做这件事吧,最大的可能就是建个job。查查dba_jobs吧


谢谢,我查了一下这个视图
PHP code:


SQL
select job,log_user,last_date,next_date,total_time,what from dba_jobs;



JOB LOG_USER     LAST_DATE    NEXT_DATE   WHAT

--------------------------------------------------------------------------------

    
1 SYS                   09-MAR-06    09-MAR-06      wksys.wk_job.invoke(1,1);

   
2 SYS                     05-MAR-06    12-MAR-06       wksys.wk_job.invoke(1,2);



   
21 SYSMAN            09-MAR-06    09-MAR-06       EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS();

好像没有收集统计数据的job


只看该作者    顶部
离线 orientzkd
小兵


精华贴数 0
个人空间 0
技术积分 6198 (215)
社区积分 1635 (683)
注册日期 2005-6-23
论坛徽章:19
会员2007贡献徽章会员2006贡献徽章授权会员ITPUB新首页上线纪念徽章在线时间生肖徽章:鸡
生肖徽章:马生肖徽章:牛生肖徽章:羊生肖徽章:猴生肖徽章:兔数据库板块每日发贴之星

发表于 2006-3-9 09:21 


QUOTE:
最初由 oracledba 发布
gather_database_stats_job_proc收集的是没有统计信息或者统计信息不对的对象,你可以试试改一些东西再运行这个过程或者再跑那个scheduler job

gather_database_stats_job_proc,可以看到这个procedure的代码么,我desc 看了,这支过程好像没有参数?
oracle的文档有没有详细介绍build package的用法的阿


只看该作者    顶部
离线 zengmuansha
曾牧暗鲨


精华贴数 0
个人空间 0
技术积分 2797 (548)
社区积分 8 (12191)
注册日期 2005-11-21
论坛徽章:2
会员2007贡献徽章ITPUB新首页上线纪念徽章    
      

发表于 2008-7-18 09:41 
gather_database_stats_job_proc
我的它好像上午10点钟执行 ,想调整下它的执行时间该怎么办?


__________________
中文华语 中华人
http://hi.csdn.net/ZengMuAnSha/profile
只看该作者    顶部
离线 lotus1024
花儿草儿没追求



精华贴数 0
个人空间 112
技术积分 1486 (1136)
社区积分 20 (7532)
注册日期 2004-5-27
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-7-18 09:55 


QUOTE:
原帖由 Arrayorientzkd 于 2006-3-9 08:46 发表
我从oracle 文档上看到,如果数据库是DBCA建立的,那么每天的10:00PM至6:00AM,会自动地收集统计数据。我查询ALL_TAB_COL_STATISTICS,看到last_analyzed这一栏,却发现收集的时间是3-8的下午2点,而且再早就是2月28收集的数据,像自动收集统计数据有什么初始参数控制么?
数据库的版本为10.1.0.2.0

oracle的自动收集,好像是会根据表中的数据变化情况来做的。比如有个表,这两天的数据更改量小于10%。他就 不会做统计。有一个表是存储数据改变量,比如insert,delete,update了多少...

你的数据库是否是测试库,或者两天内数据没有什么变化,那么oracle就不做统计了,你可以尝试创建个大表,或者修改一个表的数据超过10%,20%以上看看。

也记不清了....

[ 本帖最后由 lotus1024 于 2008-7-18 09:57 编辑 ]


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问