Oracle では、テーブル パーティショニングとは、テーブル内のデータが増加し続ける場合に、テーブル内のデータを複数のテーブル スペースに物理的に格納すること、つまりテーブルをパーティション化することを指します。テーブル パーティショニングは、テーブル、インデックス、またはインデックスで行うことができます。これらのデータベース オブジェクトのセグメントはパーティションと呼ばれ、管理性、パフォーマンス、および可用性が向上します。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
パーティション テーブル: テーブル内のデータ量が増加し続けると、データのクエリの速度が低下し、アプリケーションのパフォーマンスが低下します。現時点では、テーブルのパーティション化を検討する必要があります。
テーブルがパーティション化された後も、論理テーブルは依然として完全なテーブルですが、テーブル内のデータは物理的に複数のテーブル スペース (物理ファイル) に格納されているため、データのクエリ時にスキャンは行われません。毎回テーブル全体。
テーブル パーティショニングの具体的な役割
Oracle のテーブル パーティショニング機能は、管理性、パフォーマンス、可用性を向上させることで、さまざまなアプリケーションに大きなメリットをもたらします。一般に、パーティショニングにより、特定のクエリやメンテナンス操作のパフォーマンスが大幅に向上します。さらに、パーティショニングは一般的な管理タスクを大幅に簡素化することができ、ギガバイト データ システムや超高可用性システムを構築する際の重要なツールとなります。
パーティショニング機能を使用すると、表、索引、または索引構成表をさらにセグメントに分割できます。これらのデータベース・オブジェクトのセグメントはパーティションと呼ばれます。各パーティションには独自の名前があり、独自のストレージ特性を選択できます。データベース管理者の観点から見ると、パーティション化されたオブジェクトには複数のセグメントがあり、これらのセグメントは一括または個別に管理できるため、データベース管理者はパーティション化されたオブジェクトを管理する際にかなりの柔軟性が得られます。ただし、アプリケーションの観点から見ると、パーティション テーブルは非パーティション テーブルと同一であり、SQL DML コマンドを使用してパーティション テーブルにアクセスする場合は変更する必要はありません。
パーティション テーブルを使用する場合の公式アドバイスは次のとおりです:
a. テーブルのサイズが 2GB を超えています。
b. テーブルには履歴データが含まれており、新しいデータは新しいパーティションに追加されます。
テーブル パーティショニングの長所と短所
利点:
a. クエリ パフォーマンスの向上:はい パーティション オブジェクトをクエリするときは、取得速度を向上させるために、関心のあるパーティションのみを検索できます。
b. 可用性の強化: テーブルのパーティションに障害が発生しても、テーブルの他のパーティションのデータは引き続き使用できます。
c. メンテナンスが簡単: テーブルのパーティションに障害が発生し、データを修復する必要がある場合、そのパーティションのみを修復できます。
d. バランスのとれた I/O: さまざまなパーティションをディスクにマッピングして、I/O のバランスをとり、システム全体のパフォーマンスを向上させることができます。
欠点:
パーティション テーブルに関連して、既存のテーブルをパーティション テーブルに直接変換する方法はありません。ただし、Oracle ではオンラインでテーブルを再定義する機能が提供されています。
テーブル パーティションのいくつかの種類と操作方法
1 レンジ パーティション (範囲) maxvalue
レンジ パーティションは、範囲に基づいてデータを各場所にマッピングします。パーティション。この範囲は、パーティションの作成時に指定したパーティション キーによって決まります。このパーティション分割方法は最も一般的に使用され、パーティション キーには日付が使用されることがよくあります。たとえば、売上データを月ごとに分割することができます。
範囲パーティション化を使用する場合は、次のルールを考慮してください:
a. 各パーティションには、パーティションに含まれない値を指定する VALUES LESS THEN 句が必要です。 。この上限以上のパーティション キー値を持つレコードは、次に高いパーティションに追加されます。
b. 最初のパーティションを除くすべてのパーティションには、暗黙の下限値が設定されます。この値は、このパーティションの前のパーティションの上限値です。
c. 一部のレコードの範囲をまだ予測できない場合は、maxvalue パーティションを作成できます。指定された範囲内にないすべてのレコードは、maxvalue が配置されているパーティションに保存されます。
例 1: 200,000 行のデータを含むテスト テーブルがあるとします。このテーブルを ID でパーティション分割します。各パーティションには 100,000 行が保存されます。各パーティションを個別のテーブル スペースに保存します。複数の物理ディスクにまたがることができます。以下は、テーブルとパーティションを作成するコードです。
----最初に複数のテスト テーブル スペースを作成します
sys@ORCL>create tablespace test_ts01 datafile '/home/oracle/test_01.dbf' size 32m extent management local autoallocate; Tablespace created. sys@ORCL>create tablespace test_ts02 datafile '/home/oracle/test_02.dbf' size 32m extent management local autoallocate; Tablespace created. sys@ORCL>create tablespace test_ts03 datafile '/home/oracle/test_03.dbf' size 32m extent management local autoallocate; Tablespace created.
----テスト パーティション テーブルを作成します
create table test ( id number not null, first_name varchar2(30) not null, last_name varchar2(30) not null, phone varchar2(30) not null, email varchar2(80), status char(1), constraint test_id primary key (id) ) partition by range (id) ( partition test_part1 values less than (100000) tablespace test_ts01, partition test_part2 values less than (200000) tablespace test_ts02, partition test_part3 values less than (maxvalue) tablespace test_ts03 );
推奨チュートリアル: 「Oracle ビデオ チュートリアル 」
以上がOracle テーブルのパーティショニングとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。