對於create我們知道這是一個ddl語句,另外還有一些操作,其實對於數據庫來說也是ddl操作。當發生ddl操作時,有關對象的sql語句都會出現重新解析的情況,所以在生產環境下要注意此類操作。
1.在表上創建對象、在線重建索引
SQL> create table dayu0718 as select * from dba_objects; Table created. SQL> commit; Commit complete. SQL> alter session set nls_date_format='yyyymmdd hh24:mi'; Session altered. SQL> select last_ddl_time from dba_objects where object_name='DAYU0718'; LAST_DDL_TIME -------------- 20180718 13:37 SQL> create index dayu0718_ind on dayu0718(object_id); Index created. SQL> select last_ddl_time from dba_objects where object_name='DAYU0718'; LAST_DDL_TIME -------------- 20180718 13:39 SQL> alter index dayu0718_ind rebuild online; Index altered. SQL> select last_ddl_time from dba_objects where object_name='DAYU0718'; LAST_DDL_TIME -------------- 20180718 13:41
2.添加、刪除列
SQL> alter table DAYU0718 add column_new varchar(30); Table altered. SQL> select last_ddl_time from dba_objects where object_name='DAYU0718'; LAST_DDL_TIME -------------- 20180718 13:50 SQL> alter table DAYU0718 drop column column_new; Table altered. SQL> select last_ddl_time from dba_objects where object_name='DAYU0718'; LAST_DDL_TIME -------------- 20180718 13:51
3.增加、調整約束
SQL> alter table dayu0718 add constraint pk_object_id primary key(object_id); Table altered. SQL> select last_ddl_time from dba_objects where object_name='DAYU0718'; LAST_DDL_TIME -------------- 20180718 14:06
4.若表為分區表,truncate分區表