![]() 前へ |
![]() 次へ |
パーティションを使用すると、非常に大きい表や索引を、管理しやすい小さい部分に分割して効率的に管理できます。パーティションでは、操作がデータのサブセットに対して行われるため、問合せやロードのパフォーマンスが向上します。パーティションを使用すると、データ・アクセスが改善され、全体的なアプリケーション・パフォーマンスが向上します。何百万もの行があり、データ・サイズがGB単位の表や索引にアクセスするアプリケーションに対しては特に有効です。
Warehouse Builderでは、表、索引、マテリアライズド・ビューおよびMOLAPキューブに対してパーティションを定義できます。簡潔に表現するために、以降の各項では、パーティションの定義が可能なすべてのオブジェクトを表という語で表します。この後の項では、MOLAPキューブを除く前述のすべてのオブジェクトに対するパーティション化について説明します。MOLAPキューブについては別に説明します。
これらのオブジェクトに対するパーティションを定義するには、オブジェクト・エディタの「パーティション」タブを使用します。作成するパーティションのタイプに応じて、「構成」タブでパーティションの表領域の構成が必要となる場合もあります。
レンジ・パーティション化: 列内の値の範囲に基づいてパーティションを作成するには、レンジ・パーティション化を使用します。日付列をパーティション・キーとしてレンジ・パーティション化を使用すると、パーティション交換ロードを使用したパフォーマンスの向上で説明するように、ターゲット表を即時に更新するマッピングを設計できます。
ハッシュ・パーティション化: Oracleデータベースによって、推奨する偶数個のパーティション間でデータを均等に分割するには、ハッシュ・パーティション化を使用します。このタイプのパーティション化は、データに履歴がなく、明確な列または列リストが存在しない場合に有効です。
HASH BY QUANTITYパーティション化: ハッシュ・パーティション化をすばやく定義するには、HASH BY QUANTITYパーティション化を使用します。このパーティション化はハッシュ・パーティション化と類似していますが、パーティション・キーとパーティション数を指定するのみです。パーティションは自動的に作成され、名前が設定されます。その後は、同じ表領域リストを共有するようにパーティションを構成できます。
リスト・パーティション化: 選択したパーティション・キーに基づいて複数の行をパーティションに明示的に割り当てるには、リスト・パーティション化を使用します。このパーティション化では、表では使用できないデータを構造で編成できます。
コンポジット・パーティション化: Warehouse Builderを使用すると、RANGE-HASH、RANGE-HASH BY QUANTITYまたはRANGE-LISTパーティション化のいずれかのコンポジットを指定できます。Oracleデータベースでは、最初にレンジ・パーティション化が実行され、次にユーザーが選択した2番目のパーティション化を使用してデータがさらに分割されます。たとえば、RANGE-LISTパーティション化では、販売取引日に基づいてパーティション化し、次に取引が発生した州のリストに基づいてデータをさらに分割できます。
索引パーティション化: 基礎となる表のパーティション化メソッドを継承する索引を定義できます。または、独自のパーティション化方針を使用して索引をパーティション化できます。
作成するパーティション・タイプに応じて、「パーティション」タブは動的に変更され、関連情報のみが表示されます。特定のパーティション・タイプに対して不要なこのタブの列または行は非表示になります。
たとえば、レンジ・パーティションまたはリスト・パーティションを作成する場合は、サブパーティションを作成できないため、「サブパーティション・キー」および「サブパーティション・テンプレート」行は非表示になります。レンジ・ハッシュ・パーティションを作成する場合は、「サブパーティション・テンプレート」行には、「ハッシュ・サブパーティション数量」に対するエントリが、条件「=」とともに含まれます。
サブパーティションの上限を定義する条件は、使用するパーティション化メソッドのタイプに応じて異なります。たとえば、レンジ・リスト・パーティションの場合、パーティションの上限を決定する際に考慮される条件は値の一致に基づく必要があります。したがって、条件を含む列(「パーティション」列と「値」列の間の列)には「=」が含まれ、無効化されています。ただし、サブパーティションの上限を決定する条件は「<」として表示され、このフィールドは編集できません。