株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

MOATS – ターミナルでOracleパフォーマンス分析

Oracle ACE Proの渡部です。 ターミナルで、Oracleのパフォーマンス状況を簡単に確認できるツール MOATSをご紹介します。

MOATSとは

PL/SQLパッケージとして実装されたOracleパフォーマンス分析ツールです。

最新バージョンは Sidney Chen さんによる開発ですが、もともとは、Adrian Billington さんと Tanel Poder さんにより開発されていたようです。

以下の特徴があります。

  • ターミナルでOracleパフォーマンスを確認可能
  • Oracle Database 11g R1以降に対応
  • EM/ASH類似の時系列グラフを表示可能
  • Oracle Database Standard Editionで使用可能です(ASHは使用しません)。
  • RACに対応(V2.0より)

  • Instance Summary : 各インスタンスの負荷状況
  • Top Event Summary : 上位待機イベント
  • Active Session Graph : EM/ASH類似の時系列グラフ
  • Top SQL Summary : 上位SQL
  • Top SQL : 上位SQL

MOATSのインストール方法

  1. ファイルをダウンロード
wget https://github.com/dbsid/moats_rac/archive/refs/heads/master.zip
unzip master.zip
  1. MOATS用ユーザーを作成し権限を付与
SQL> create user MOATS identified by moats;
SQL> @moats_privs_grant.sql
-- -> moats
  1. MOATS用ユーザーで接続し、インストール(パッケージを作成)
SQL> connect moats/moats
SQL> @moats_install.sql
  1. SQLスクリプトファイル q (q.sql) を実行 → MOATSが実行される
SQL> @q

q.sqlの中身は以下です。見てのとおり、MOATS機能の中心はmoats.top()ファンクションです。

set arrays 80 lines 2000 trims on head off tab off pages 0
SELECT /*+ no_monitor */* FROM TABLE(moats.top(5));
  • SQL*Plus設定を行ったうえで、moats.top(5) を実行しています。
    • moats.top(5) = 5秒ごと(p_refresh_rate=5)に画面表示更新

留意点およびメモ

  • 表示間隔(p_refresh_rate) はデフォルトで5秒
  • デフォルトでは、gv$session を1秒間隔(moats.gc_top_refresh_rate)で参照し、表示間隔(p_refresh_rate)でサマリして表示。
  • デフォルトの想定ターミナルサイズは 40 * 175
    • これ以外のターミナルサイズとしたい場合は、パラメータを指定してmoats.top()を実行する
  • moats.top()のファンクションの引数は以下で、指定すると動作をカスタマイズ可能です。
    • p_refresh_rate
    • p_screen_size
    • p_ash_height
    • p_sql_height
    • p_ash_window_size

渡部の考えるMOATSの使いどころ

定常的な負荷がかかる処理をOracleに対して実行しているときに、負荷状態をザックリ見たい場合があります。

  • そもそもちゃんと負荷がかかっているのか?
  • どの程度の負荷がかかっているのか?
  • どこがボトルネックになっているのか?
  • 想定外の待機が発生して、処理そのものの実行を妨げていないか?

負荷状態を詳細に把握するには、弊社取扱製品のDPAやMaxGaugeが使えますが、当然購入および導入が必要です。 また、OEMの性能関連機能はOracle EE/Diag Optionが前提です。

導入作業が簡単で、ターミナルで負荷状況を確認できるMOATSは、ちょっとした負荷状況の確認に役立ちます。

ちなみに、MOATSを使用前の私は、SELECT .... FROM V$SESSIONを手入力で繰り返し実行して負荷状況を確認していました… これでも、負荷状況はわかるといえばわかるのですが、決してスマートではないですよね。

ただし、MOATSには過去データの蓄積機能がないため、過去の負荷状況やSQL実行履歴を把握できないことに注意してください。過去の負荷状況やSQL実行履歴を確認したい場合、負荷状態を詳細に把握したい場合は、弊社取扱製品のDPAやMaxGaugeをご検討くださいませ。

[PR] マルチDB製品に対応するパフォーマンス監視/分析ツールDPA

Database Performance Analyzer DPA

Database Performance Analyzer (DPA) は、オンプレミス&クラウドに対応する低価格なデータベース性能監視/分析ツールです。非常に多くのデータベース製品/サービスに対応しています。

