我在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;
答案 0 :(得分:0)
这是不推荐使用的子句; from the 10gR2 docs:
监视|监视
在早期版本中,您可以使用这些子句来开始或停止收集此表上的修改统计信息。这些子句已被弃用。
如果您以前是通过
DBMS_STATS
或GATHER AUTO
模式使用GATHER STALE
包收集表的修改统计信息的,则您无需执行任何操作。现在,Oracle数据库会自动收集这些统计信息,并且现有代码中的MONITORING
和NOMONITORING
关键字不会导致错误。如果出于性能原因,您不想收集任何表的修改统计信息,则应将
STATISTICS_LEVEL
初始化参数设置为BASIC
。但是请注意,这样做会禁用许多可管理性功能。
该文档的更高版本中甚至没有提及此子句;当我对11gR2表运行时,dbms_metadata.get_ddl
不包含它-至少使用默认设置。但是,monitoring
中仍然有一个all_tables
列。
11g +文档also says:
以前,您通过在
DBMS_STATS
(或MONITORING
)CREATE
语句中指定ALTER
关键字,使TABLE
能够自动收集表的统计信息。从Oracle Database 11g开始,MONITORING
和NOMONITORING
关键字已被弃用,并自动收集统计信息。如果您确实指定了这些关键字,则会将其忽略。
Toad似乎是从数据字典中手动重建DDL,而不是使用该包-子句顺序以及在模式和表名周围缺少双引号也表明是这种情况。如果要更改包含的内容,请see this Quest knowledge base article。
但是基本上,您可以忽略MONITORING
,因为Oracle会这么做。