ホームページ  >  記事  >  データベース  >  Oracleをパーティション分割する方法

Oracleをパーティション分割する方法

王林
王林オリジナル
2023-05-17 21:37:364369ブラウズ

Oracle は、大企業や組織で非常に役立つリレーショナル データベース管理システムです。パーティショニングは、パフォーマンスを向上させ、データとストレージ ソリューションを管理する方法です。 Oracle では、テーブルを独立して管理できる小さなセグメントに分割できます。この記事では、Oracle パーティションの動作原理、タイプ、作成と管理について説明します。

1. パーティションの動作原理

Oracle のパーティショニングでは、テーブルをストレージ用に複数の領域に分割し、各領域を独立して管理できます。各パーティションは、他のパーティションと一緒にテーブルに含めることができます。パーティション テーブルは、物理的および論理的には通常のテーブルと同じように見えます。ただし、パーティション テーブルではデータが複数の物理的な場所に保存されるため、クエリと更新のパフォーマンスが向上します。

Oracle はクエリをさまざまな領域に分散して同時処理を実現できるため、テーブルをパーティション化するとクエリのパフォーマンスが向上します。さらに、テーブルに非常に大量のデータが含まれている場合は、パーティショニングによってディスク I/O トラフィックを削減できます。クエリでは関連するパーティションをスキャンするだけで済み、テーブル全体をスキャンする必要がないため、クエリ速度が大幅に向上します。

2. パーティション タイプ

Oracle には多くのパーティション タイプがあります。 Oracle がサポートする主なパーティション タイプは次のとおりです。

  1. レンジ パーティション化

レンジ パーティション化は、値の列に基づいてテーブルをパーティション化します。範囲は数値列または日付列に基づいて実行できます。たとえば、販売日に基づいて表を月または四半期に分割できます。レンジ パーティショニングの利点は、複数のパーティションにまたがるクエリとデータ操作を処理できることです。

  1. 列パーティション化

列パーティション化は、テーブル内の列に基づいてパーティションを分割します。同じ列値を持つ行は同じパーティションに配置されます。列パーティショニングはレンジ パーティショニングよりも柔軟です。通常、列パーティション化を使用して、数値や日付範囲で簡単に解析できないテーブルをパーティション化します。

  1. ハッシュ パーティショニング

ハッシュ パーティショニングは、ハッシュ値に基づいてテーブルの行をパーティションに分散します。ハッシュ値はハッシュ関数を使用して生成されます。このパーティション タイプの利点は、データを分散させてパーティション間で均等に分散できることです。このタイプのパーティショニングは、データ アクセス パターンの予測が難しい状況で役立ちます。

  1. 列範囲パーティション化

列範囲パーティション化は、2 つ以上の列値に基づいて数値範囲でパーティション化されます。このパーティション タイプは範囲パーティション化に非常に似ています。このタイプのパーティショニングは、より高い柔軟性と範囲操作が必要な場合に役立ちます。

3. パーティション テーブルの作成方法

データを保存するには、パーティション テーブルを作成する必要があります。パーティション テーブルを作成する手順は次のとおりです。

  1. テーブル スペースの選択

パーティション テーブルを作成する前に、テーブル スペースを保存するテーブルスペースを選択する必要があります。パーティション化されたテーブル。テーブルスペースは物理ストレージの基本単位です。

  1. テーブルの作成

CREATE TABLE コマンドを使用して、パーティション テーブルを作成します。テーブルを作成するときは、データ型、サイズ、列タイプ、パーティション タイプ、およびパーティション キー フィールドを指定する必要があります。

  1. パーティション キーの指定

パーティション キーは、パーティション テーブル内の 1 つまたは複数の列で構成されます。パーティション キーはテーブルに対して一意である必要があります。つまり、パーティション キーはテーブル内で繰り返し出現できません。範囲、列、ハッシュ、または列範囲を使用してパーティション キーを定義できます。

  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. パーティション テーブルの管理方法

パーティション テーブルの管理パーティションに含まれるテーブル テーブル内のデータを挿入、削除、更新、およびクエリします。パーティション テーブルを管理するためのガイドラインをいくつか示します。

  1. データの挿入

データを挿入するときは、パーティション キー列の値を挿入する必要があります。これは、Oracle がデータを挿入したパーティションを示します。

  1. データのクエリ

データをクエリするときは、クエリを高速化するために、パーティションが配置されているパーティションをクエリするだけで済みます。したがって、クエリでパーティション制限を指定することをお勧めします。

  1. データの更新

データを更新するときは、テーブル全体を更新することなく、パーティション内のデータのみを更新する必要があります。したがって、データを更新するときはパーティション制限を使用することをお勧めします。

  1. データの削除

データを削除する場合は、テーブル全体を削除せずに、パーティション内のデータを削除するだけで済みます。データをより速く削除するには、パーティション制限ステートメントを使用します。

概要

Oracle パーティショニングは、クエリのパフォーマンスを向上させ、データとストレージ ソリューションを管理する方法です。使用可能なパーティショニング タイプには、レンジ パーティショニング、列パーティショニング、ハッシュ パーティショニング、および列範囲パーティショニングが含まれます。パーティションテーブルを作成するには、テーブルスペースを選択し、テーブルを作成し、パーティションキーとパーティション定義を指定します。パーティション分割されたテーブルを効率的に管理するには、パーティション制限を使用してデータを挿入、削除、更新、クエリする必要があります。

以上がOracleをパーティション分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。