【Explain Plan】10g中的PLAN_TABLE$臨時表
在早期的Oracle資料庫中如果需要使用執行計劃的功能,需要提前準備環境,也就是需要先執行下面的的指令碼:
SQL> @?/rdbms/admin/utlxplan.sql
在Oracle 10g版本,這一步驟可以被省略了,取而代之的是系統提供了一個全域性的臨時表PLAN_TABLE$供我們使用。從此,我們不再需要為使用“explain plan for”而單獨去準備環境了。
1.看一下這個全域性臨時表的建立過程
DROP TABLE SYS.PLAN_TABLE$ CASCADE CONSTRAINTS;
CREATE GLOBAL TEMPORARY TABLE SYS.PLAN_TABLE$
(
STATEMENT_ID VARCHAR2(30 BYTE),
PLAN_ID NUMBER,
TIMESTAMP DATE,
REMARKS VARCHAR2(4000 BYTE),
OPERATION VARCHAR2(30 BYTE),
OPTIONS VARCHAR2(255 BYTE),
OBJECT_NODE VARCHAR2(128 BYTE),
OBJECT_OWNER VARCHAR2(30 BYTE),
OBJECT_NAME VARCHAR2(30 BYTE),
OBJECT_ALIAS VARCHAR2(65 BYTE),
OBJECT_INSTANCE INTEGER,
OBJECT_TYPE VARCHAR2(30 BYTE),
OPTIMIZER VARCHAR2(255 BYTE),
SEARCH_COLUMNS NUMBER,
ID INTEGER,
PARENT_ID INTEGER,
DEPTH INTEGER,
POSITION INTEGER,
COST INTEGER,
CARDINALITY INTEGER,
BYTES INTEGER,
OTHER_TAG VARCHAR2(255 BYTE),
PARTITION_START VARCHAR2(255 BYTE),
PARTITION_STOP VARCHAR2(255 BYTE),
PARTITION_ID INTEGER,
OTHER LONG,
OTHER_XML CLOB,
DISTRIBUTION VARCHAR2(30 BYTE),
CPU_COST INTEGER,
IO_COST INTEGER,
TEMP_SPACE INTEGER,
ACCESS_PREDICATES VARCHAR2(4000 BYTE),
FILTER_PREDICATES VARCHAR2(4000 BYTE),
PROJECTION VARCHAR2(4000 BYTE),
TIME INTEGER,
QBLOCK_NAME VARCHAR2(30 BYTE)
)
ON COMMIT PRESERVE ROWS
NOCACHE;
DROP PUBLIC SYNONYM PLAN_TABLE;
CREATE PUBLIC SYNONYM PLAN_TABLE FOR SYS.PLAN_TABLE$;
GRANT DELETE, INSERT, SELECT, UPDATE ON SYS.PLAN_TABLE$ TO PUBLIC;
2.建立指令碼註釋
1)首先在sys使用者下建立了一個全域性臨時表PLAN_TABLE$
2)一句全域性臨時表PLAN_TABLE$建立了同名PLAN_TABLE
3)將同名PLAN_TABLE的增刪改查許可權授予PUBLIC,保證每個使用者都可以使用。
3.PLAN_TABLE表的詳細詳細描述資訊
關於PLAN_TABLE每個列的說明資訊可以參考Oracle官方文件。
自行參考,不贅述。
4.小結
PLAN_TABLE$的出現,體現了Oracle的人性化和進步。正因為此處提供的是臨時表,因此不同使用者之間所檢視的內容互不影響。
Good luck.
secooler
10.04.05
-- The End --
SQL> @?/rdbms/admin/utlxplan.sql
在Oracle 10g版本,這一步驟可以被省略了,取而代之的是系統提供了一個全域性的臨時表PLAN_TABLE$供我們使用。從此,我們不再需要為使用“explain plan for”而單獨去準備環境了。
1.看一下這個全域性臨時表的建立過程
DROP TABLE SYS.PLAN_TABLE$ CASCADE CONSTRAINTS;
CREATE GLOBAL TEMPORARY TABLE SYS.PLAN_TABLE$
(
STATEMENT_ID VARCHAR2(30 BYTE),
PLAN_ID NUMBER,
TIMESTAMP DATE,
REMARKS VARCHAR2(4000 BYTE),
OPERATION VARCHAR2(30 BYTE),
OPTIONS VARCHAR2(255 BYTE),
OBJECT_NODE VARCHAR2(128 BYTE),
OBJECT_OWNER VARCHAR2(30 BYTE),
OBJECT_NAME VARCHAR2(30 BYTE),
OBJECT_ALIAS VARCHAR2(65 BYTE),
OBJECT_INSTANCE INTEGER,
OBJECT_TYPE VARCHAR2(30 BYTE),
OPTIMIZER VARCHAR2(255 BYTE),
SEARCH_COLUMNS NUMBER,
ID INTEGER,
PARENT_ID INTEGER,
DEPTH INTEGER,
POSITION INTEGER,
COST INTEGER,
CARDINALITY INTEGER,
BYTES INTEGER,
OTHER_TAG VARCHAR2(255 BYTE),
PARTITION_START VARCHAR2(255 BYTE),
PARTITION_STOP VARCHAR2(255 BYTE),
PARTITION_ID INTEGER,
OTHER LONG,
OTHER_XML CLOB,
DISTRIBUTION VARCHAR2(30 BYTE),
CPU_COST INTEGER,
IO_COST INTEGER,
TEMP_SPACE INTEGER,
ACCESS_PREDICATES VARCHAR2(4000 BYTE),
FILTER_PREDICATES VARCHAR2(4000 BYTE),
PROJECTION VARCHAR2(4000 BYTE),
TIME INTEGER,
QBLOCK_NAME VARCHAR2(30 BYTE)
)
ON COMMIT PRESERVE ROWS
NOCACHE;
DROP PUBLIC SYNONYM PLAN_TABLE;
CREATE PUBLIC SYNONYM PLAN_TABLE FOR SYS.PLAN_TABLE$;
GRANT DELETE, INSERT, SELECT, UPDATE ON SYS.PLAN_TABLE$ TO PUBLIC;
2.建立指令碼註釋
1)首先在sys使用者下建立了一個全域性臨時表PLAN_TABLE$
2)一句全域性臨時表PLAN_TABLE$建立了同名PLAN_TABLE
3)將同名PLAN_TABLE的增刪改查許可權授予PUBLIC,保證每個使用者都可以使用。
3.PLAN_TABLE表的詳細詳細描述資訊
關於PLAN_TABLE每個列的說明資訊可以參考Oracle官方文件。
自行參考,不贅述。
4.小結
PLAN_TABLE$的出現,體現了Oracle的人性化和進步。正因為此處提供的是臨時表,因此不同使用者之間所檢視的內容互不影響。
Good luck.
secooler
10.04.05
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-631368/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Error: cannot fetch last explain plan from PLAN_TABLEErrorASTAI
- 【原創】Oracle9i和10g中plan_table表的差異Oracle
- Oracle -- 深入體會PLAN_TABLE、PLAN_TABLE$Oracle
- Oracle --- PLAN_TABLE$和PLAN_TABLE區別Oracle
- Explain PlanAI
- 【筆記】使用 plan_table筆記
- explain plan 的用法AI
- explain plan VS execution planAI
- USE EXPLAIN PLANAI
- 解決 'PLAN_TABLE' is old version
- oracle explain plan for的用法OracleAI
- MySQL 中的臨時表MySql
- Oracle 10G 中臨時表空間組的操作和使用Oracle 10g
- Oracle EXPLAIN PLAN用法OracleAI
- Explain for the Statistics of Execution PlanAI
- ORACLE EXPLAIN PLAN的總結OracleAI
- SQL server 中的臨時表SQLServer
- 資料庫升級後‘PLAN_TABLE資料庫
- MySQL 中的兩種臨時表MySql
- ORACLE SQL調優之'PLAN_TABLE' is old versionOracleSQL
- Use the statspack to generate the accurate explain planAI
- explain plan 學習記錄AI
- SQL Server中的臨時表和表變數SQLServer變數
- MySQL 中的myisam內部臨時表MySql
- Oracle中的臨時表用法彙總Oracle
- Oracle的臨時表Oracle
- 臨時表的操作
- Using Statspack to Record Explain Plan DetailsAI
- 用EXPLAIN PLAN 分析SQL語句AISQL
- toad顯示explain plan的問題AI
- ORACLE臨時表和SQLSERVER臨時表異同OracleSQLServer
- SQL Server中臨時表與表變數的區別SQLServer變數
- 10G新特性: 臨時表空間組(temporary tablespace group)
- sqlserver中判斷表或臨時表是否存在SQLServer
- EXPLAIN PLAN FOR 和 SET AUTOTRACE之間的差別AI
- 【Explain Plan】檢視SQL的執行計劃AISQL
- oracle 臨時表的使用Oracle
- SQLServer臨時表的使用SQLServer