• 検索結果がありません。

データベース・パフォーマンスの 計測

この章では、データベース統計を使用してOracle Databaseのパフォーマンス を計測する方法を説明します。

この章のトピックは、次のとおりです: データベース統計について データベース統計の解釈

データベース統計について

データベース統計により、データベースへの負荷のタイプや、データベースで使用されるリソー スに関する情報が提供されます。データベース・パフォーマンスを効果的に計測するには、統計 が使用可能であることが必要です。

Oracle Databaseはシステム、セッション、セグメント、サービスおよび個別のSQL文の累積統計の タイプを生成します。統計の累積値には、通常、動的パフォーマンス・ビュー(V$ビュー)を使用 してアクセスします。これらの範囲でのデータベース・パフォーマンスを分析する場合は、対象 となる期間における統計の変化(デルタ値)を調べます。特に、期間開始時における統計の累積値と 終了時における累積値の違いに注意してください。

この項では、Oracle Databaseのパフォーマンス計測に使用される、より重要なデータベース統計の いくつかを説明します。

時間モデル統計

アクティブ・セッション履歴の統計 待機イベント統計

セッションおよびシステム統計

関連項目:

オプティマイザ統計の詳細は、Oracle Database SQLチューニング・ガイドを参照してください

時間モデル統計

時間モデル統計では、ログオン操作や解析など、データベースで実行される特定アクションの影 響を数値化して把握するために時間が使用されます。最も重要な時間モデル統計はデータベース 時間(DB時間)です。この統計は、フォアグラウンド・セッションのデータベース・コールで経過 した合計時間を表し、またインスタンスのワークロードの合計の指標にもなります。DB時間は、

インスタンスの開始時から累計的に計測され、アイドル待機イベントを待機していないすべての フォアグラウンド・セッション(アイドル状態でないユーザー・セッション)のCPU時間および待機 時間を集計することで計算されます。

ノート: DB時間はアイドル状態でないすべてのユーザー・フォアグラウンド・セッショ

ンの時間を合計して計算されるため、DB時間がインスタンス起動後の実際の経過時間を 超える可能性があります。たとえば、30分実行されているインスタンスに4つのアクティ ブ・ユーザー・セッションがあれば、その累積DBtimeは約120分になります。

Oracleデータベースをチューニングする場合は、コンポーネントごとに固有の統計セットがありま

す。システム全体を調べるには、共通の比較尺度が必要です。このため、Oracle Databaseの多くの アドバイザおよびレポートでは、統計が時間単位で記述されます。

最終的には、Oracleデータベースのチューニングは、データベースでアクションの実行にかかる時 間を短縮すること、または単にDB時間を短縮することを目的としています。時間モデル統計に は、V$SESS_TIME_MODELおよびV$SYS_TIME_MODELビューからアクセスできます。

関連項目:

V$SESS_TIME_MODELおよびV$SYS_TIME_MODELビューの詳細は、『Oracle Databaseリファレン ス』を参照してください。

アクティブ・セッション履歴の統計

データベースに接続中で、Idle待機クラスに属さないイベントを待機中のセッションは、アクティ ブ・セッションとみなされます。Oracle Databaseではアクティブ・セッションが毎秒サンプリング され、サンプル・データが共有グローバル領域(SGA)の循環バッファに格納されます。

サンプリングされたセッション・アクティビティには、V$ACTIVE_SESSION_HISTORYビューを 使用してアクセスできます。各セッションのサンプルには一連の行

と、V$ACTIVE_SESSION_HISTORYビューが含まれ、最後のセッション・サンプルの行から順番 に、各アクティブ・セッションに対してサンプルごとに1行が戻されます。アクティブ・セッショ

ンのサンプルは の循環バッファに格納されるため、システム・アクティビティが多いほど、

格納できるセッション・アクティビティの秒数は短くなります。これは、V$ビューに表示される セッション・サンプルの期間が、データベース・アクティビティのレベルに完全に依存すること を意味します。大規模なシステム・アクティビティ中は、このV$ビューの内容が極端に大きくな る可能性があるため、ディスクにはセッション・サンプルの一部のみが書き込まれます。

アクティブ・セッションのみを取得することで、システム上で許可されるセッション数ではな く、実行される作業に直接関連するサイズで管理可能なデータ・セットが取得されます。アクテ ィブ・セッション履歴(ASH)を使用すると、V$ACTIVE_SESSION_HISTORYビューの現行データ とDBA_HIST_ACTIVE_SESS_HISTORYビューの履歴データの両方を検査して詳細な分析を実行で き、通常、ワークロードを再現して追加のパフォーマンス情報をトレースする必要がありませ ん。ASHには、取得されたSQL文ごとの実行計画情報も含まれます。この情報を使用すること で、SQLの経過時間に多くの影響を与えているSQL実行部分を特定できます。ASHに存在するデー タは、次のように、取得する各種ディメンションでロール・アップできます。

