这里讲述使用 DBMS_STATS收集统计信息,通过user_tab_modifications,
all_tab_modifications与 dba_tab_modifications三个视图查看不同层次模式
下的表对象变化的统计信息。
----查看自动收集统计信息的视图:
1》user_tab_modifications
2》 all_tab_modifications
3》 dba_tab_modifications
#查看三种等级表对象更改的统计信息的视图。
--附注:
1、Oracle11g 的默认设置;
2、user_tab_modifications 跟踪记录表的修改;
3、当分析对象的数据变化超过10% 时,Oracle 会重新分析;
4、定时任务gather_stats_job 负责定时调度收集统计信息。
5、在Oracle11g 中,默认自动收集统计信息的时间为:
# 周一~周五,22点启动,收集4个小时
# 周六,周日,6点启动,收集20个小时
---查看自动收集统计信息的任务与状态:
sys@PROD> select client_name,status from dba_autotask_client;
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
auto space advisor ENABLED
sql tuning advisor ENABLED
#自动收集统计信息的任务是开启状态。
---自动收集统计信息任务开启/关闭的管理:
--禁用:
sys@PROD>exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection',operation => NULL,window_name => NULL);
PL/SQL procedure successfully completed.
--查看:
sys@PROD> select client_name,status from dba_autotask_client;
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection DISABLED
auto space advisor ENABLED
sql tuning advisor ENABLED
--再开启:
sys@PROD>exec DBMS_AUTO_TASK_ADMIN.ENABLE(client_name => 'auto optimizer stats collection',operation => NULL,window_name => NULL);
PL/SQL procedure successfully completed.
--查看:
sys@PROD>select client_name,status from dba_autotask_client;
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
auto space advisor ENABLED
sql tuning advisor ENABLED
---查看HR用户表对象修改的统计信息:
PROD>select table_name,inserts,updates,deletes,timestamp
2 from dba_tab_modifications
3 where table_owner='HR';
TABLE_NAME INSERTS UPDATES DELETES TIMESTAMP
------------------------------ ---------- ---------- ---------- ---------
DEPARTMENTS 0 2 0 12-NOV-16
---查看Scott与suxing两个用户额修改统计信息:
sys@PROD>select table_name,inserts,updates,deletes,timestamp
2 from dba_tab_modifications
3 where table_owner='SCOTT';
no rows selected
#没有更改信息。
sys@PROD>select table_name,inserts,updates,deletes,timestamp
2 from dba_tab_modifications
3 where table_owner='SUXING';
no rows selected
#两个用户中都没有更改得统计信息。
---尝试修改Scott用户中表emp的记录:
--查看表中原来的记录:
scott@PROD>select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- --------- ---------- ---------- ------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- --------- ---------- ---------- ------
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
7777 SUSU CLERK 7782 13-NOV-16 3000 500 20
15 rows selected.
--尝试修改员工号为7777号的员工工资与奖金信息:
scott@PROD>update emp set sal=3500,comm=800
2 where empno = 7777;
1 row updated.
#修改完成。
--查看7777号员工修改后的记录信息:
scott@PROD>select * from emp
2 where empno = 7777;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- --------- ---------- ---------- ------
7777 SUSU CLERK 7782 13-NOV-16 3500 800 20
#修改成功。
---查看Scott用户表对象修改的统计信息:
sys@PROD>select table_name,inserts,updates,deletes,drop_segments,timestamp
2 from dba_tab_modifications
3 where table_owner='SCOTT';
TABLE_NAME INSERTS UPDATES DELETES DROP_SEGMENTS TIMESTAMP
------------------------------ ---------- ---------- ---------- ------------- ---------
EMP 0 1 0 0 01-DEC-16
#现在与刚才对比,发现统计到Scott用户表emp上有1条的更新记录。
--这里是通过修改自动收集统计细信任务的执行时间来马上获取到以上的一条统计记录的。
开始的附注那里提到:oracle 11G数据库在周一至周五之间每天22:00会收集4个小时区间的
统计信息,周末每天6:00开始收集20小时区间的统计信息。所以对于什么时候开始自动收集,
收集多长时间的统计信息,在接下来的一篇博文中会提到。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31392094/viewspace-2129501/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31392094/viewspace-2129501/