オンプレミス環境および仮想環境、IaaS環境のデータベース製品

  • Oracle Database
  • MS SQL Server
  • Sybase SAP ASE
  • IBM Db2
  • MySQL
  • MariaDB
  • PostgreSQL
  • Enterprise DB

AWSのデータベースサービス

  • Amazon RDS for Oracle Database
  • Amazon RDS for SQL Server
  • Amazon RDS for MySQL
  • Amazon RDS for MariaDB
  • Amazon RDS for PostgreSQL
  • Amazon Aurora for MySQL
  • Amazon Aurora for PostgreSQL

Microsoft Azureのデータベースサービス

  • Azure SQL for PostgreSQL
  • Azure Database for MySQL
  • Azure Database for MariaDB
  • Azure SQL Managed Instance
  • Azure SQL Database

Google Cloudのデータベースサービス

  • Google Cloud SQL for MySQL
  • Google Cloud SQL for PostgreSQL
  • Google Cloud SQL for SQL Server

低価格なのでインスタンス数が多くても導入しやすい

DPAは充実した性能監視/分析/チューニング機能を持ちながらも、非常に低価格です。 課金単位は監視インスタンス単位で、1インスタンス15.1万円/年から導入できます(2024年1月時点)。ボリュームディスカウントもありますので、ご興味がありましたら是非弊社までお問い合わせくださいませ。

DPA その他の特徴

  • 待機時間を基礎とする性能分析メソッド(Oracle ASHと同様)
  • DBサーバへのエージェント導入が不要(DPAサーバからJDBC接続)
  • 主要な性能分析機能を網羅: 時系列分析、ドリルダウン分析、過去SQLの全文検索、インデックスの作成推奨、管理者への通知
  • 機械学習アルゴリズムに基づく異常検知機能(Anomaly Detection)

Database Performance Analyzer (DPA) を試すには?

Database Performance Analyzer (DPA) は以下の方法で簡単に試用できます。

  1. オンライン デモ環境
    https://cosol.jp/techdb/2022/08/dpa_online_demo/ の記事を参考にしてください。
  2. 14日間の製品トライアル
    https://cosol.jp/license/dpa/ の「DPA評価版について」をご参照ください。

なぜコーソルからDatabase Performance Analyzer (DPA)を購入すべきなのか

コーソルはDatabase Performance Analyzer (DPA)の一次代理店で、Database Performance Analyzer (DPA)の製品販売を行います。 SIer様、販社様がDatabase Performance Analyzer (DPA)を販売および導入することも可能です。

Database Performance Analyzer DPA

コーソルはデータベースの技術力を強みとしています。なかでもOracle Database技術力は日本随一です。MySQL、PostgreSQL、MS SQL Serverの資格や実績を持つエンジニアも多数在籍しております。

独自のDPAナレッジを公開

DPAの導入や監視設定に関する手順をナレッジとして公開しています。評価版をご利用される際の参考にしてくださいませ。

2023年4月時点では以下の記事を公開しています。

多数のOracle関連書籍を執筆

ORACLE MASTER Platinum取得者数 No.1
  • 単年度ORACLE MASTER Platinum取得者数7年連続No.1

7年連続ORACLE MASTER Platinum取得者数No.1! Oracle Certification Award 2020

コーソルのデータベース運用関連製品とサービス

コーソルでは、データベース運用を製品とサービスでご支援します。

Database Performance Analyzer (DPA)

Database Performance Analyzer (DPA)は、オンプレミスとクラウド上の多くのデータベース製品に対応したデータベース性能管理製品です。低価格であるため、非常に導入しやすいです。

Database Performance Analyzer DPA

自動SQLチューニング機能を持つToad

Database Performance Analyzer (DPA)で検出された問題SQLをチューニングする際に、Toad for Oracle / Toad for SQL Serverの SQL Optimizer機能を使用できます。

リモートDBAサービス

リモートDBAサービスはDB・運用の専門家がお客様のデータベースに対して 必要な時に必要な対応を行うリモート接続型運用保守サービスです。

リモートDBAサービス

時間制コンサルティングサービス

時間制コンサルティングサービスは”必要な時に” ”必要な時間だけ”契約できる 時間契約型のコンサルティングサービスです。

時間制コンサルティングサービス

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