1.部門のための基礎として、インデックス・パーティションは、Oracleのインデックス・タイプは、非パーティション索引、グローバル・パーティション索引とローカル索引パーティションに分けることができるかどうかに基づいている場合。
2.ケースI
- 非パーティション表を作成します。
表text01作成 (NUM1番号、 NUM2番号、 STR1 VARCHAR2(10)、 表領域yysms_cache STR2 VARCHAR2(20))。
- ライトデータ
Text01 INSERT INTO SELECTのdbms_random.random()NUM1、AS -ランダム整数 としてラウンド(dbms_random.value(0,1000)) NUM2、 1から1000のランダムな整数 dbms_random.string(OPT => 'A' 、LEN => 1)0009、ランダムな文字として dbms_random.string(OPT => 'P' 、STR2として)=> 10 lenの10個のランダムな文字 デュアルから 接続ROWNUM <100によって、 - 99サイクルデータ線挿入された挿入 コミットします。
-ローカル・パーティション索引の作成しようと、エラーを
Text01インデックスON(NUM1)を作成ix_text01_par ローカル(パーティションP1、 パーティションP2、 ;パーティションP3)を
--ORA-14016必須パーティションテーブルベースローカル・パーティション索引。エラーの原因は、非パーティション表の新しいインデックスのためのLOCALパラメータを使用することです
---通常のインデックスを作成します。
text01(num01)にix_text01_parインデックスを作成します。
- グローバルなパーティション索引を作成します。
INDEXをCREATE ix_test01_par ON TEST01(NUM2) GLOBAL PARTITION BY RANGE(NUM2) (パーティションP1が(10000未満の値)、 パーティションP2未満(55000)、VALUES PARTITION P3は値未満(MAXVALUE))。
結論:非パーティション表には、共通のグローバルなパーティション索引を作成することができ、インデックスパーティションがローカル索引を作成することはできません。 -------------------------------------------------- -----------------------------
-------------------------------------------------- -----------------------------
3.ケースII
-パーティションテーブルを作成します
表text02(作成 NUM1番号、 NUM2番号、 STR1のVARCHAR2(10)、 STR2のVARCHAR2(20) )の範囲によってパーティション(NUM2) ( パーティションP1の値以下(10000)、より パーティションP2の値未満(20000)、 パーティションP3の値未満(50000)、 パーティションP4値未満(70000)、 パーティションP5値未満(MAXVALUE) )。
- ローカル・パーティション索引を作成しよう
ON ix_text02_par INDEXは(NUM)を作成test_partiton_02 (パーティションP1、ローカル パーティションP2、 PARTITIONのP3、 PARTITIONのP4、 PARTITIONのP5を ); -パーティションの数は、基礎となる表のパーティションの数のインデックスに等しくなければならない
--dropインデックスix_text02_par。
ix_text02_par ON text_partiton_02(NUM1)ローカル索引の作成、 - 上記と同等の方法を作成します
インデックスix_text02_par --drop; INDEX ix_text02_par ON Text02(NUM1)を作成します。 -デフォルトの非パーティション索引は、パーティションインデックスCaifenグローバルインデックスまたはローカル索引が作成しました。
---グローバルなパーティション索引を作成します
INDEXをCREATE ix_text02_par ON text02(NUM2) GLOBAL PARTITION BY RANGE(NUM2) (パーティションP1が(10000未満の値)、 パーティションP2未満(55000)、VALUES PARTITION P3は値未満(MAXVALUE))。
- ライトデータ
Text02 INSERT INTO SELECTのdbms_random.random()NUM1、AS -ランダム整数 ラウンド(dbms_random.value(0,1000))ランダム整数NUM2としての1-1000 (OPT => 'A' dbms_random.string 、LEN => 1)0009、ランダムな文字として dbms_random.string(OPT => 'P' 、STR2として)=> 10 lenの10個のランダムな文字 デュアルから 接続ROWNUM <100によって、 - 99サイクルデータ線挿入された挿入 コミットします。
表4.分析
テーブルtext02の計算統計を分析。
---結論変化とグローバルなパーティション索引をゾーニング一般的な指標は、ローカルでのみパーティション索引Haoshiを失敗します
次の文でインデックス定義文の最高の眺め
DBMS_METADATA.GET_DDL(OBJECT_TYPE => 'INDEX'を選択する 名=> 'IX_TEXT02_PAR') DUAL FROM。