4.2 物理設計とアプリケーションの種類(OLTPとDSS)
物理設計を行うにあたり、アプリケーションの種類を認識しておき、アプリケーションの種類にあった設計を行う必要があります。
意識すべきアプリケーションの種別として、OLTP系とDSS系の2種類を挙げることができます。
現在設計しているデータベースのアプリケーションが、OLTP系(OnLine Transaction Processing)のトランザクション中心処理が主体なのか、DSS系(Decision Support System)のバッチジョブ中心処理が主体なのかを分析することは非常に重要です。
その違いによって、設計で重点を置くべきポイントが異なるからです。
OLTP系のアプリケーションのキーワードは共有です。
SQL文は、同じアプリケーションから繰り返し使用される可能性が高く、検索の対象となるマスタ表も共有される情報が多いと考えることができます。
メモリ上にSQLやプロシージャを共有する領域を適切に見積ることや、メモリ上に共有される表または索引ブロックが長く常駐できるようにすることが大切です。
また、処理は更新系が多く、ピンポイントで行または複数行を選択する必要があることから、大量の更新系の処理に対応できるよう、REDOログバッファやファイル、UNDO領域の適切な設計が必要です。
行データを絞り込むためには、適切な索引の作成が効果的です。
一方、DSS系のアプリケーションは、OLTP系の業務で蓄積された日々の情報を元に、大量のデータを対象として分析する処理がメインです。
このような業務は検索中心で、処理対象のデータは非常に大量で、かつ複数の表を結合した結果の行集合を対象とする場合が多いといえます。
場合によっては、対象データがギガバイトテラバイト単位になる場合さえあります。
この場合、データを共有するためにメモリ上に保存するという考え方は通用しません。
いかにIOを効率よく行うか、結合処理を高速に行うかが設計のポイントとなります。
また、処理中にソート処理を含む場合がほとんどなので、大規模ソート処理を効率よく行う必要があります。
この章の後半で、設計上、それぞれのアプリケーションでどのコンポーネントに注目する必要があるかを具体的に説明します。
OLTP系 | DSS系 | |
---|---|---|
トランザクション | 短い | 長い |
ピーク時に集中 | バッチジョブ(レポート出力)などは夜間でも可 | |
SQL | 更新中心 | 参照中心 |
共有できるSQL文が多い | 個別のSQL文が多い | |
ソート処理などCPU依存型の処理が多い | ||
対象データ | ピンポイント | 非常に大きい |
マスタ表などは共有可 |
表4-1 OLTP系とDSS系の特徴
解説トレーナー