Oracle では、パーティション テーブルは、大きなテーブルを複数の小さな管理可能なパーティション テーブルに分解します。各パーティション テーブルは互いに独立しており、一緒になって完全なテーブルを構成します。論理的に言えば、A テーブルまたはテーブルは 1 つだけ存在します。インデックスですが、物理的にこのテーブルまたはインデックスは複数の物理パーティションで構成されている場合があり、パーティション化されたテーブルはレンジ パーティション、リスト パーティション、ハッシュ パーティション、および結合パーティションに分割できます。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
(1) パーティションとは
Oracle データベースでは、大規模なデータの処理を向上させるために、テーブル/大きなインデックス 管理性、保守性、パフォーマンスを向上させるために、Oracle は、大きなテーブル/大きなインデックスを複数の小さな管理可能なパーティションに分解できるパーティション テーブル メカニズムを導入しました。複数のパーティションは比較的独立しており、独立したストレージ構造を持ち、これらが一緒になって完全なテーブル/インデックスを構成します。パーティショニングはアプリケーションに対して透過的です。つまり、データベースにアクセスするアプリケーションにとって、論理的にはテーブルまたはインデックスが 1 つだけ存在します (アプリケーションがまだ 1 つのテーブルまたはインデックスだけを認識しているのと同じです)。ただし、物理的には、このテーブルまたはインデックスは複数の構成されたインデックスで構成されている場合があります。物理パーティションの数。
(2) パーティション化はどのような場合に必要ですか?
Oracle の公式 Web サイトでは、次の状況でパーティション化されたテーブルを使用することを推奨しています。テーブル データが 2GB を超える場合は、パーティショニングの使用を検討してください。
2. 最新のパーティションに履歴データを保存するために使用されるテーブルに新しいデータが追加されます。
(3) サブテーブルとパーティションテーブルの違い大きなテーブル/インデックスのデータを分散するために、サブテーブルを作成するという方法もあります。サブテーブルは、特定のルールに従って、独立した記憶領域を持つ複数のエンティティ テーブルに分解されます。たとえば、customer テーブルを 2 つのテーブルに分割し、1 つは個人顧客の customer_person を格納し、もう 1 つは法人顧客の customer_company を格納します。サブテーブルは完全に独立しており、論理的には複数の異なるテーブルですが、パーティション テーブルは物理的に 1 つのテーブルです。パーティション化されたテーブルはアプリケーションに対して透過的であり、管理と保守が簡単ですが、サブテーブルは管理と保守が簡単ではありません。
(4) パーティションテーブルの種類
パーティション テーブルが複数のレベルにパーティション化されている場合、それは結合パーティション化と呼ばれます。
レンジ パーティション テーブル(1) パーティション キー
パーティショニングとは、非常に大きなテーブルまたはインデックスを、複数の小さな管理可能な部分に分割することです。パーティションテーブルはパーティションキーによって分割されます。パーティション キーは、パーティション テーブル内のデータの各行がどのパーティションに流れるかを決定します。パーティション テーブル内のデータの各行は、パーティション キーに基づいて暗黙的にパーティションに割り当てられます。
(2) レンジ パーティショニング
レンジ パーティショニングは、パーティション キーおよびパーティション キーに含まれるデータ行のさまざまな範囲値に従ってパーティションに分割されます。
(3) ケース 1 (パーティション キーは単一列です)
CREATE TABLE time_range_sales ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE , channel_id CHAR(1) , promo_id NUMBER(6) , quantity_sold NUMBER(3) , amount_sold NUMBER(10,2) ) PARTITION BY RANGE (time_id) (PARTITION SALES_1998 VALUES LESS THAN (TO_DATE('01-JAN-1999','DD-MON-YYYY')), PARTITION SALES_1999 VALUES LESS THAN (TO_DATE('01-JAN-2000','DD-MON-YYYY')), PARTITION SALES_2000 VALUES LESS THAN (TO_DATE('01-JAN-2001','DD-MON-YYYY')), PARTITION SALES_2001 VALUES LESS THAN (MAXVALUE) );
推奨チュートリアル: 「
Oracle ビデオ チュートリアル以上がOracleのパーティションテーブルとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。