この特集のトップページへ

9.2 トランザクション特性と性能目標

 性能を考慮したシステムを構築する場合,あるいは稼働しているシステムの性能問題を解決する場合,最初に検討しなければならないことがある。それは,トランザクション特性と性能目標の設定である。

9.2.1 トランザクション特性

 アプリケーション特性やトランザクション特性は,データベースの設計に大きな影響を与える。本書でいう「トランザクション特性」とはトランザクションレベルの属性のことであり,「アプリケーション特性」とはユーザーアプリケーションレベルの属性のことである。

トランザクション特性
 トランザクション特性とは,データベースオブジェクトに対してどのような操作(検索,挿入,更新,削除)を主に実施するのか,アクセス対象となるテーブルはどれでテーブル数はどれだけか,インデックスアクセスかテーブルスキャンか,秒あたりあるいは時間あたりのトランザクションの最大数または平均数はどれだけか,といったトランザクション固有の特徴のことである。

○アプリケーション特性
 アプリケーション特性は,トランザクション特性よりも広い範囲を指す概念であり,「プログラム特性」あるいは「業務アプリケーション特性」といい換えてもよい。すなわち,リアルタイム処理かバッチ処理か,問い合わせ主体かレポート処理主体か更新処理主体か,実行頻度や周期はどの程度か,アプリケーションで発生する最大または平均のトランザクション(伝票やデータなど)の数はいくらか,といったアプリケーション固有の特徴のことである。

 データベースアクセスの観点からいうと,トランザクション特性がパフォーマンスチューニングにおける焦点となり,ユーザーの観点からいうと,アプリケーション特性がパフォーマンスチューニングにおける焦点となる。

 一般にアプリケーションの種類を大別すると,オンライントランザクション処理を主とするものと意思決定支援処理を主とするものの2種類に分けられ,両者でロックの範囲やインデックスの設定箇所が異なってくる。しかし,現実のシステムでは両者を明確に分類することは困難であり,両者が混在している事例がほとんどだといってよい。その場合には,どちらを優先するのかを判断しなければならない。もし,どちらの側面も重要で同一の優先度であるならば,それぞれの側面を異なるデータベースに分割することを検討すべきだろう。つまり,オンライントランザクション処理システム用のデータベースと,そのデータベースから抽出したデータを格納する意思決定支援システム用のデータベースを別々に用意するのである。一般的にオンライントランザクション処理では,データの挿入,更新および削除が頻繁に発生し,かつ2〜3秒以内の応答時間が要求される。それに対して,意思決定支援システムでは,データの照会や分析が中心となり,応答時間に対する要求もオンライントランザクション処理ほどシビアではない。もし意思決定支援システムのデータベースとオンライントランザクション処理のデータベースとを兼務させているのであれば,同一データへのアクセスが競合し,応答時間の低下を招くことになる。データベースを分割することで,このような性能劣化を回避することができる。

 データベースを利用したシステムでは,個々のトランザクション処理に優先順位を設定することも必要になる。読み込み専用の検索トランザクションとデータの挿入や更新を伴うトランザクションでは,インデックス設計に対する要件が異なってくる。しかし,システム中に含まれるトランザクション特性は多数あり,すべてのトランザクションの処理を最適化することは,現実的に難しい。データベース中のデータは,Visual BasicやAccess,Delphiなどで開発されたアプリケーションを通じて操作される。どのような方法でデータにアクセスするのだとしても,データへのアクセスが必要となるのは,注文・入金・在庫照会などのビジネストランザクションが生じた結果であろう。生じたビジネストランザクションを分析し,データベース中のデータにどのようにアクセスするのか,どのモードでアクセスするのかを調査することが,最適な性能設計を実施するために重要となる。ただし,極めて単純なシステムでもない限り,すべてのビジネストランザクションでこのような情報を把握することは現実的ではない。まして,めったに発生しないビジネストランザクションについてこのような情報を把握しても,あまり意味はないと思われる。しかし,少なくとも主要なビジネストランザクション(最速の応答時間が求められるビジネストランザクションや頻繁に実行されるビジネストランザクション)については,以下の情報を把握すべきである。


  1. 運用頻度とは,単位時間あたりの平均実行回数とピーク実行回数のことである。実行時間帯がプライムタイムであるか,それともオフピークタイムであるかについても検討すべきであろう。
  2. トランザクションミックスとは,データ挿入トランザクション,更新トランザクション,削除トランザクション,照会トランザクション,分析トランザクションなどの組み合わせ比率のことである。
  3. 設計時点におけるデータ量はもちろんであるが,将来的なデータ量の増加率がどうなるのかについても,十分に予測しなければならない。
前へ Chapter 9 3/46 次へ