Toad生成的表(创建表)代码段中的MONITORING是什么?

时间:2019-05-30 07:52:04

标签: toad oracle11gr2

我在oracle中创建了一个名为test_tbl的表,如下所示。创建表后,我分析了蟾蜍的DDL语句,它具有一个名为MONITORING?的物理属性。 该MONITORING子句的用途是什么?

create table test_tbl
(
    col_a number(5,0),
    col_b varchar2(30)
);

这是从TOAD(模式浏览器->脚本)生成的代码

DROP TABLE MEERAN.TEST_TBL CASCADE CONSTRAINTS;

CREATE TABLE MEERAN.TEST_TBL
(
  COL_A  NUMBER(5),
  COL_B  VARCHAR2(30 BYTE)
)
TABLESPACE PANAMA_TS
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING 
NOCOMPRESS 
NOCACHE
MONITORING;

1 个答案:

答案 0 :(得分:0)

这是不推荐使用的子句; from the 10gR2 docs

  

监视|监视

     

在早期版本中,您可以使用这些子句来开始或停止收集此表上的修改统计信息。这些子句已被弃用。

     
      
  • 如果您以前是通过DBMS_STATSGATHER AUTO模式使用GATHER STALE包收集表的修改统计信息的,则您无需执行任何操作。现在,Oracle数据库会自动收集这些统计信息,并且现有代码中的MONITORINGNOMONITORING关键字不会导致错误。

  •   
  • 如果出于性能原因,您不想收集任何表的修改统计信息,则应将STATISTICS_LEVEL初始化参数设置为BASIC。但是请注意,这样做会禁用许多可管理性功能。

  •   

该文档的更高版本中甚至没有提及此子句;当我对11gR2表运行时,dbms_metadata.get_ddl不包含它-至少使用默认设置。但是,monitoring中仍然有一个all_tables列。

11g +文档also says

  

以前,您通过在DBMS_STATS(或MONITORINGCREATE语句中指定ALTER关键字,使TABLE能够自动收集表的统计信息。从Oracle Database 11g开始,MONITORINGNOMONITORING关键字已被弃用,并自动收集统计信息。如果您确实指定了这些关键字,则会将其忽略。

Toad似乎是从数据字典中手动重建DDL,而不是使用该包-子句顺序以及在模式和表名周围缺少双引号也表明是这种情况。如果要更改包含的内容,请see this Quest knowledge base article

但是基本上,您可以忽略MONITORING,因为Oracle会这么做。