Statspackとは
Statspack設定
statspackでの情報収集
statspackレポートの出力
便利スクリプト
Oracleチューニング講座
第1章 Oracleのチューニングの基礎知識を身につける
システムのチューニングは、非常に複雑な作業です。設計、開発段階におけるチューニングから、運用開始後の継続的な監視の結果、必要となるチューニングなど様々です。
Oracle RDBMS
の具体的なチューニング方法に入る前に、チューニングにおける基礎知識を習得します。
チューニングとは
チューニングとは、システムのコンポーネントを目的に合うように変更することで、システムのパフォーマンスを向上させること(スループットを向上させ、レスポンスタイムを短縮すること)です。
・
スループット
1秒間で100トランザクション処理数といった、単位時間あたりの処理量
・
レスポンスタイム
問合せを発行してから結果が戻るまでの時間
バッチ処理を行ってから終了するまでの時間
目標の設定
チューニングの作業は、漠然と「処理を速くしたい」という目標では終わることはありません。
目標を明確に定義します。定義したパフォーマンス目標に達したのであれば、すべてのチューニング作業を中止します。
例)
・オペレーターによる顧客情報入力のレスポンスタイムを3秒以内におさえる
・1日に200,000オーダーを処理する
NOTE
重要なのはメモリー上のヒット率が何%であるかではなく、各システムで設定した目標を満たしているかどうかです。
チューニングの必要性
パフォーマンス・チューニングを行うことにより、主に以下のような効果が得られます。
・
余計な機材を購入せずにすむ、また構成を小型化できることによる、経費の削減
・
高速なレスポンスタイム、優れたスループットによる企業の生産性、顧客満足度の向上
このようにパフォーマンス・チューニングは、経費削減だけでなく人的な利益にもつながります。
パフォーマンスに関する問題は通常、システム・リソースの競合や消耗が原因で発生します。多くの場合CPU、メモリーまたはディスク・ドライブの追加で一時的にパフォーマンスは改善されます。しかし、それはあくまでも一時的な改善であって、近い将来同様の問題に直面する可能性を持っています。
限られたシステムリソースを最大限に活かすことが重要です。
システム要件の確認
初期段階においてシステム要件を明確にし、正しくシステム・アーキテクチャを構成することは非常に重要です。特に明確化しておくべきポイントを以下に示します。
・
システムでサポートすべきユーザー数
・
ユーザー・インターフェイスは何を使うか
・
ユーザーとの距離
・
ユーザーがアクセスするデータ量
・
ユーザーのレスポンスタイムの要件
・
稼動時間(24時間のサービスが必要か)
・
リアルタイムでの処理が必要か
・
データベースの規模
・
必要なスループット
・
アプリケーション開発者、データベース管理者のスキル
・
予算上での制約はどれくらいか
チューニングのステップ
パフォーマンス・チューニングは、必ずしも問題が発生してから対処するものではありません。
一般的に設計・開発段階に行うチューニングが最も効果的です。
各ステップは、後のステップになるほどコストが大きくなります。また、各ステップは目標が達成されるまで繰返す必要があります。
1)業務規則のチューニング
・システムへの実装前のビジネス・ルールの最適化
・共有サーバー構成の検討
2)データ設計のチューニング
・正規化、非正規化
・リレーション・シップ(主キー、外部キー)
3)アプリケーション設計のチューニング
・業務処理内容の効率的なアプリケーションへの取込み
・共通データのアプリケーションへのキャッシング
4)データベースの論理構造のチューニング
・データベースの論理構造の計画
・索引作成の過不足の確認
5)SQLのチューニング
・オプティマイザ
・配列処理
・行レベル・ロック
・PL/SQL
6)アクセス・パスのチューニング
・索引の作成、削除
・SQLの記述の見直し
・オプティマイザ・ヒントの使用
7)メモリー割当てのチューニング
・共有プール
・データベース・バッファ・キャッシュ
・REDOログ・バッファ
一般的なチューニング・ステップ
チューニングとコストの関係
8)I/Oおよび物理構造のチューニング
・ディスク、データの分散
・エクステントの動的拡張の回避
・行連鎖の解消
9)リソースの競合のチューニング
・ロールバック・セグメント
・データ・ブロック
・共有プール
・ラッチ
10)基礎を形成するプラットフォームのチューニング
・オペレーティング・システムのバッファ・キャッシュ・サイズ
・論理ボリューム・マネージャ
・各プロセスのメモリーとサイズ
NOTE
チューニングにおける問題のうち、約8割がステップ5、6にあたるSQLの問題だといわれています。
第2章 SQLチューニングの基本とは