当前位置:首页 > 开发 > 数据库 > 正文

Oracle 9i建表时需要加上MONITORING参数的作用

发表于: 2013-09-03   作者:bijian1013   来源:转载   浏览次数:
摘要:         MONITORING参数说明:创建表时设置MONITORING参数, 使得Oracle跟踪对表的DML操作,预估DML操作所影响的记录数量。在Oracle 9i中, MONITORING参数不是默认的,需要手工执行,而在Oracle 10g及以上版本中, 该参数为默认设置。    

        MONITORING参数说明:创建表时设置MONITORING参数, 使得Oracle跟踪对表的DML操作,预估DML操作所影响的记录数量。在Oracle 9i中, MONITORING参数不是默认的,需要手工执行,而在Oracle 10g及以上版本中, 该参数为默认设置。

        1.创建表时设置MONITORING参数

         create table a
         (
               value      int
         )
         MONITORING
         ;

        2.打开表a的监控
        ALTER TABLE a MONITORING; 

        3.对test下的所有表进行监控
        BEGIN
                DBMS_STATS.alter_schema_tab_monitoring(test,true); 
        END;

实例:

SQL> exec DBMS_STATS.alter_schema_tab_monitoring('test',true);

PL/SQL 过程已成功完成。

SQL> insert into a values(2);

已创建 1 行。

SQL> commit;

提交完成。

SQL> delete a;

已删除3行。

SQL> commit;

提交完成。

SQL>  exec DBMS_STATS.alter_schema_tab_monitoring('test',true);

PL/SQL 过程已成功完成。

TABLE_NAME                        INSERTS    UPDATES    DELETES TRU
------------------------------                    ---------- -         ---------              ---------- - --
A                                                     1                                     1        NO

        MONITORING参数的作用:

        1.主要的作用是对一个schema的所有表dml监控,目的是看表自上一次收集统计信息后是否发生了dml操作。从而使日后收集的更有针对性,只收集发生变化的表。
例:SQL>EXECUTE DBMS_STATS. GATHER_SCHEMA_STATS ('HR', options=>'GATHER STALE');
         对于oracle9i,smon会每15分钟把被监测表发生的dml变化的的statistics回写到数据字典中。也可以手动强制回写:SQL>execute DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;
        2.另外一个作用,有些时侯库中有好多的垃圾表,在你不太确定的情况下,你可以用alter table有针对性的设一些监控,过了一定的周期,比如一个月、一个季度,如果这个表还没有dml操作,就可以先给其改名,最后删除。
        另外:可以通过查dba_tab_modifications这个视图看哪个被监测的表发生了dml操作

 

        如果exec DBMS_STATS.alter_schema_tab_monitoring('test',true);语句出现如下错误:

SQL>  exec DBMS_STATS.alter_schema_tab_monitoring('test',true);
begin DBMS_STATS.alter_schema_tab_monitoring('test',true); end;
*
ERROR at line 1:
ORA-06550: line 1, column 18:
PLS-00302: component 'ALTER_SCHEMA_TAB_MONITORING' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

       则需以sysdba权限用户执行,或通过sys授予用户dbms_stats的执行权限。

oracle>sqlplus '/ as sysdba'
SQL>grant execute on dbms_stats to hr;
       可进一步参考: http://wenku.baidu.com/view/5b9f512c7375a417866f8fae.html

Oracle 9i建表时需要加上MONITORING参数的作用

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户
oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户
powerdesigner 在项目中使用还是较平凡的,建议大家还是学学powerdesigner 1. 生成sql脚本 Database
Oracle 导出建表、视图、索引脚本 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Oracle 导出建表、视图、索引脚本 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Oracle中的建表空间,建用户,授权,命令行导入导出等基本命令 --在命令行中以系统用户登录Oracle s
在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,
create table HOUSEHOLDSTAFFS ( ID NUMBER(10) not null, IDCARDNO VARCHAR2(60) not null, NAME VA
解决Oracle建Dblink时自动添加后缀.US.ORACLE.COM的方法 第一步:查看global_name参数 很明显,自动
建表时遇到遇到属性名同MySQL的保留字相同导致不能建表的问题,如下SQL语句: CREATE TABLE TBL_ACC
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号