【原創】Oracle9i和10g中plan_table表的差異
實驗環境:WinXP SP2
資料庫版本:10.2.0.1
今天在做實驗的時候發現,plan_table在不用的Oracle版本間是有一定的差異的。10g相對9i,在plan_table中新增了一些列(下面綠色的部分)
Oracle 9i的utlxplan.sql內容:
create table PLAN_TABLE (
statement_id varchar2(30),
timestamp date,
remarks varchar2(80),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000),
);
Oracle 10g的utlxplan.sql內容:
create table PLAN_TABLE (
statement_id varchar2(30),
plan_id number,
timestamp date,
remarks varchar2(4000),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_alias varchar2(65),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
depth numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000),
projection varchar2(4000),
time numeric,
qblock_name varchar2(30),
other_xml clob
);
刪除原有10g的plan_table表
sys@TEST>drop table plan_table;
Table dropped.
建立9i下的plan_talbe表
sys@TEST>create table PLAN_TABLE (
2 statement_id varchar2(30),
3 timestamp date,
4 remarks varchar2(80),
5 operation varchar2(30),
6 options varchar2(255),
7 object_node varchar2(128),
8 object_owner varchar2(30),
9 object_name varchar2(30),
10 object_instance numeric,
11 object_type varchar2(30),
12 optimizer varchar2(255),
13 search_columns number,
14 id numeric,
15 parent_id numeric,
16 position numeric,
17 cost numeric,
18 cardinality numeric,
19 bytes numeric,
20 other_tag varchar2(255),
21 partition_start varchar2(255),
22 partition_stop varchar2(255),
23 partition_id numeric,
24 other long,
25 distribution varchar2(30),
26 cpu_cost numeric,
27 io_cost numeric,
28 temp_space numeric,
29 access_predicates varchar2(4000),
30 filter_predicates varchar2(4000));
Table created.
可以看出執行計劃的顯示沒有問題,只是在Note中會提示使用的是舊版的plan_table(綠色的部分)
sys@TEST>select * from dual;
Execution Plan
----------------------------------------------------------
---------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
---------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)|
| 1 | TABLE ACCESS FULL| DUAL | 1 | 2 | 2 (0)|
---------------------------------------------------------------
Note
-----
- 'PLAN_TABLE' is old version
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
3 consistent gets
0 physical reads
0 redo size
407 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
重新使用10g的plan_table表
sys@TEST>drop table plan_table;
Table dropped.
sys@TEST>@?/rdbms/admin/utlxplan.sql
Table created.
會發現比使用9i的plan_table多顯示了每步操作的執行時間
sys@TEST>select * from dual;
Execution Plan
----------------------------------------------------------
Plan hash value: 272002086
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| DUAL | 1 | 2 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
3 consistent gets
0 physical reads
0 redo size
407 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/498744/viewspace-264994/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【原創】不同RTOS中POSIX介面的實現差異
- Oracle中exists和in的效能差異Oracle
- ORACLE9I升級到10G(zt)Oracle
- UDP和TCP的差異UDPTCP
- python:dis包中dis()和Bytecode()函式的差異Python函式
- Linux系統中Ubuntu和Redhat的差異有哪些?LinuxUbuntuRedhat
- MySQL中myisam和innodb有什麼差異?MySql
- 線上json差異比較工具--遞迴比較兩個json的節點和值的差異,並支援差異數預覽和逐個檢視差異JSON遞迴
- Akka 和 Storm 的設計差異ORM
- Gradle中的差異化構建Gradle
- 聊聊t-io和netty的差異Netty
- Bootstrap和Tailwind CSS之間的差異?bootAICSS
- 9i和10g上rman全備的一點差別
- SAP CRM Advanced search和Simple search裡Max hit表現行為的差異
- mac和windows執行maven命令的差異MacWindowsMaven
- 談談 mysql和oracle的使用感受 -- 差異MySqlOracle
- 工作流和BPM之間的差異
- MariaDB 和 GreatSQL 效能差異背後的真相SQL
- Linux和Windows的差異?0基礎需知!LinuxWindows
- IRequiresSessionState和IReadOnlySessionState應用上的一些差異UISession
- [譯]React函式元件和類元件的差異React函式元件
- js中split,splice,slice方法之間的差異。JS
- Spark和Hadoop之間的主要技術差異和選擇SparkHadoop
- IaC 管理新思路:Walrus 和 Terraform 的差異化探索ORM
- 詳解爬蟲與RPA的工作原理和差異爬蟲
- 想不到WhaleStudio和Talend的差異竟如此之大!
- Standard ABAP Debugger 和 Classic ABAP Debugger 的實現差異
- [原創][連載]nim與python的異同1Python
- (原創) odoo各版本對檢視中節點groups屬性的處理差別Odoo
- Golang 針對 MySQL 資料庫表結構的差異 SQL 工具GolangMySql資料庫
- 使用RSEM進行轉錄組測序的差異表達分析
- rman備份異機恢復(原創)
- PostgreSQL與Oracle的sql差異SQLOracle
- 【譯】框架與庫的差異框架
- 企微SCRM和CRM系統的差異有哪些呢
- 全球化思考:怎樣克服交流中的文化差異
- 【底層】 C++和C#的編譯方式差異 / AOT和JITC++C#編譯
- [原創] Linux 中的 nohup 與 &Linux
- 瀏覽器極速模式和相容模式差異瀏覽器模式