ASHビューアー

背景(2008)



職場では、Oracleデータベースサーバーのパフォーマンスに対処する必要がありました。 Oracle 10gのリリース後、パフォーマンスの問題を監視および診断するタスクが大幅に簡素化されました-Active Session History(ASH )を使用して、過去にデータベースに何が起こったのか、現在サーバーで何が起こっているのか、さらには予測することさえ可能になりました将来の負荷で何が起こるか。



しかし、まず、新しいバージョンへの移行プロセスは非常に長く、一部のお客様は引き続き古いバージョンを使用しています。 次に、利用可能なOracleからのアクティブセッションの履歴用の視覚化ツール:



サードパーティの無料ツールのうち、同様の機能がKyle HaileyによってASHMONユーティリティに実装されました。 ただし、機能は表示専用であり、Windowsという1つのプラットフォームで機能しました。



一般に、その時点で利用可能なすべてのオプションを検討した後、即興の素材から「自転車」を組み立てるという強い意思が決定されました。











アプリケーション要件:





成分

  1. Oracle Berkeley DB Java Edition v。 3.3.75。 埋め込みキー値ストレージ。 アクティブなセッションの履歴データを保存するには;
  2. JFreeChart v。 1.0.12。 Java SEでグラフを作成するためのライブラリ。 この問題を解決するために、積み上げグラフが登場しました。 目的の結果を達成するための主な変更点-Oracle Enterprise Managerの場合と同様-ChartPanelを参照。
  3. E-Gantt v.0.5.3。 Java Swingでガントチャートを作成するためのライブラリ。
  4. SwingLabs Swingコンポーネント拡張機能v。 0.9.5。 表形式データ、カレンダーなどのより便利な出力のために。
  5. Joda Time-Java日時API v.1.6。 Javaで日付を操作するための優れたライブラリ。
  6. Blanco SQL Formatter v。 0.1.1。 SQL、PL / SQLコードのフォーマット。
  7. jEdit構文パッケージv。 2.2.2。 SQL、PL / SQLコードを強調するため。




ASH Viewerに関する一般情報:

ASH Viewerは、アクティブなセッションのデータを表示するためのグラフィカルインターフェイスを提供します。 プログラムは、アクティブなセッションのリストについてOracleデータベースサーバーを定期的にポーリングし、ローカルデータベースに情報を保存します。その後、データが視覚化されます。 バージョン10gより前のバージョンでは、データベースは1秒間に1回ポーリングされ、Oracle 10g以降では、v $ active_session_historyからの情報の要求とスケジュールの更新は30秒ごとに発生します。



セットアップと接続:

配布 パッケージをダウンロードし、別のディレクトリに解凍し、libディレクトリにojdbc6.jarを追加します 。 ASHV.jarまたはrun.com(run.sh)を実行し、ローカルコンピューターにインストールされているJavaへのパスを修正します。 テーブルを表示する権限と、ASH Viewer-aがここで動作するために必要なpl / sqlパッケージを実行する権限を持つユーザーを使用して接続します



バージョン10g以降では、ASHエミュレーションを有効にすることができます。 このモードは、有料オプションのOracle Diagnostic Packが接続されていないデータベース、またはStandard EditionのOracleに適しています。 9i、8iバージョンの場合、[標準]を選択します。







トップアクティビティインターフェース:

このインタフェースは、Oracle Enterprise Managerの「上位アクティビティ」ページと同じです。 グラフ上の任意の範囲を選択し、アクティブなセッションとSQL / PL / SQLステートメントの上にデータを取得します。 リクエストに関する詳細情報を取得することが可能です-リクエストテキスト、実行計画:

-v $ sql_planから直接(さまざまなplan_hash_valueに対して)。 Oracle DBMSの以前のバージョンとの互換性のために作られました。

-DBMS_XPLAN.DISPLAY_CURSOR。 カーソルキャッシュから。 特定のsql_idの実行計画。

-DBMS_XPLAN.DISPLAY_AWR。 ワークロードリポジトリからの実行計画(sql_idによる)。

設定では、プログラムが特定のウィンドウの上位sqlセッションとプロセスを更新する自動モード(デフォルトでは、最後のデータベースサーバーアクティビティの5分)、データベースから詳細情報を選択するSQL、PL / SQLステートメントの数(要求)を設定できますv $ sql)およびプロセッサ数(cpu_countデータベースサーバーパラメーター)に対するトップアクティビティグラフ表現のスケールを変更する機能。 選択した範囲を使用すると、DBサーバーAPIコール-DBMS_WORKLOAD_REPOSITORY.ASH_REPORT_TEXTを介して、ASHレポート(スクリプトを介して取得する出力と同様)を取得できます。







詳細インターフェース:

使用済みCPUおよび待機イベントの各グループの詳細。 Oracle Enterprise ManagerのTop Activityインタフェースと同様に機能しますが、自動モードはありません。 また、v $ sqlから詳細情報を選択する演算子の数を構成したり、ローカルデータベースにクエリ実行プランを保存したり、システム内のプロセッサの数に対するグラフ表現のスケールを変更したりできます。







履歴インターフェース:

このページでは、アクティブなOracleセッションの履歴から収集されたデータを使用して、アクティブなセッションの履歴を表示できます。 ナビゲーションは、カレンダーインターフェイスを介して行われます。 また、カレンダーインターフェースでは、日数の範囲を選択してローカルデータベースから削除し、ディスク領域を解放することができます(たとえば、アクティブなセッションの履歴の長いコレクションの場合)。 オフラインモードは機能します。このモードでは、アーカイブされたデータを表示するためにのみASH Viewerを実行できます。 アーカイブモードでより完全な情報を取得するには、自動モードでオンラインで情報を収集することをお勧めします。そうしないと、SQLクエリに関する情報がSQL ID / HASH値の形式でのみ利用可能になります。







その他:



ユースケース:



便利なリンク:

SourceForge.netのプロジェクトページ。

GitHubプロジェクトページ。



画面上のアクションをgifファイルに記録する-ScreenToGif

データベースの負荷テスト用ユーティリティ-Hummerora



ご清聴ありがとうございました!



All Articles