Oracle は、大企業や組織で非常に役立つリレーショナル データベース管理システムです。パーティショニングは、パフォーマンスを向上させ、データとストレージ ソリューションを管理する方法です。 Oracle では、テーブルを独立して管理できる小さなセグメントに分割できます。この記事では、Oracle パーティションの動作原理、タイプ、作成と管理について説明します。
1. パーティションの動作原理
Oracle のパーティショニングでは、テーブルをストレージ用に複数の領域に分割し、各領域を独立して管理できます。各パーティションは、他のパーティションと一緒にテーブルに含めることができます。パーティション テーブルは、物理的および論理的には通常のテーブルと同じように見えます。ただし、パーティション テーブルではデータが複数の物理的な場所に保存されるため、クエリと更新のパフォーマンスが向上します。
Oracle はクエリをさまざまな領域に分散して同時処理を実現できるため、テーブルをパーティション化するとクエリのパフォーマンスが向上します。さらに、テーブルに非常に大量のデータが含まれている場合は、パーティショニングによってディスク I/O トラフィックを削減できます。クエリでは関連するパーティションをスキャンするだけで済み、テーブル全体をスキャンする必要がないため、クエリ速度が大幅に向上します。
2. パーティション タイプ
Oracle には多くのパーティション タイプがあります。 Oracle がサポートする主なパーティション タイプは次のとおりです。
レンジ パーティション化は、値の列に基づいてテーブルをパーティション化します。範囲は数値列または日付列に基づいて実行できます。たとえば、販売日に基づいて表を月または四半期に分割できます。レンジ パーティショニングの利点は、複数のパーティションにまたがるクエリとデータ操作を処理できることです。
列パーティション化は、テーブル内の列に基づいてパーティションを分割します。同じ列値を持つ行は同じパーティションに配置されます。列パーティショニングはレンジ パーティショニングよりも柔軟です。通常、列パーティション化を使用して、数値や日付範囲で簡単に解析できないテーブルをパーティション化します。
ハッシュ パーティショニングは、ハッシュ値に基づいてテーブルの行をパーティションに分散します。ハッシュ値はハッシュ関数を使用して生成されます。このパーティション タイプの利点は、データを分散させてパーティション間で均等に分散できることです。このタイプのパーティショニングは、データ アクセス パターンの予測が難しい状況で役立ちます。
列範囲パーティション化は、2 つ以上の列値に基づいて数値範囲でパーティション化されます。このパーティション タイプは範囲パーティション化に非常に似ています。このタイプのパーティショニングは、より高い柔軟性と範囲操作が必要な場合に役立ちます。
3. パーティション テーブルの作成方法
データを保存するには、パーティション テーブルを作成する必要があります。パーティション テーブルを作成する手順は次のとおりです。
パーティション テーブルを作成する前に、テーブル スペースを保存するテーブルスペースを選択する必要があります。パーティション化されたテーブル。テーブルスペースは物理ストレージの基本単位です。
CREATE TABLE コマンドを使用して、パーティション テーブルを作成します。テーブルを作成するときは、データ型、サイズ、列タイプ、パーティション タイプ、およびパーティション キー フィールドを指定する必要があります。
パーティション キーは、パーティション テーブル内の 1 つまたは複数の列で構成されます。パーティション キーはテーブルに対して一意である必要があります。つまり、パーティション キーはテーブル内で繰り返し出現できません。範囲、列、ハッシュ、または列範囲を使用してパーティション キーを定義できます。
パーティション テーブルを作成する場合は、パーティションを定義する必要があります。パーティションの定義は、パーティション キーとパーティション タイプに基づいています。複数のパーティション定義を指定でき、それぞれが異なる範囲またはタイプにすることができます。
たとえば、次のコマンドは、部門、地域、販売日に基づいてパーティション テーブルを作成します:
CREATE TABLE sales_data (department_id NUMBER, region_id NUMBER, sales_date DATE, sales_amt NUMBER) PARTITION BY RANGE (sales_date) (PARTITION saleseast VALUES LESS THAN (TO_DATE('01-01-2016', 'DD-MM-YYYY')), PARTITION saleswest VALUES LESS THAN (TO_DATE('01-07-2016', 'DD-MM-YYYY')), PARTITION salescentral VALUES LESS THAN (TO_DATE('01-01-2017', 'DD-MM-YYYY')), PARTITION salesnorth VALUES LESS THAN (MAXVALUE));
4. パーティション テーブルの管理方法
パーティション テーブルの管理パーティションに含まれるテーブル テーブル内のデータを挿入、削除、更新、およびクエリします。パーティション テーブルを管理するためのガイドラインをいくつか示します。
データを挿入するときは、パーティション キー列の値を挿入する必要があります。これは、Oracle がデータを挿入したパーティションを示します。
データをクエリするときは、クエリを高速化するために、パーティションが配置されているパーティションをクエリするだけで済みます。したがって、クエリでパーティション制限を指定することをお勧めします。
データを更新するときは、テーブル全体を更新することなく、パーティション内のデータのみを更新する必要があります。したがって、データを更新するときはパーティション制限を使用することをお勧めします。
データを削除する場合は、テーブル全体を削除せずに、パーティション内のデータを削除するだけで済みます。データをより速く削除するには、パーティション制限ステートメントを使用します。
概要
Oracle パーティショニングは、クエリのパフォーマンスを向上させ、データとストレージ ソリューションを管理する方法です。使用可能なパーティショニング タイプには、レンジ パーティショニング、列パーティショニング、ハッシュ パーティショニング、および列範囲パーティショニングが含まれます。パーティションテーブルを作成するには、テーブルスペースを選択し、テーブルを作成し、パーティションキーとパーティション定義を指定します。パーティション分割されたテーブルを効率的に管理するには、パーティション制限を使用してデータを挿入、削除、更新、クエリする必要があります。
以上がOracleをパーティション分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。