SQL文のSQL識別子

SQL文の実行に使用されるSQL計画のSQL計画識別子およびハッシュ値 SQL実行計画情報

オブジェクト数、ファイル数およびブロック数 待機イベント識別子およびパラメータ

セッション識別子およびセッション・シリアル番号 モジュールおよびアクション名

セッションのクライアント識別子 サービス・ハッシュ識別子

コンシューマ・グループ識別子

指定した期間のこの情報は、ASHレポートに収集できます。

アクティブ・セッション履歴は、Active Data Guardフィジカル・スタンバイ・インスタンスおよ びOracle Automatic Storage Management(Oracle ASM)インスタンスでも使用できます。これらのイン スタンスでは、現在のセッションのアクティビティが収集され

てV$ACTIVE_SESSION_HISTORYビューに表示されますが、ディスクへの書込みは行われませ ん。

関連項目:

ASHレポートの詳細は、「サンプル・データの分析」を参照してください

Active Data Guardのフィジカル・スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください

SGA

Oracle ASMインスタンスの詳細は、『Oracle Automatic Storage Management管理者ガイド』を 参照してください。

待機イベント統計

待機イベントは、処理を継続する前にイベントが完了するまで待機する必要があることを示すた めに、サーバー・プロセスまたはスレッドによって増やされる統計です。待機イベント・データ により、ラッチ、バッファおよびI/Oの競合など、パフォーマンスへ悪影響を与える可能性のある 症状が明らかになります。

待機イベントに関する高水準の分析を容易にするために、Oracle Databaseでは、イベントが次のク ラスにグループ化されます。

管理

アプリケーション クラスタ

コミット 同時実行性 構成

アイドル ネットワーク その他

スケジューラ システムI/O ユーザーI/O

待機クラスは、一般に特定待機イベントで問題を解決するために適用される共通の解決策に基づ きます。たとえば、排他TXロックは通常はアプリケーション・レベルの問題であり、HWロック は通常は構成の問題です。次のリストに、一部の待機クラスでの一般的な待機イベントの例を示 します。

Application: 行レベル・ロックまたは明示的ロック・コマンドが原因のロック待機。

Commit: コミット後のREDOログ書込み確認の待機。

Idle: SQL*Netmessagefromclientなど、セッションが非アクティブであることを示す待 機イベント

Network: ネットワーク上でのデータ送信の待機。

User I/O: ディスクからのブロック読取りの待機。

データベース・インスタンスの待機イベント統計には、バックグラウンド・プロセスとフォアグ ラウンド・プロセスの両方の統計が含まれます。通常、チューニングは、フォアグラウンド・ア クティビティが中心となるため、データベース・インスタンス・アクティビティ全体は、チュー ニングに役立つように、関連するV$ビュー内でフォアグラウンドとバックグラウンドの統計に分 類されます。

V$SYSTEM_EVENTビューには、データベース・インスタンスのフォアグラウンド・アクティビテ ィの待機イベント統計と、データベース・インスタンスの待機イベント統計が表示されま

す。V$SYSTEM_WAIT_CLASSビューには、待機クラスへの集計後に、これらのフォアグラウンド およびインスタンス・レベルの待機イベント統計が表示されます。V$SESSION_EVENTおよ びV$SESSION_WAIT_CLASSには、セッション・レベルでの待機イベント統計と待機クラス統計 が表示されます。

関連項目:

待機イベントの詳細は、『Oracle Databaseリファレンス』を参照してください

セッションおよびシステム統計

V$SYSSTATおよびV$SESSTATビューを使用すると、システム・レベルとセッション・レベルの多 数の累積データベース統計にアクセスできます。

関連項目:

V$SYSSTATおよびV$SESSTATビューの詳細は、『Oracle Databaseリファレンス』を参照してくだ さい

データベース統計の解釈

最初にパフォーマンス・データを調査するときは、データベース統計を調べることによって、デ ータについての可能性のある解釈を考察できます。正しい解釈であることを確認するために、別 のデータでクロスチェックし、統計またはイベントが本当に関連しているかどうかを確定してく ださい。フォアグラウンド・アクティビティはチューニング可能であるため、バックグラウン ド・アクティビティの統計を分析する前に、フォアグラウンド・アクティビティの統計を先に分 析することをお薦めします。

次の各項では、データベース・パフォーマンスを計測するために、様々なタイプのデータベース 統計を解釈するヒントを説明します。

ヒット率の使用

時間統計のある待機イベントの使用