データベースエンジニアという立場から、業務のさまざまな場面でOracle Enterprise Manager(EM)を活用している渡部亮太氏。今回は、さまざまな問題をEMで解決する際に役立つアドバイザ機能について説明をしていただいた。(編集部)
第1回、第2回で説明したとおり、「Oracle Enterprise Manager」(EM)を使えば運用状況をリアルタイムに視覚化できるため、発生した問題を容易に把握することができます。しかし、問題を認識できたからといって、それで終わりというわけではありません。最終的にはそれらの問題を解決する必要があります。
これを助けてくれるのが各種アドバイザ機能です。EMは、関連する画面からアドバイザ機能を簡単に呼び出して利用することができます。
Oracle Database のEnterprise Editionでしか利用できませんが、このエディションには多くの有用なオプションが用意されています。その1つが「Oracle Tuning Pack」で、「SQLチューニング・アドバイザ」「SQLアクセス・アドバイザ」「自動SQLチューニング・アドバイザ」といった、性能問題を解決するのに役立つアドバイザ機能が含まれています。
一般に、性能問題への対処は以下の流れで行います。
1. 問題の存在を認識
2. 問題の詳細分析と原因の特定
3. 対処策の検討
4. 対処策の実施と問題改善の確認
これらはいずれも高度なスキルが必要で、かつ費用対効果が把握しにくい作業です。たとえ優秀なエンジニアであっても、どの程度時間をかければどの程度効果を見積もることは容易ではありません。
Oracle Tuning Packに含まれるパフォーマンス関連のアドバイザ機能は、上記の2~4を自動化して実行することができます。しかも、単に自動化するだけではなく、パフォーマンスチューニングに要する作業時間やコストも明確に予知できるため、管理者にとって非常にありがたい機能ではないでしょうか。
もちろん、これらのアドバイザ機能はEMのパフォーマンス管理系の画面に統合されているため、一連の作業フローをEM上で完結することができます。たとえば、EMでのSQLチューニング・アドバイザの操作は以下のとおりです。
1. 「トップアクティビティ」画面の上位SQLにより、高負荷SQLの存在を認識
2. 高負荷SQLを選択し表示される「SQL詳細」画面から「SQLチューニング・アドバイザのスケジュール」を選択
3. 「SQLチューニング・アドバイザのスケジュール」画面で、SQLチューニング・アドバイザを実行する日時をスケジュール
4. ジョブによりSQLチューニング・アドバイザが実行された後、アドバイザの推奨事項を受け入れ、対処策を実施
5. パフォーマンス関連画面で、チューニング結果を確認
なお、これはSQLチューニング・アドバイザ特有の話となりますが、自動でのSQLチューニングではSQLプロファイルという機能を利用できます。SQLプロファイルを使用して実行計画を誘導する際は、1)SQLの修正が一切不要、2)状況の変化に柔軟に対応できる、3)作業コストが大幅に小さい、などのメリットが得られます。同機能は原則的に手動チューニングでは使用できませんが、手動チューニングでSQLの実行計画を誘導する場合は、一般に「ヒント」や「アウトライン」といった機能を使用できます。
このため、Oracle Tuning Packをお持ちの方は、EMからSQLチューニング・アドバイザを積極的に利用することをお勧めします。
上記のアドバイザ機能はEnterprise Edition のみに含まれていますが、以下のものはStandard Editionでも利用可能な機能です。
これらもEMに統合されており、アドバイス結果がグラフィカルに分かりやすく表示されます。
これら3つのうち、DBA初級者にとって役立つ機能はセグメント・アドバイザでしょう。同機能は、DBAの初歩的かつ基本的なタスクであるテーブルの断片化に対し、容易に対処できるのが特徴です。テーブルの断片化は未使用領域が増加すると発生しますが、これに対して「縮小」、「再編成」、「圧縮」といったアドバイスを提案します。
なお、アドバイザはさまざまなアクションを推奨事項として提案しますが、それらすべてを実行すべきかどうかは別問題です。これらの事項は「SQL表示」ボタンを押すことで、実際に実行するSQLコマンドを確認できます。このSQLコマンドがどういった内容なのか、マニュアルや「My Oracle Support」のナレッジベースなどで調査してから実際に実行することが望ましいでしょう。
特に大きなサイズのセグメントや、アクセスが頻繁なセグメントに対するセグメント・アドバイザの推奨事項を実行する場合は影響度を勘案し、慎重に検討するべきでしょう。
今回紹介したアドバイザ機能は、それぞれのアドバイザと関連する画面からシームレスに呼び出すことができます。これに加えて、アドバイザ機能を集約したポータル的な画面として「アドバイザ・セントラル」という画面が用意されています。
使用したいアドバイザがあらかじめ分かっている場合は、「アドバイザ・セントラル」画面から各アドバイザの実行画面に移動することができます。また、過去に実行したアドバイザの結果も一覧形式で確認可能です。
(文:株式会社コーソル 渡部亮太)