BLE AS SELECT、CREATE MATERIALIZED VIEW AS SELECT以及CREATE INDEX,ALTER INDEX REBUILD等语句有很大的帮助。 举个简单的例子,Oracle的文档上对于索引的建立有如下描述: The optimizer can use an existing index to build another index. This results in a much faster index build. 如果看不到DDL的执行计划,只能根据执行时间的长短去猜测Oracle的具体执行计划,但是这种方法没有足够的说服力。但是通过DDL的执行计划,就使得结果一目了然了。 SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS; 表已创建。 SQL> EXPLAIN PLAN FOR 2 CREATE INDEX IND_T_NAME ON T(OBJECT_NAME); 已解释。 SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------ Plan hash value: 3035241083 ------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------- | 0 | CREATE INDEX STATEMENT | | 57915 | 3732K| 75 (2)| 00:00:01 | | 1 | INDEX BUILD NON UNIQUE| IND_T_NAME | | | | | | 2 | SORT CREATE INDEX | | 57915 | 3732K| | | | 3 | TABLE ACCESS FULL | T | 57915 | 3732K| 41 (3)| 00:00:01 | ------------------------------------------------------------------------------------- Note ----- - estimated index size: 5242K bytes 已选择14行。 SQL> CREATE INDEX IND_T_OWNER_NAME ON T(OWNER, OBJECT_NAME); 索引已创建。 SQL> EXPLAIN PLAN FOR 2 CREATE INDEX IND_T_NAME ON T(OBJECT_NAME); 已解释。 SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------- Plan hash value: 517242163 ------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------- | 0 | CREATE INDEX STATEMENT | | 57915 | 3732K| 75 (2)| 00:00:01 | | 1 | INDEX BUILD NON UNIQUE| IND_T_NAME | | | | | | 2 | SORT CREATE INDEX | | 57915 | 3732K| | | | 3 | INDEX FAST FULL SCAN| IND_T_OWNER_NAME | | | | | ------------------------------------------------------------------------------------------- Note ----- - estimated index size: 5242K bytes 已选择14行。 SQL> SET AUTOT ON SQL> CREATE INDEX IND_T_NAME ON T(OBJECT_NAME); 索引已创建。 注意,查看DDL的执行计划需要使用EXPLAIN PLAN FOR,AUTOTRACE对于DDL是无效的。 完成 丢弃