オラクル12cの新機能 - オンラインPartitioning.txt

- //オラクル12cは、パーティションテーブルの新機能の確立を支援することは、オンラインで通常のテーブルのパーティションテーブルを変更しています。 

1.環境: 
VER1 @> @ test01p SCOTT 
PORT_STRING VERSION BANNER CON_ID 
-------------------- ---------- ------ -------------------------------------------------- ------ -------------------- 
IBMPC / 12cはWIN_NT64-9.1.0は、Oracle Database Enterprise Editionのリリース12.2.0.1.0を12.2.0.1.0 - 64ビットの生産0 

SCOTT @ test01p>表TX AS SELECT ROWNUMのIDを作成し、レベル別のデュアル接続から'テスト'の名前<= 2E4; 
表作成した。 

SCOTT @ test01p> TX(ID)に一意索引のi_t_idを作成します; 
。インデックス作成した 

SCOTTを@ test01p> i_t_name指数(名)ON TXを作成し、 
インデックスが作成されます。 

test01p @ SCOTT> TX(ID、名前)のインデックスi_t_id_nameを作成します。 
インデックスが作成されました。 

- //分析略 

2测试: 
- //セッション1、插入不提交。 
SCOTT test01p @> TX値(2E4 + 1、 'AAAA')に挿入。 
1行が作成されました。 

- //セッション2、执行如下: 
表は、TX(ID)の範囲によってパーティションを変更する変更 
(パーティションP1は、(10000)未満の値 
パーティションP2は、(20000)未満の値 
ONLINE PARTITION PXは(MAXVALUE)未満の値)。 
- //挂起!! 

- //セッション1: 
SCOTT test01p> @ SPID @ 

       SID SERIAL#Process ServerのSPID PID P_SERIAL#C50 
---------- ---------- ------------------------ ------ --- -------------------- ------- ---------- ---------- ---------------------------------------- 
       251 41873 7720:4852 DEDICATED 6316 27 4 ALTERシステムは、セッションの251,41873「即時を殺します。 

viewlock @ test01p> @ SCOTT 
   SID SERIAL#のUSERNAME OSUSER MACHINE MODULE LOCK_TYPE MODE_HELD MODE_REQUE LOCK_ID1 LOCK_ID2 OWNER OBJECT_TYP OBJECT_NAME BLOCK LOCKWAIT 
- ------ ---------- ---------- --------- ---------- ------------ --------------- ---- ------ ---------- ---------- ---------- ------ -------- - -------------------- ----- -------------------- 
    24 45764 SCOTT ZWS \ Admini WORKGROUP \ SQL * PlusのTM DML(TM)行-X(SX)なし27765 0 SCOTT TABLE TXん000007FF091426B8 
    24 45764 SCOTT ZWS \ Admini WORKGROUP \ SQL * PlusのTM DML(TM)専用なし27775 0 SCOTT TABLE SYS_RMTAB $$ _ H27765ん000007FF091426B8 
    24 45764 SCOTT ZWS \ Admini WORKGROUP \ SQL * PlusのTXトランザクションなしシェア589839 1387ノー000007FF091426B8 
    24 45764 SCOTT ZWS \ Admini WORKGROUP \ SQL * PlusのTM DML(TM)専用なし27773 0 SCOTT TABLE SYS_JOURNAL_27765ノー000007FF091426B8 
    24 45764 SCOTT ZWS \ Admini WORKGROUP \ SQL * PlusのTXトランザクション独占なし262173 1470ノー000007FF091426B8 
   251 41873 SCOTT ZWS \ Admini WORKGROUP \ SQL * PlusのTXトランザクション独占なし589839 1387はい 
   251 41873 SCOTT ZWS \ Admini WORKGROUP \ SQL * PlusのTM DML (TM)行-X(SX)なし27765 0 SCOTT表TXなし 
選択7行。        
。 - //因为セッション有事务没有提交 

SCOTT @ test01p>コミット。 
完全にコミットします。 

- //セッション2、很快建立完成。 

SCOTT TABLE_NAME = 'TX' USER_TAB_PARTITIONS FROM test01p> SELECT PARTITION_NAME @; 
PARTITION_NAME 
-------------------- 
P1 
P2 
PX 

SCOTT @ test01p> TXから*を選択してここでID = 1。 
        IDのNAME 
---------- -------------------- 
         1テスト 

DPC '' '' @ test01p> @ SCOTT 
PLAN_TABLE_OUTPUT 
----- -------------------------------- 
SQL_ID 6sj645u5hrrbv、児童数0 
------------ ------------------------- 
不明なエラーがprepare_sql_statementで起こった:ORA-01403:データが見つかりませんでした 

プランハッシュ値を:419152296 


鄭州の同済病院ます。http://jbk.39.net/yiyuanzaixian/zztjyy/

------------------------------------------------------------------------------------------------------- 
| Id  | Operation              | Name        | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | Pstart| Pstop | 
------------------------------------------------------------------------------------------------------- 
|   0 | SELECT STATEMENT       |             |        |       |     2 (100)|          |       |       | 
|   1 |  PARTITION RANGE SINGLE|             |      1 |    10 |     2   (0)| 00:00:01 |     1 |     1 | 
|*  2 |   INDEX RANGE SCAN     | I_T_ID_NAME |      1 |    10 |     2   (0)| 00:00:01 |     1 |     1 | 
------------------------------------------------------------------------------------------------------- 
Query Block Name / Object Alias (identified by operation id): 
------------------------------------------------------------- 
   1 - SEL$1 
   2 - SEL$1 / TX@SEL$1 
Predicate Information (identified by operation id): 
--------------------------------------------------- 
   2 - access("ID"=1) 
Note 
----- 
   - Warning: basic plan statistics not available. These are only collected when: 
       * hint 'gather_plan_statistics' is used for the statement or 
       * parameter 'statistics_level' is set to 'ALL', at session or system level 

--//可以发现索引重新建立,变成了local分区索引。 
--//你可以发现i_t_id_name也是local分区索引。i_t_name是global索引,大家可以自行验证结果不再贴出。 
--//也就是如果建立分区表,其原来索引包含分区的键值并且在前面,建立的索引是前缀分区索引。而原来索引没有包含分区的键值, 
--//建立的就是global索引。 
--//我的理解这个相当于以前的在线重定义,只不过oracle封装为1个命令实现了整个过程罢了。

おすすめ

転載: blog.51cto.com/14478010/2427424