景洪网站建设,怎样添加网站图标,镇江润州区建设局网站,腾讯网站建设费用从Oracle Database 10g开始#xff0c;Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务#xff0c;用于自动收集CBO的统计信息#xff0c;调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计信息。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先…从Oracle Database 10g开始Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务用于自动收集CBO的统计信息调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计信息。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级再开始进行统计信息。收集的规则是user_tab_modifications中操作的记录数超过表的数量的10%就会自动收集。
当表的数据量修改超过总数据量的10%就会晚上自动收集统计信息如何判断10%。这个STALE_PERCENT10%是无法修改的如果表非常大10%是非常多的数据非常有可能造成统计信息不准确。 在11g之后STALE_PERCENT10%是可以修改的分为全局DBMS_STATS.SET_GLOBAL_PREFS 和表级别DBMS_STATS.SET_TABLE_PREFS。表级别的设定 修改为5%范围从1-100: exec dbms_stats.set_table_prefs(null,table_name,STALE_PERCENT,5); 恢复为10%: exec dbms_stats.set_table_prefs(null,table_name,STALE_PERCENT,null); 查询百分比:select dbms_stats.get_prefs(STALE_PERCENT,null,table_name) from dual;
---11g的是 周一到周五 2200-200 周六周日 600-400
SELECT w.window_name, w.repeat_interval, w.duration, w.enabled FROM dba_autotask_window_clients c, dba_scheduler_windows w WHERE c.window_name w.window_name AND c.optimizer_stats ENABLED; WINDOW_NAME REPEAT_INTERVAL DURATION -------------------- ------------------------------------------------------------ --------------- SUNDAY_WINDOW freqdaily;bydaySUN;byhour6;byminute0; bysecond0 000 20:00:00 FRIDAY_WINDOW freqdaily;bydayFRI;byhour22;byminute0; bysecond0 000 04:00:00 WEDNESDAY_WINDOW freqdaily;bydayWED;byhour22;byminute0; bysecond0 000 04:00:00 SATURDAY_WINDOW freqdaily;bydaySAT;byhour6;byminute0; bysecond0 000 20:00:00 THURSDAY_WINDOW freqdaily;bydayTHU;byhour22;byminute0; bysecond0 000 04:00:00 TUESDAY_WINDOW freqdaily;bydayTUE;byhour22;byminute0; bysecond0 000 04:00:00 MONDAY_WINDOW freqdaily;bydayMON;byhour22;byminute0; bysecond0 000 04:00:00
--禁用自动收集 exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name auto optimizer stats collection,operation NULL,window_name NULL); --启用自动收集 exec DBMS_AUTO_TASK_ADMIN.ENABLE(client_name auto optimizer stats collection,operation NULL,window_name NULL); --查看job
select client_name,status from dba_autotask_client;
CLIENT_NAME STATUS ---------------------------------------------------------------- -------- auto optimizer stats collection ENABLED auto space advisor ENABLED sql tuning advisor ENABLED --收集当前数据库下所有用户的统计信息 exec dbms_stats.gather_database_stats(user); --收集当前数据库用户下所有对象的统计信息 exec dbms_stats.gather_schema_stats(user); --收集数据字典的统计信息 exec dbms_stats.gather_dictionary_stats(); --当系统有很大的分区表时如果总是全部收集则会比较慢11g之后可以设置INCREMENTAL只对数据有变动的分区做收集
exec dbms_stats.set_table_prefs(user,table_name,INCREMENTAL,TRUE);--只收集数据变动的分区
exec dbms_stats.set_table_prefs(user,table_name,INCREMENTAL,FALSE);--都要收集
select dbms_stats.get_prefs(INCREMENTAL,null,table_name) from dual;--查看分区表INCREMENTAL的值 --获取global的统计信息收集设置选项 select dbms_stats.get_prefs(method_opt) from dual; select dbms_stats.get_prefs(concurrent) from dual; select dbms_stats.get_prefs(GRANULARITY) from dual;
select dbms_stats.get_prefs(INCREMENTAL) from dual; --设置global的统计信息收集选项 exec DBMS_STATS.SET_PARAM(DEGREE,4);
exec DBMS_STATS.SET_PARAM(INCREMENTAL,TRUE); 关闭自动统计信息命令exec DBMS_SCHEDULER.DISABLE(GATHER_STATS_JOB); 启用自动统计信息命令exec DBMS_SCHEDULER.ENABLE(GATHER_STATS_JOB); 查看自动统计信息是否开启 oracle 10g SELECT OWNER,JOB_NAME,ENABLED FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME GATHER_STATS_JOB; oracle 11g select t1.owner, t1.job_name, t1.enabled from dba_scheduler_jobs t1 where t1.job_name BSLN_MAINTAIN_STATS_JOB;