日本語PDF

1 大規模データベースの概要

大規模データベース(VLDB)には、複数の計画が必要となる、管理上の課題があります。パーティション化は、VLDB計画の重要部分です。

現代では、数百GB以上、多くの場合、数TB以上のデータを含む重要なデータベースを運用している企業は珍しくありません。これらの企業は、大規模データベース(VLDB)のサポートやメンテナンスという課題を抱えており、これらの課題に対応するための方法を考える必要があります。

この章の構成は、次のとおりです。

ノート:

パーティション化機能を使用できるのは、Oracle Partitioningオプションを購入した場合のみです。

1.1 パーティション化の概要

パーティション化は、大規模な表および索引について、それらをより小さく管理しやすい単位に分割することでサポートを提供します。

パーティション化を行うと、アプリケーションに対して完全に透過的なパーティションと呼ばれるより小規模で管理しやすい単位に分解することにより、大規模な表や索引のサポートにおける主な問題に対応できます。パーティション表にアクセスするために、SQL問合せやデータ操作言語(DML)文を変更する必要はありません。ただし、パーティションの定義後にデータ定義言語(DDL)文がアクセスおよび操作できるのは、表や索引全体ではなく、個々のパーティションです。これが、パーティション化により、大規模データベース・オブジェクトの管理が簡略化される仕組みです。

表または索引の各パーティションでは、列名、データ型および制約などの論理属性は同一である必要がありますが、圧縮の有効化や無効化、物理記憶域設定および表領域などの物理属性は異なってもかまいません。

パーティション化は、様々なタイプのアプリケーション、特に大量のデータを管理するアプリケーションに便利です。OLTPシステムでは管理性や可用性が向上し、データ・ウェアハウス・システムではパフォーマンスや管理性が向上します。

次にパーティション化の利点を示します。

  • 表全体ではなくパーティション・レベルでのデータのロード、索引の作成や再作成、バックアップやリカバリなどのデータ管理操作が可能です。これにより、これらの操作にかかる時間が大幅に削減されます。

  • 問合せパフォーマンスが向上します。多くの場合、表全体ではなくパーティションのサブセットにアクセスすることで、問合せの結果を取得できます。一部の問合せでは、この技術(パーティション・プルーニング)により、パフォーマンスが大幅に向上します。

  • メンテナンス操作のスケジュールされた停止時間の影響を大幅に軽減できます。

    パーティション・メンテナンス操作におけるパーティションの独立性により、同じ表または索引の異なるパーティションでメンテナンス操作を同時に実行できます。メンテナンス操作に影響されないパーティションに対しても、SELECT操作やDML操作を同時に実行できます。

  • メンテナンス期間、リカバリ時間および障害の影響を低減するために、重要な表や索引がパーティションに分割されていると、重要なデータベースの可用性が向上します。

  • パラレル実行を行うと、リソース使用率が最適化され、実行時間が最短化されるという特定の利点があります。パラレル実行は、問合せおよびDMLやDDLに対してサポートされています。

パーティション化により、Oracle Database内でのデータ・アクセスが高速になります。データベースのデータが10GBか10TBかに関係なく、パーティション化によりデータ・アクセスを大幅に改善できます。パーティション化は、アプリケーションに変更を加えずに実装できます。たとえば、表にアクセスするSELECT文やDML文を変更せずに、パーティション化されていない表をパーティション表に変換できます。パーティション化を使用するために、アプリケーション・コードをリライトする必要はありません。

1.2 VLDBおよびパーティション化

パーティション化は、大規模データベース(VLDB)の管理のための重要な計画です。

大規模データベースには、最小絶対サイズはありません。VLDBはより小規模なデータベースと同じようなデータベースですが、その管理には固有の問題があります。それらの問題は、全体のサイズおよびそのサイズのシステムに対する操作実行のコスト・パフォーマンスに関連しています。

データベース・サイズの恒常的な増大に関連している傾向をいくつか示します。

  • 長い間、システムは個別に開発されてきました。企業は、それらのシステムを結合することで、システムの維持費を削減できるだけでなく、複数の部門にまたがる分析も可能になる利点に注目しはじめました。データベースとアプリケーションの統合は、データベース・サイズが増大し続ける主要な要因の1つになっています。

  • 多くの企業は、最小限の間データを保存するための規則に対応しています。一般的に、規則が、より多くのデータをより長い期間保存する原因になっています。

  • 企業が販売や運用の拡張により成長することや、合併や吸収により成長することが、生成および処理されるデータ量の増大の原因になっています。同時に、日常業務でデータベースに依存するユーザー人口も増加します。

パーティション化は、大規模データベースを管理するためのクリティカルな機能です。データ量の増大は、大規模データベースでパーティション化が対応する基本的な問題です。また、パーティション化を行うことにより、特に表や索引の増大に伴い分断攻略法を使用して、データベースの表や索引を管理できます。パーティション化は、一貫したパフォーマンスを維持しながら、管理リソースまたはハードウェア・リソースを増やしすぎずに、データベースを大規模データ・セットに拡張できる機能です。

関連項目:

1.3 情報ライフサイクル管理の基礎としてのパーティション化

パーティション化は、情報ライフサイクル管理(ILM)のサポートを提供します。

情報ライフサイクル管理(ILM)は、使用できる期間中、データを管理するための一連のプロセスおよびポリシーです。ILM計画の重要な要素の1つは、アクセス頻度の低い古いデータはよりコストがかからず効率の低いストレージ層に保存し、日常業務で使用されるより新しいデータは最も高速で、可用性の高いストレージ層に保存するなど、データの存続期間中のいつにおいてもデータを保存するために最適で費用効率が高い中間点を決定することです。古いデータは更新される頻度も低いため、そのような場合には、圧縮して読取り専用としてデータを保存することをお薦めします。

Oracle Databaseは、ILMソリューションの実装に理想的な環境を提供します。複数のストレージ層がサポートされており、すべてのデータがOracle Database内に存在するため、複数のストレージ層はアプリケーションに対して透過的で、データも安全に保たれます。パーティション化により、表内のデータを別々のパーティションに保存することを可能にする基礎となるテクノロジが提供されます。

エンタープライズ・レベルのシステムでは複数のストレージ層や複雑なILMポリシーが採用されている場合が多いですが、大部分の企業およびデータベースで、ある程度の情報ライフサイクル管理が必要です。最も基本的なILM操作である古いデータのアーカイブや、それらのデータのデータベースからの削除またはパージは、パーティション化を使用している場合には大幅に高速になります。

関連項目:

ILMの詳細は、「時間ベース情報の管理およびメンテナンス」を参照してください

1.4 すべてのデータベースのパーティション化

パーティション化は、大規模および小規模のデータベースに役立ちます。

パーティション化のメリットは、大規模データベースだけのものではありません。小規模データベースも含めすべてのデータベースがパーティション化の恩恵を受けます。サイズがMB単位のデータベースでさえ、数TBに及ぶ最大級サイズのシステムと同様に、パーティション化によってパフォーマンスと管理性が向上します。

関連項目: