Comments
Description
Transcript
Quest SQL Optimizer for Oracle ユーザーガイド
Quest ® SQL Optimizer for Oracle ユーザーガイド 8.0 © 2010 Quest Software, Inc. ALL RIGHTS RESERVED. 本ガイドには知的財産情報が記載されており、その情報は著作権によって保護されております。本 ガイドに記載されているソフトウェアは、ソフトウェア使用許諾または守秘義務契約に下で提供され ております。本ソフトウェアは、該当する契約の条件に準拠する場合に限り、使用およびコピーする ことができます。形式や理由、電子通信や機械に関わらず、本ガイドの一部であっても複製および 送信を禁止します。Quest Software, Inc. からの書き込み許可なしでの、購入者以外による写真複 写や記録も禁止します。 本ドキュメント内の情報は Quest 製品に関連して規定されています。明示あるいは黙示を問わず、 禁反言あるいは別の方法で、本ドキュメントから許可を受ける知的所有権あるいは Quest 製品譲渡 に関連する知的所有権に対しては、ライセンスはありません。本製品のライセンス契約同様、Quest 条件および規約の記載を除いて、Quest は一切の責任を負いません。また、製品に関係する黙示 的法令保証の権利を放棄します。制限はありませんが、その製品は市場性、特定の目的に対する 適用度、または反侵害行為を含む黙示的保証があります。Quest は、損害が生じる可能性について 報告を受けたとしても、本ドキュメントの使用、または使用できないことから生じるいかなる、直接的、 間接的、必然的、懲罰的、特有または偶然的な障害( 無期限、利益の損失、事業中断、情報の紛失 も含む) に対しても責任を負わないものとします。Quest は、本ドキュメント内容の精密さや完全性に ついて表明および保証しません。また、Quest は告知なしで製品使用や製品解説書を変更する権 限があります。Quest は、本ドキュメントに記載されている情報を更新する義務はありません。 本製品の使用に関する質問は、こちらにご連絡ください。 Quest Software World Headquarters LEGAL Dept 5 Polaris Way Aliso Viejo, CA 92656 www.quest.com 電子メールの宛先:[email protected] 地域および国際事業所の情報につきましては、当社の Web サイトを参照してください。 商標 Quest、Quest Software、Quest Software のロゴ、Benchmark Factory、Toad、T.O.A.D は、アメリカ 合衆国およびその他各国の Quest Software, Inc の商標および登録商標です。本ガイドで使用され ている他の商標および登録商標は、各所有者の所有物です。Quest Software の登録商標の詳細 については、http://www.quest.com/legal/trademark-information.aspx を参照してください。その 他の商標および登録商標は、各所有者の所有物です。 目次 SQL Optimizer の概要 Quest SQL Optimizer for Oracle について 5 5 Optimize SQL 5 Batch Optimize 6 Scan SQL 6 Inspect SGA 6 Advise Indexes 6 Analyze Impact 6 Manage Plans 6 SQL 最適化ワークフロー 7 データベース権限 8 SQL Optimizer の使用 11 チュートリアル:Optimize SQL (SQL Rewrite) 11 ステップ 1:SQL 文を最適化する 11 ステップ 2:代替の SQL 文をテストする 11 チュートリアル:Optimize SQL (Plan Control) 12 ステップ 1:実行計画の生成および実行 12 ステップ 2:実行計画をベースラインとして展開 12 チュートリアル:Generate Indexes 13 チュートリアル:Best Practices 14 チュートリアル:Deploy Outlines 14 チュートリアル:Batch Optimize SQL 15 チュートリアル:Scan SQL 18 チュートリアル:Inspect SGA 20 チュートリアル:Advise Indexes 21 チュートリアル:Analyze Impact 22 チュートリアル: Analyze Index Impact 23 チュートリアル:Save SQL Statements to Impact Analyzer 24 Quest SQL Optimizer for Oracle ユーザーガイド 目次 4 チュートリアル:Manage Outlines 25 付録:Quest へのお問い合わせ 26 Quest サポートへのお問い合わせ 26 Quest Software へのお問い合わせ 26 Quest Software について 26 索引 27 1 SQL Optimizer の概要 Quest SQL Optimizer for Oracle について Quest SQL Optimizer for Oracle は SQL 最適化プロセスを自動化し、SQL 文のパフォーマンスを最 大化します。SQL Optimizer は、Oracle の System Global Area (SGA) からデータベースオブジェク ト、ファイル、または SQL 文のコレクション内にある SQL 文を分析、リライト、および評価しま す。SQL Optimizer が問題のある SQL 文を特定すると、SQL 文を最適化し、最適化された文を含む 置換コードを提供します。 SQL Optimizer は、インデックスの最適化およびプラン変更分析のソリューションを提供します。複 数の SQL 文のインデックス推奨事項を提供し、インデックスの影響分析を実行し、そして SQL 実行 計画の代替を生成します。 SQL Optimizer を構成しているのは、次のとおりです。 Optimize SQL Optimize SQL には、SQL Rewrite モードと Plan Control モードがあります。 SQL Rewrite モード 説明 SQL 文の最 適 化 SQL Optimizer の Artificial Intelligence エンジンを使用して SQL シンタック スルールを実行し、Oracle の最適化のヒントを応用して意味的に同等な SQL 文の代替を作成します。また、ユーザー定義の文を作成して、データ ベース環境でテストできます。詳細は、オンラインヘルプの「About Optimizing SQL」を参照してください。 比較する SQL 文の実行 SQL 文の代替を実行して、実行の統計情報を表示します。これにより、 データベース環境に最適な SQL 文が分かります。詳細は、オンラインヘル プの「Execute Scenarios」を参照してください。 インデックスの 生成 SQL 文のシンタックスおよびデータ構造を分析し、パフォーマンスを改善す るインデックスを提供します。SQL Optimizer では、データベースに物理的 にインデックスを作成せずに、仮想インデックスを使用して代替を生成しま す。詳細は、オンラインヘルプの「About Index Generation」を参照してくだ さい。 スケーラビリテ ィのテスト Quest Benchmark Factory を使用して、潜在的な作業負荷条件をシミュ レーションし、SQL 文のパフォーマンスをテストします。詳細は、オンライン ヘルプの「Test for Scalability」を参照してください。 ベストプラクテ ィスの活用 一般的なベストプラクティスの方法を活用し、データベースのパフォーマン スを向上させます。詳細は、オンラインヘルプの「Best Practices」を参照し てください。 Plan Control モード 説明 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の概要 実行計画の生 成 元のソースコードを変更せずに、SQL 文の実行計画の代替を生成します。 詳細は、オンラインヘルプの「Generate Execution Plan」を参照してくださ い。 ベースラインの 展開 実行計画からベースラインを作成し、これらのベースラインを展開して、最 適なデータベースのパフォーマンスを実現します。詳細は、オンラインヘル プの「Deploy Baselines」を参照してください。 6 Batch Optimize Batch Optimize では、ファイル、データベースオブジェクト、SQL テキスト、またはバッチプロセスの Foglight Performance Analysis リポジトリに保存された文を送信します。Batch Optimize では SQL 文 をスキャンおよび抽出、文を最適化し、文をテストしてデータベース環境に最適な SQL 文を見つけ ます。詳細は、オンライン ヘルプの「About Batch Optimize」を参照してください。 Scan SQL Scan SQL は、実行せずにソースコードおよびデータベースオブジェクトで問題のある SQL 文を特 定します。そして、Scan SQL は、問題のある SQL 文を分析し、パフォーマンスのレベルに従ってカ テゴリ化します。詳細は、オンラインヘルプの「About Scanning SQL」を参照してください。 Inspect SGA Inspect SGA は、Oracle の SGA から SQL 文を分析します。SQL 文および実行統計を取得して SQL パフォーマンスを確認するために使用する条件を指定できます。詳細は、オンラインヘルプ の「About Inspect SGA」を参照してください。 Advise Indexes Advise Indexes では、SQL 文のグループを分析し、文のグループの最適なインデックス セットを設 定します。詳細は、オンラインヘルプの「About Advise Indexes」を参照してください。 Analyze Impact Analyze Impact を使用すると、SQL 文の実行計画および Oracle のコスト変更を追跡して、信頼でき るデータベースのパフォーマンスを実現できます。データベースの変更から、パフォーマンスの影響 を推測します。選択した SQL 文を使用して、さまざまなデータベースシナリオをシミュレーションし、 データベースの変更に関わる影響を確認できます。データベース環境に対する変更の結果として、 実際のプランコストの変更を追跡することもできます。詳細は、オンラインヘルプの「About Analyzing Impact」を参照してください。 Manage Plans Manage Plans によって、SQL 文のパフォーマンスの改善に使用する、保存されたベースラインおよ び概要を整理します。詳細は、オンラインヘルプの「About Managing Plans」を参照してください。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の概要 7 SQL 最 適 化 ワークフロー SQL 最適化ワークフローによって、データベース環境で最適な SQL 文が実行されることを確認で きます。 手順 説明 問題のある SQL の特定 Batch Optimize は、埋め込み SQL 文をデータベースオブジェクトから抽出 します。文を抽出した後、実行計画の操作を分析し、パフォーマンスの問題 を特定します。 注: l l Inspect SGA を使用して動的 SQL 文を取得できます。取得した動 的 SQL 文をインスペクタファイルに保存し、Batch Optimize を使用 して文を抽出します。 Scan SQL を使用して、埋め込み SQL 文を抽出することもできます。 SQL 文の最適 化 Batch Optimize が問題のある SQL 文を特定すると、これらの文を自動的に 最適化し、一意の実行計画で文を生成します。Batch Optimize は、SQL 文 のシンタックスおよびデータベース構造を分析して文を生成します。最適化 プロセスの間、ヒントを使用することもできます。 メモ:Optimize SQL で SQL Rewrite モードを使用して、Scan SQL を使用し て抽出された SQL 文を最適化することもできます。 代替 SQL 文の 実行 Batch Optimize が代替文を生成した後、文を自動的に実行し、データベー ス環境に最適な文を示します。 メモ:Batch Optimize は SQL 最適化プロセスを自動化するため、生成した 文のうち最適な文だけを示します。文を Optimize SQL に送信し、使用でき るすべての文を表示します。 SQL 文の比較 Batch Optimize は元の文と最適な文の SQL 文と実行計画を比較します。 メモ: 文を Optimize SQL に送信すると、元の SQL 文と代替文のいずれか とを比較できます。 問題のある SQL 文の置換 Batch Optimize は、元のソースコードを置き換えるために使用できるスクリ プトを作成できます。 代替インデック スの生成 SQL 文を最適化するほか、Optimize SQL で代替インデックスを生成できま す。 メモ:Advise Indexes を使用して、SQL 文のグループ代替インデックスを生 成することもできます。 実行計画の生 成 Optimize SQL で Plan Control モードを使用して、元のソースコードを変更 せずに SQL 文に代わる実行計画を生成できます。Plan Control モードは まず SQL 文に最適な実行計画を検出し、ベースラインとして展開します。 パフォーマンス の変化の追跡 Analyze Impact は、データベースの変更がSQL 文のパフォーマンスに与え る影響を、発生する前後で確認することができます。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の概要 データベース権 限 Oracle のデータベース権限により、各ユーザーのアクセスを制限します。次の表では、特定の Oracle データベース権限を必要とする SQL Optimizer の機能について説明します。 モジュール 機能 権限 Optimize SQL SQL を実行 するセッショ ンパラメー タを変更す る SYS.V_$PARAMETER ビューへのアクセス権が必要で す。 ALTER SESSION 権限が必要です。 Optimize SQL お よび Advise Indexes 仮想インデ ックスの生 成 Oracle 8i 以降が必要です。 Optimize SQL お よび Batch Optimize 実行方法の オプション: サーバー設 定での実行 パッケージ SYS.DBMS_SQL が必要です。 Optimize SQL、Advise Indexes、および Batch Optimize ランタイム統 計の取得 次のビューへのアクセス権が必要です。 SYS.V_$PARAMETER SYS.V_$MYSTAT SYS.V_$STATNAME 時間関連統 計の取得 INIT.ORA ファイルの TIMED_STATISTICS パラメータを TRUE に設定する必要があります。 8 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の概要 モジュール 機能 権限 Inspect SGA 収集する SQL:SQL 領域から実 行する SQL 次のビューへのアクセス権が必要です。 SYS.V_$SQLAREA SYS.V_$SQLTEXT_WITH_NEWLINES (または Oracle のバージョンに応じて SYS.V_$SQLTEXT) Oracle 9 以降の SYS.V$_SQL_PLAN ビューにアクセス する必要があります。 収集する SQL:現在実 行している SQL 次のビューへのアクセス権が必要です。 SYS.V_$OPEN_CURSOR SYS.V_$SESSION SYS.V_$SQLAREA SYS.V_$SQLTEXT_WITH_NEWLINES (または Oracle のバージョンに応じて SYS.V_$SQLTEXT) Oracle 9 以降の SYS.V$_SQL_PLAN ビューにアクセス する必要があります。 Oracle 共有 プールを更 新 ALTER SYSTEM 権限が必要です。 実行計画の 情報 Oracle 9 以降が必要です。 SYS.V_$SQL_Plan ビューへのアクセス権が必要です。 Advise Indexes 仮想インデ ックスの生 成 Oracle 8i 以降が必要です。 Manage Plans ストアドアウ トラインの作 成および管 理 Oracle 8i 以降が必要です。 CREATE ANY OUTLINE および DROP ANY OUTLINE 権限が必要です。 SYS.OUTLN_PKG パッケージへのアクセス権が必要で す。 9 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の概要 モジュール 機能 10 権限 次のビューへのアクセス権が必要です。 OUTLN.OL$ SYS.USER_OUTLINES SYS.USER_OUTLINE_HINTS または SYS.DBA_ OUTLINES SYS.DBA_OUTLINE_HINTS 次のビューへの更新権限が必要です。 OUTLN.OL$ OUTLN.OL$HINTS Oracle 9i 以降の場合 OUTLN.OL$NODES ビューへの 更新権限が必要です。 保存された概要カテゴリを有効にするには、ALTER SYSTEM 権限が必要です。 すべてのモジ ュール トレース設 定オプショ ン: Oracle ト レース統計 の収集を有 効化 ALTER SESSION 権限が必要です。 全般 Oracle 8 以降の Oracle 初期パラメータ O7_ DICTIONARY_ACCESSIBILITY が False に設定されて いる場合、SELECT ANY TABLE 権限がある場合で も、SYS のオブジェクトにアクセスできません。この場 合、SYS のオブジェクトにアクセスするには、SELECT ANY DICTIONARY 権限または SELECT_CATALOG_ ROLE が必要です。 2 SQL Optimizer の使用 チュート リアル:Optimize SQL (SQL Rewrite) Optimize SQL での SQL Rewrite モードの使用は 2 つのステップで構成されています。最初のステ ップで、SQL Optimizer はオリジナルの SQL 文の独自の実行計画で意味的に同等の文を生成しま す。生成された各文の Oracle のコスト見積もりが表示されます。2 番目のステップで、SQL Optimizer は文を実行し、文のパフォーマンスをテストします。これにより実行時間およびランタイム 統計情報が提供され、データベース環境に最適な SQL 文が分かります。 ヒント: Oracle コストでは、SQL 文を実行するためのリソース使用の推定のみを行います。コストの 高い文のパフォーマンスが高い場合があるため、生成された文を実行してデータベース環境に最 適な文を確認する必要があります。 ステップ 1:SQL 文 を最 適 化 する 1. メイン ウィンドウの [Optimize SQL] タブを選択します。 2. Optimize SQL スタート ページから SQL Rewrite を選択します。 メモ: スタート ページが表示されない場合、 Rewrite Session] をクリックしてください。 の横の矢印をクリックして [New SQL 3. [Alternative Details] パネルに SQL 文を入力します。 4. をクリックします。 [Select Connection and Schema] ウィンドウが表示されます。 5. 使用する接続とスキーマを選択します。 6. SQL Optimizer が SQL リライト プロセスを完了した後、 SQL 文を生成された文と比較します。 をクリックして、元の ステップ 2:代 替 の SQL 文 をテスト する Batch Run 機能を使用して SQL Optimizer が生成する文を効率的にテストすることができます。選 択した文を実行して、実際の実行統計情報を取得できます。SQL Optimizer は、データベースから 結果セットを取得することなく、これらの統計情報を提供するため、この機能はネットワークトラフィッ クに影響ありません。また、SELECT、 SELECT INTO、INSERT、DELETE、および UPDATE 文は 実行後にロールバックされるトランザクションで実行されるため、これらの文を使用する場合、データ の一貫性は維持されます。 SQL 文をテストするには 1. 元の SQL 文と生成された文を比較した後、 2. をクリックしてすべての SQL 文を実行します。 をクリックします。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 12 ヒント: をクリックして [Optimize SQL] → [Batch Run] を選択して、文を実行する前に Batch Run 設定を確認できます。 3. [Alternatives] パネルで実行統計情報を確認します。 チュート リアル:Optimize SQL (Plan Control) Optimize SQL での Plan Control モードの使用は 2 つのステップで構成されています。最初のステ ップで、SQL Optimizer ソースコードを変更せずに SQL 文の実行計画をいくつか生成します。文を 実行してランタイム統計を取得し、データベース環境に最適な文を特定することができます。2 番目 のステップでは、プランコントロールモードを使用して、Manage Plans モジュールを Oracle プランの ベースラインとして展開できます。 メモ:このトピックでは、注意の必要な情報について重点的に説明しています。すべてのステップお よびフィールドについて説明しているわけではありません。 ステップ 1:実 行 計 画 の生 成 および実 行 1. メイン ウィンドウの [Optimize SQL] タブを選択します。 2. Optimize SQL スタート ページから [Plan Control] を選択します。 メモ: スタート ページが表示されない場合、 Control Session] をクリックしてください。 の横の矢印をクリックして [New Plan 3. [Original SQL] パネルに SQL 文を入力します。 ヒント: SQL 文が PL/SQL ブロックから生成されている場合、[This SQL is contained inside a PL/SQL block] を選択します。このチェックボックスをオンにすると、作成したベースライン の SQL テキストがデータベース内の SQL テキストに一致します。 4. をクリックして、SQL 文の実行計画を生成します。 [Select Connection and Schema] ウィ ンドウが表示されます。 5. 使用する接続とスキーマを選択します。 6. をクリックして、すべての実行計画を実行し、ランタイム統計を取得します。 7. [Plans] パネルでランタイム統計を確認し、最適な文を特定します。 ステップ 2:実 行 計 画 をベースラインとして展 開 1. をクリックします。 2. 追加情報については、以下を確認してください。 Deploy Select a plan to deploy 説明 をクリックして展開する実行計画を選択してください。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 Performance Comparison Mark the plan as 説明 追加情報については、以下を確認してください。 l l l 3. 13 Enabled: この計画を有効するか無効にするかを選択します。 Fixed: この計画を固定として展開するか非固定として展開す るかを選択します。 Not Auto-Purged: 使用されていない場合は、自動パージす るかどうかを選択します。 Plan name 計画名を入力します。 Description この計画の説明を入力します。 をクリックしてプランを Manage Plans に展開します。 チュート リアル:Generate Indexes SQL Optimizer は、SQL シンタックス、テーブル間の関係、データの選択性を分析した後、SQL 文 のインデックスの代わりに使用する列を特定します。SQL Optimizer は特定されたインデックスをイ ンデックスセットに結合します。 代替のインデックスを生成するには 1. メイン ウィンドウの [Optimize SQL] タブを選択します。 2. [Alternative Details] パネルに SQL 文を入力します。 3. をクリックします。 [Select Connection and Schema] ウィンドウが表示されます。 4. 使用する接続とスキーマを選択します。 5. [SQL Information] パネルの [Index Details] を選択して、インデックス生成情報を表示し ます。 6. [Alternatives] パネルでテストするインデックスを選択します。 7. をクリックします。 メモ: Execute 機能を使用して、SQL Optimizer が生成したインデックスセットをテストできま す。データベースにインデックスを物理的に作成、SQL 文を実行、実行統計情報を取得、イ ンデックスを削除することができます。このプロセスによってインデックスを物理的に作成する ため、他の SQL 文のパフォーマンスに影響を与える場合があります。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 14 チュート リアル:Best Practices Best Practices を使用して、SQL 文とデータベースを分析し、データベースのパフォーマンスを改 善するのに一般的な手法を推奨します。推奨する手法がデータベースの他の文のパフォーマンス に影響を与える場合もあるため、実行する前に推奨する手法を確認およびテストする必要がありま す。推奨する手法を評価する場合、次によってデータベースのパフォーマンスが影響を受けることを 考慮してください。 l システム リソース (CPU、I/O、メモリ、データベース構造など) l データの分散度 l システム構造 l SQL 実行計画 l ユーザの使用状況 メモ: Best Practices 機能は、Optimize SQL の SQL Rewrite モードでのみ使用できます。 Best Practices を表示するには 1. メイン ウィンドウの [Optimize SQL] タブを選択します。 2. をクリックします。 ヒント: [Best Practices] を表示するには、 をクリックし、[Optimize SQL] → [Best Practices] → [General] を選択し、[Display Best Practices tab in SQL Rewrite mode] チェック ボックスをオンにします。 3. [Alternative Details] パネルに SQL 文を入力します。 4. をクリックします。 [Select Connection and Schema] ウィンドウが表示されます。 5. 使用する接続とスキーマを選択します。 6. 推奨された手法を確認します。 チュート リアル:Deploy Outlines Optimize SQL の Deploy Outline 機能を使用して、元のソースコードを変更せずに SQL 文のパフ ォーマンスを改善できます。Optimize SQL を使用して、代替の実行計画を使用して、元の SQL 文と 意味的に同等の文である SQL 文を生成できます。データベース環境に最適な文を特定すると、スト アドアウトラインとして展開し、元の SQL 文とともに使用できます。 アウトラインとして展開するには 1. メイン ウィンドウの [Optimize SQL] タブを選択します。 2. の横にある矢印をクリックして [New SQL Rewrite Session] をクリックしてください。 3. [Alternative Details] パネルに元の SQL 文を入力して、 をクリックします。 [Select Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 15 Connection and Schema] ウィンドウが表示されます。 4. 使用する接続とスキーマを選択します。 5. [Alternatives] パネルでアウトラインとして展開する文を右クリックし、[Deploy Outline] を選択 します。[Deploy Outline] ウィンドウが表示されます。 6. 追加情報については、以下を確認してください。 Outline name 保存されたアウトラインの名前を入力します Category をクリックして以前作成されたカテゴリを選択するか、新しいカテゴ リ名を入力します。 注: l l 7. デフォルトのカテゴリ名は SQL_OPTIMIZIER です。 アウトラインを使用するしないに関わらず、SQL 文をテストす るまで無効なカテゴリにアウトラインを追加できます。 をクリックします。 メモ: Manage Plans の Outline Management 機能を使用して、カテゴリを有効および無効にしたり、ア ウトラインを他のカテゴリに移動することができます。 チュート リアル:Batch Optimize SQL このトピックでは、注意の必要な情報について重点的に説明しています。すべてのステップおよび フィールドについて説明しているわけではありません。 SQL を一括で最適化するには 1. メイン ウィンドウの [Batch Optimize] タブを選択します。 2. [Batch Job List] パネルの [Add Code to Optimize] をクリックして [All Types] を選択しま す。[Add Batch Optimize Jobs] ウィンドウが表示されます。 3. 追加情報については、以下を確認してください。 [Connection] ページ Connection 説明 以前作成されたデータベース接続を選択するには ださい。 ヒント: l l [Database 説明 をクリックしてく をクリックして Connection Manager を開き、新しい接続を 作成してください。 接続を選択して、Batch Optimize が生成する SQL 文を実行 することができます。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 16 Objects] ペー ジ Database objects スキーマ、データベース オブジェクト タイプ、個別のデータベース オ ブジェクトを選択し、 をクリックしてオブジェクトを追加します。 ヒント: l l Execute using schema [Source Code] ページ Source code type Add by file Add by directory データベース オブジェクトを参照するには ださい。 をクリックしてく データベース権限により選択したすべてのデータベース オブ ジェクトをスキャンできるかどうかを決定します。 をクリックして SQL 文を実行するスキーマを選択します。 説明 [Text/Binary files]、[Oracle SQL *Plus Script] または [COBOL programming source code] をクリックして、スキャンするファイルまたは ディレクトリのソース コード タイプを指定します。 をクリックして、追加したいファイルを参照します。 をクリックして、追加したいディレクトリを参照します。 メモ:[Include Sub-directory] チェックボックスをオンにして、サブディ レクトリをスキャンします。 Scan using schema をクリックして、スキャンするスキーマを選択します。 Execute using schema をクリックして SQL 文を実行するスキーマを選択します。 [SQL Text] ページ SQL text 説明 SQL 文のテキストを入力します。 Scan using schema をクリックして、スキャンするスキーマを選択します。 Execute using schema をクリックして SQL 文を実行するスキーマを選択します。 [Scan SQL] ページ Group 説明 スキャンする SQL 文を含むスキャナグループを選択します。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 Scan using schema をクリックして、スキャンするスキーマを選択します。 Execute using schema をクリックして SQL 文を実行するスキーマを選択します。 [Inspect SGA] ページ Group 説明 スキャンする SQL 文を含むインスペクタ グループを選択します。 Scan using schema をクリックして、スキャンするスキーマを選択します。 Execute using schema をクリックして SQL 文を実行するスキーマを選択します。 [Foglight Performance Analysis for Oracle] ペー ジ Select a database to search for the repository used to store captured SQL 17 説明 をクリックして以前作成されたデータベース接続を選択し、[Check for PA Repository] をクリックしてリポジトリを検索します。 ヒント: をクリックして Connection Manager を開き、新しい接続を 作成してください。 メモ: Batch Optimize を使用して、バッチに構成することによってジョブを管理できま す。[Batch Info] ページを使用して、新しいバッチを作成するか、現在のジョブを既存の バッチに追加します。 4. [Finish ]をクリックして Batch Optimize を開始します。 Batch Optimize は作成したジョブをスキャン、文を分類および最適化し、生成した SQL 文 を実行します。 注: l l Batch Optimize オプション ページの [Automatically start extracting SQL when job is added] チェックボックスをオンにすると自動的にスキャンが開始されます。Batch Optimize は、デフォルトではこのチェックボックスはオンになっています。 Batch Optimize では、SQL 文を選択して、Batch Optimize オプション ページで選択 された分類タイプに基づいて最適化します。Batch Optimize では、デフォルトで Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 18 Problematic and Complex SQL 分類タイプが選択されています。 l Batch Optimize では、Batch Optimize オプション ページで選択された分類タイプに 基づいて生成する SQL 文を実行します。Batch Optimize では、デフォルトで SELECT 文が選択されています。 5. [Batch Job List] パネルで [Batch List] を選択し、作成したジョブに関する情報を表示し ます。 [Batch List] パネルは、ジョブに関する情報をバッチごとに並べ替えます。追加情報 は、[Jobs Improved] パネルに表示されます。 6. バッチ リスト ノードからバッチを選択すると、[Job List] パネルにバッチの詳細が表示され ます。 [Job List] パネルにバッチの各ジョブのタイプ、ジョブのステータス、各ジョブの短縮時間が 表示されます。追加情報は、選択したジョブの [SQL Classification] パネルおよび [Cost and Elapsed Time Comparison] パネルに表示されます。 ヒント: [Job List] パネルのジョブを選択して て、置換スクリプトを生成します。 をクリックし、最適化された SQL 文を使用し 7. バッチ ノードからジョブを選択して、ジョブの詳細を表示します。 [SQL List] パネルには、選択したジョブの SQL に関する SQL 分類情報が表示されま す。[Original SQL Text] パネルおよび [Best Alternative SQL Text] パネルを使用して、元の SQL 文を Batch Optimize が生成した最適な文とを比較します。 ヒント: [SQL List] パネルで SQL 文を選択し、 し、すべての SQL 文を表示します。 をクリックして文を Optimize SQL に送信 チュート リアル:Scan SQL Scan SQL を使用すると、データベースオブジェクトに埋め込まれているアプリケーションソースコー ドや、バイナリファイルに保存されている Oracle のシステムグローバルエリアから取得した SQL 文 や、または Foglight Performance Analysis リポジトリに保存された文を自動的に抽出することによっ て、データベース環境の問題のある SQL 文を特定することができます。Scan SQL は、実行された 文の実行計画を取得および分析し、複雑性に従って分類します。Scan SQL が問題があるまたは複 雑であるとして分類する文を Optimize SQL に送信できます。 メモ:このトピックでは、注意の必要な情報について重点的に説明しています。すべてのステップお よびフィールドについて説明しているわけではありません。 SQL をスキャンするには 1. メイン ウィンドウの [Scan SQL] タブを選択します。 2. をクリックして以前作成されたグループを選択するか、 新しいグループを作成します。 をクリックしてスキャンジョブの メモ:Scan SQL を使用すると、スキャンジョブをグループに整理することによって、管理する ことができます。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 3. 19 をクリックします。[Add Scanner Jobs] ウィンドウが表示されます。 4. 追加情報については、以下を確認してください。 [Database Objects] ペー ジ Database objects 説明 スキーマ、データベース オブジェクト タイプ、個別のデータベース オ ブジェクトを選択し、 をクリックしてオブジェクトを追加します。 ヒント:データベース オブジェクトを参照するには ださい。 [Source Code] ページ Source code type Add by file Add by directory Scan using schema Inspect SGA ページ Group Scan using schema [Foglight Performance Analysis for Oracle] ペー ジ Select a database to search for the repository used to store captured SQL をクリックしてく 説明 [Text/Binary files]、[Oracle SQL *Plus Script] または [COBOL programming source code] をクリックして、スキャンするファイルまたは ディレクトリのソース コード タイプを指定します。 をクリックして、追加したいファイルを参照します。 をクリックして、追加したいディレクトリを参照します。 メモ:[Include Sub-directory] チェックボックスをオンにして、サブディ レクトリをスキャンします。 をクリックして、スキャンするスキーマを選択します。 説明 スキャンする SQL 文を含むインスペクタ グループを選択します。 をクリックして、スキャンするスキーマを選択します。 説明 をクリックして以前作成されたデータベース接続を選択し、[Check for PA Repository] をクリックしてリポジトリを検索します。 ヒント: をクリックして Connection Manager を開き、新しい接続を 作成してください。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 Scan using schema 20 をクリックして、スキャンするスキーマを選択します。 5. [Finish ]をクリックしてスキャンを開始します。 6. [Job List] パネルからスキャンジョブを選択して、追加情報を表示します。 [Job List] パネルに表示されるのは、検出された SQL 文の数、各文の分類です。 ヒント: ます。 7. をクリックして異なるグループを選択し、異なるグループのスキャンジョブを表示し [SQL List] パネルで SQL 文を選択すると、[SQL Text] パネルおよび [Execution Plan] パネ ルに選択された文の追加情報が表示されます。 ヒント: [SQL Text] パネルの をクリックし、選択した文を Optimize SQL に送信します。 チュート リアル:Inspect SGA Inspect SGA Oracle の System Global Area から実行した SQL 文または Oracle のオープンカーソ ルから現在実行している SQL 文を取得します。文を取得すると、Inspect SGA に文とランタイム統計 が表示され、データベース環境でリソースを多く使用する文を特定できます。 メモ:このトピックでは、注意の必要な情報について重点的に説明しています。すべてのステップお よびフィールドについて説明しているわけではありません。 以前実行された SQL 文を取得するには 1. メイン ウィンドウの [Inspect SGA] タブを選択します。 注:以前実行した SQL 文を取得するには、SYS.V_$SQLAREA および SYS.V_$SQLTEXT_ WITH_NEWLINES または SYS.V_$SQLTEXT を検索する権限が必要です。 2. 3. をクリックしてグループを選択するか、 プを作成します。 をクリックして [Group] リストに新しいグルー をクリックします。Add Inspect SGA Job ウィザードが表示されます。 4. ウィザードで、次のフィールドを入力します。 [General Information] ペー ジ Job type [Collecting Criteria] ページ Collecting Criteria 説明 [Executed SQL from SQL Area] オプションを選択します。 説明 [Top n records] オプションを選択肢、表示するレコード数を入力 します。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 First by [Collection Time] ページ Collection Time 5. 21 すべてのレコードが表示されていない場合、 をクリックして SQL 文を抽出するために使用する統計を選択します。 メモ: SGA が大きいほど処理に時間がかかります。 説明 [Start collecting when you click the Inspect button] オプションを 選択します。 をクリックして SQL 文とランタイム統計を取得します。 6. [SQL Statistics] パネルで最適化が必要な文を選択し、 をクリックします。 ヒント:Batch Optimize で Inspect SGA ジョブを追加し、コレクションですべての SQL 文 を最適化します。 チュート リアル:Advise Indexes Advise Indexes では、SQL 文のグループを分析し、グループの最適な共通インデックス セットを 設定します。 ファイルで SQL 文を使用してインデックス セットを生成するには 1. 分析する SQL 文をファイルに追加します。 2. メイン ウィンドウの [Advise Indexes] タブを選択します。 3. [Create an Advise Indexes session] をクリックします。[Create a New Advise Indexes] ウ ィンドウが表示されます。 4. 使用する接続を選択し、セッションの名前を入力します。 5. をクリックしてファイルを選択します。 6. をクリックして、SQL 文のグループの仮想インデックスのセットを生成します。 Advise Indexes は、文の実際の実行計画を取得、仮想インデックスを作成、仮想インデックス に基づいた仮想実行計画を取得します。これにより、実際の実行計画のコストおよびオプテ ィマイザパスを、仮想インデックスに基づいた仮想実行計画を比較することができます。 7. をクリックして SQL 文を実行します。 Advise Indexes は、文を実行してランタイム統計を取得し、インデックスを物理的に作成して 文をもう一度実行します。Advise Indexes は実行後にインデックスを削除します。 メモ: データベースでインデックスを物理的に作成するプロセスは、他の SQL 文のパフォー マンスに影響を与えます。 8. [Execution Statistics] をクリックして、SQL 文の実行統計を確認します。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 22 チュート リアル:Analyze Impact Analyze Impact は、データベース環境のパフォーマンスの変化を追跡できるよう、SQL 文の実行計 画を保存します。このモジュールを使用して、発生する前後に変更の影響を確認できます。 メモ:Analyze Impact は、次のディレクトリに保存された実行計画を格納します。C:\Documents and Settings\user\Application Data\Quest Software\version\Quest SQL Optimizer for Oracle\Analyzer Data. Impact Analysis を実行するには 1. メイン ウィンドウの [Analyze Impact] タブを選択します。 2. をクリックしてグループを選択するか、 をクリックして [Group] リストに新しいグループを 作成します。Add SQL ウィザードが表示されます。 3. ウィザードで、次のフィールドを入力します。 [General] ページ Name 説明 SQL 文の名前を入力します。 ヒント: SQL 文を保存するフォルダを新規作成する場合は、 ックします。 [SQL Information] ページ [SQL] パネ ル をクリ 説明 SQL 文を入力して をクリックし、SQL シンタックスをチェックして実 行計画を取得します。 4. [Finish]をクリックして SQL 文を保存します。 メモ: 保存された SQL 文は Analyze Impact の左側の [SQL] タブに表示されます。 5. Analyze Impact の左側の [Analyzer] タブを選択します。Add Analyzer ウィザードが表示 されます。 6. ウィザードで、次のフィールドを入力します。 [General] ページ Name 説明 アナライザの名前を入力します。 ヒント: アナライザ保存するフォルダを新規作成する場合は、 リックします。 [SQL] ページ 説明 をク Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 Select SQL 23 アナライザに追加する SQL 文のチェックボックスをオンにします。 ヒント: をクリックして SQL 文を追加します。 7. Add Analyzer ウィザードの [Plan Snapshot] ページを選択します。[Plan Snapshot] ページを 始めて選択すると、Add Baseline Snapshot ウィザードが表示されます、. メモ:Analyze Impact は、作成するベースライン スナップショットをアナライザの他のスナッ プを比較します。 8. ウィザードで、次のフィールドを入力します。 [General] ページ Name [Connection Information] ページ Connection 説明 ベースライン スナップショットの名前を入力します。 説明 [Current Connection] オプションを選択します。 メモ: このプロセスを使用して、ベースライン スナップショットを作成した後に Add Plan Snapshot ウィザードを終了することができます。Add Analyzer ウィザードの [Plan Snapshot] ページの をクリックすると、Add Plan Snapshot ウィザードが表示されま す。 9. [Finish]をクリックしてベースライン スナップショットを保存します。 10. Add Analyzer ウィザードの [Finish] をクリックしてアナライザを保存します。[Execution Plan Generation Summary] ウィンドウが表示されます。 11. エラーについては、[Execution Plan Generation Summary] ウィンドウの情報を確認しま す。[OK]をクリックして、ウィンドウを閉じます。 12. [Analyzer] タブの [SQL Repository] ノードから保存した SQL 文を選択します。 ベースライン実行計画を、作成した各スナップショットの実行計画を比較します。 13. [Analyzer] タブの [Snapshot Diagnostics] ノードで作成したスナップショットを選択します。 作成した各スナップショットの保存した SQL 文のパフォーマンスの変化に関する概要を確 認できます。 チュート リアル: Analyze Index Impact データベースにインデックスを物理的に作成する前に、SQL 文の実行計画に対する新しいインデッ クス作成の影響を分析できます。まず Analyze Impact を使用して、SQL 文の現在の実行計画を保 存します。仮想インデックスを作成し、インデックス作成の前後で実行計画を比較して、影響を確認 できます。Optimize SQL または Advise Indexes からインデックスの影響の分析を実行できます。 Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 24 インデックスの影響の分析を実行するには 1. Analyze Impact でアナライザを作成します。 詳細は、オンライン ヘルプの "チュートリア ル:Analyze Impact" を参照してください。 2. Optimize SQL のインデックス生成機能を使用して、インデックスを生成します。 詳細は、オ ンライン ヘルプの "チュートリアル:Generate Indexes" を参照してください。 3. Optimize SQL の [Alternatives] パネルで分析に使用する仮想インデックスを選択します。 4. Optimize SQL で が表示されます。 5. をクリックします。Analyze Impact に [Select a Group] ウィンドウ をクリックして分析する SQL リポジトリを含むグループを選択します。Impact Analysis Add Snapshot ウィザードが表示されます。 6. ウィザードで、次のフィールドを入力します。 [General] ページ [Analyzer] ウィンドウ [Connection Information] ページ Connection [Virtual Indexes] ペー ジ Virtual Indexes 説明 Analyzer ノードから以前作成されたアナライザを選択します。 説明 [Current Connection] オプションを選択します。 説明 分析に必要な場合、追加のインデックスセットを選択します。 7. [Finish]をクリックしてウィザードを終了します。 チュート リアル:Save SQL Statements to Impact Analyzer SQL 文を Analyze Impact SQL リポジトリに保存して、異なるデータベース環境での SQL 文実行計 画に対する変更を追跡および分析できます。これにより、さまざまなデータベース環境の全体のパフ ォーマンスに与える影響を確認できます。 SQL 文を SQL リポジトリに保存するには 1. Scan SQL または Inspect SGA でジョブを選択します。 2. Scan SQL または Inspect SGA で をクリックします。Analyze Impact に [Select a Group] Quest SQL Optimizer for Oracle ユーザーガイド SQL Optimizer の使用 25 ウィンドウが表示されます。 3. をクリックして SQL 文のグループを選択します。Save SQL to Analyze Impact ウィ ザードが表示されます。 4. SQL 文のウィザードの [General] ページの SQL ウィンドウで、フォルダを選択します。 ヒント: をクリックして SQL 文の新しいフォルダを作成します。 チュート リアル:Manage Outlines [Outline Management] には、Optimize SQL で SQL Rewrite モードを使用して展開されたアウト ラインが表示されます。 Manage Outlines を実行するには 1. メイン ウィンドウの [Manage Plans] タブを選択します。 ヒント: [Manage Plans] オプションページの [Show Manage Plans] チェックボックスをオンに すると、メインウィンドウに [Manage Plans] タブが表示されます。 2. [Manage Plans] をクリックします。[Create a New Manage Plans Session] ウィンドウが表 示されます。 3. 使用する接続を選択します。 4. [Outlines Management]タブを選択します。 5. [Category/Outline] パネルでカテゴリを選択します。 選択したカテゴリを有効化、削除、または名前を変更することができます。 6. カテゴリノードから保存されたアウトラインを選択します。 選択した保存カテゴリを移動、名前変更することができます。 付録:Quest へのお問い合わせ Quest サポート へのお問 い合 わせ Quest サポートは、Questソフトウェアの体験版をお持ちのお客様、または市販版をご購入になり、 有効なメンテナンス契約を結ばれたお客様が利用できます。Quest サポートは、弊社のセルフサー ビスポータルである SupportLink で、24 時間年中無休で対応しておりま す。http://support.quest.com の SupportLink へアクセスしてください。 SupportLink では、次のことを実行できます。 l オンラインの Knowledgebase で多くのソリューションを利用 l 最新のリリースおよびサービスパックをダウンロード l サポートケースを作成、更新およびレビュー サポート プログラム、オンライン サービス、連絡方法、およびポリシーと手順の詳細は、『Global Support Guide』を参照してください。このガイドは次の場所にあります。http://support.quest.com Quest Software へのお問 い合 わせ 電子メールの宛先 [email protected] 住所 Quest Software, Inc. 本社 5 Polaris Way Aliso Viejo, CA 92656 USA Web サイト www.quest.com 地域および国際事業所の情報につきましては、当社の Web サイトを参照してください。 Quest Software について Quest Software は、 世界中の 100,000 を超えるお客様の IT 管理の簡略化、コスト削減に貢献して います。当社の革新的ソリューションによって、困難な IT 管理上の問題を容易に解決し、お客様の 物理、仮想、クラウド環境に費やす時間および費用の負担を軽減しています。Quest の詳細につい ては、www.quest.com をご覧ください。 索引 インデックスのアドバイス チュートリアル 21 インデックスの影響の分析 D チュートリアル deploy outline チュートリアル 14 23 インデックス生成 チュートリアル 13 M カ行 Manage Outlines チュートリアル 25 権限、データベース サ行 O 実行 optimize SQL について 5 SQL Optimizer チュートリアル データベース権限 Scan SQL チュートリアル 11 タ行 S 18 SGA の調査 8 ハ行 プランコントロール チュートリアル 20 SQL Optimizer チュートリアル 12 ベスト プラクティス チュートリアル 11 について チュートリアル 14 5 マ行 SQL の最適化 batch optimize 18 SQL Optimizer チュートリアル 11 パフォーマンスの評価 SQL 文のテスト 7 7 ア行 アナライザ 影響の分析チュートリアル 22 一括最適化 チュートリアル 8 15 問題のある SQL の特定 検索するプロセス 7