Oracle® Database

2日でパフォーマンス・チューニング・ガイド

12cリリース1 (12.1)

B71300-05(原本部品番号:E55047-05)

2017年1月

Oracle Database 2日でパフォーマンス・チューニング・ガイド, 12cリリース2 (12.1)

B71300-05

Copyright © 2007, 2017, Oracle and/or its affiliates.  All rights reserved.

原本著者: Rajesh Bhatiya, David McDermid, Lance Ashdown, Immanuel Chan

原本協力者: Debaditya Chatterjee、Maria Colgan、Dinesh Das、Kakali Das、Karl Dias、Mike Feng、Yong Feng、Andrew Holdsworth、Kevin Jernigan、Caroline Johnston、Aneesh Kahndelwal、Sushil Kumar、Sue KLee、Herve Lejeune、Ana McCollum、Colin McGregor、Mughees Minhas、Valarie Moore、Deborah Owens、Mark Ramacher、Uri Shaft、Susan Shepard、Janet Stern、Stephen Wexler、Graham Wood、Khaled Yagoub、Hailing Yu、Michael Zampiceni

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

Oracle Database 2日でパフォーマンス・チューニング・ガイドのこのリリースでの変更点

- Oracle Database 12cリリース1 (12.1.0.2)での変更点

- 新機能

- その他の変更

- Oracle Database 12cリリース1 (12.1.0.1)での変更点

- 新機能

- サポート対象外機能

- その他の変更

第I部 スタート・ガイド

1概要

- このマニュアルについて

- Oracle DBAの一般的なタスク

- データベースをチューニングするツール

- データベースのホームページのアクセス

2 Oracle Databaseのパフォーマンス・メソッド

- 自動ワークロード・リポジトリを使用したデータベース統計の収集

- 時間モデル統計

- 待機イベント統計

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

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

- 高負荷SQL統計

- Oracleパフォーマンス・メソッドの使用

- データベースのチューニング準備

- データベースの事前のチューニング

- データベースの事後チューニング

- SQL文のチューニング

- データベースで検出されるパフォーマンスにおける一般的な問題

第II部 データベースの事前チューニング

3 データベースのパフォーマンスの自動監視

- 自動データベース診断モニターの概要

- ADDM分析

- ADDM推奨

- Oracle Real Application ClustersのADDM

- 自動データベース診断モニターの構成

- ADDMを有効にする初期化パラメータの設定

- DBIO_EXPECTEDパラメータの設定

- AWRスナップショットの管理

- スナップショットの作成

- スナップショット設定の変更

- 自動データベース診断モニターの分析の確認

- 自動データベース診断モニターの結果の説明

- 自動データベース診断モニターの推奨事項の実装

- スナップショット統計の表示

4 リアルタイムなデータベースのパフォーマンスの監視

- ユーザー・アクティビティの監視

- 上位SQLの監視

- 上位セッションの監視

- 上位サービスの監視

- 上位モジュールの監視

- 上位アクションの監視

- 上位クライアントの監視

- 上位PL/SQLの監視

- 上位ファイルの監視

- 上位オブジェクトの監視

- インスタンス・アクティビティの監視

- スループットの監視

- I/Oの監視

- 関数によるI/Oの監視

- タイプ別のI/Oの監視

- コンシューマ・グループ別のI/Oの監視

- パラレル実行の監視

- サービスの監視

- ホスト・アクティビティの監視

- CPU使用率の監視

- メモリー使用率の監視

- ディスクI/O使用率の監視

- データベース・アクティビティのスパイクの原因の確認

- 「データベース・パフォーマンス」ページのカスタマイズ

5 リアルタイムなデータベース操作の監視

- データベース操作の監視について

- データベース操作のタイプ

- データベース操作の監視の目的

- データベース操作の監視の有効化

- データベース操作の属性

- データベース操作の作成

- Cloud Controlでのデータベース操作の監視

- 複合データベース操作のSQL実行の詳細の表示

- SQL文のSQL実行の詳細の表示

- PL/SQL文のSQL実行の詳細の表示

6 パフォーマンス・アラートの監視

- パフォーマンス・アラートのメトリックしきい値の設定

- アラートへの対応

- アラートのクリア

第III部 データベースの事後チューニング

7 データベースのパフォーマンスの手動監視

- 現在のデータベースのパフォーマンスを分析するADDMの手動実行

- 過去のデータベースのパフォーマンスを分析するADDMの手動実行

- 前のADDM結果へのアクセス

8 一時的なパフォーマンスの問題の解決

- アクティブ・セッション履歴の概要

- アクティブ・セッション履歴レポートの実行

- アクティブ・セッション履歴レポート

- 上位イベント

- 上位ユーザー・イベント

- 上位バックグラウンド・イベント

- ロード・プロファイル

- 上位SQL

- 上位セッション

- 上位DBオブジェクト/ファイル/ラッチ

- 上位DBオブジェクト

- 上位DBファイル

- 上位ラッチ

- 一定時間のアクティビティ

- リアルタイムの重大なパフォーマンスの問題の診断

9 時間の経過によるパフォーマンス低下の解決

- ベースラインの管理

- ベースラインの作成

- 単一ベースラインの作成

- 繰返しベースラインの作成

- ベースラインの削除

- ベースラインのしきい値統計の計算

- ベースラインのメトリックしきい値の設定

- デフォルトの変動ベースラインのメトリックしきい値の設定

- 選択したベースラインのメトリックしきい値の設定

- AWR期間の比較レポートの実行

- ベースラインと他のベースラインの比較またはスナップショットのペアの比較

- 現在のシステム・パフォーマンスのベースライン期間との比較

- スナップショットの2つのペアの比較

- AWR期間の比較レポートの使用

- AWR期間の比較レポートのサマリー

- スナップショット・セット

- ホスト構成の比較

- キャッシュ・サイズ

- ロード・プロファイル

- 上位タイム・イベント

- AWR期間の比較レポートの詳細

- AWR期間の比較レポートの補足情報

10 自動ワークロード・リポジトリ・ウェアハウスを使用したパフォーマンス・レポートの生成

- AWRウェアハウスの設定

- ソース・データベースの操作

- AWRウェアハウスへのスナップショットのアップロード

- AWRウェアハウスでの「パフォーマンス」ページの使用

- インシデントおよびエラーの監視と調査

- AWRウェアハウスのベスト・プラクティス

- データベースのベスト・プラクティス

- メモリー管理

- 記憶域要件

- バックアップ

- REDOログ・サイズ

- 統計収集

- job_queue_processesパラメータ

- アクセス制御

- Enterprise Managerのベスト・プラクティス

- AWRウェアハウス資格証明

- ソース・データベース資格証明

- AWRウェアハウスのステージングの場所

- ネットワーク待機時間

第IV部 SQLチューニング

11 高負荷のSQL文の識別

- ADDMの検出結果に基づく高負荷SQL文の識別

- 上位SQLに基づく高負荷SQL文の識別

- SQL文の待機クラスごとの表示

- SQL文の詳細の表示

- SQL統計の表示

- SQL統計のサマリー

- 一般的なSQL統計

- 待機ごとのアクティビティの統計および時間ごとのアクティビティの統計

- 経過時間ブレークダウンの統計

- 共有カーソル統計および実行統計

- その他のSQL統計

- セッション・アクティビティの表示

- SQL実行計画の表示

- 計画管理の表示

- チューニング履歴の表示

12 SQL文のチューニング

- SQLチューニング・アドバイザを使用したSQL文のチューニング

- SQLチューニング・アドバイザを使用したSQLの手動チューニング

- 自動SQLチューニング結果の表示

- SQLチューニング・セットの管理

- SQLチューニング・セットの作成

- SQLチューニング・セットの作成: オプション

- SQLチューニング・セットの作成: ロード・メソッド

- カーソル・キャッシュからの増分的なアクティブなSQL文のロード

- カーソル・キャッシュからのSQL文のロード

- AWRスナップショットからのSQL文のロード

- AWRベースラインからのSQL文のロード

- ユーザー定義のワークロードからのSQL文のロード

- SQLチューニング・セットの作成: フィルタ・オプション

- SQLチューニング・セットの作成: スケジュール

- SQLチューニング・セットの削除

- SQLチューニング・セットの転送

- SQLチューニング・セットのエクスポート

- SQLチューニング・セットのインポート

- SQLプロファイルの管理

- SQL計画ベースラインの管理

- SQL計画ベースラインの自動的な取得

- SQL計画ベースラインの手動のロード

- SQL計画の展開

13 データ・アクセス・パスの最適化

- SQLアクセス・アドバイザの実行

- 初期オプションの選択

- ワークロード・ソースの選択

- キャッシュからのSQL文の使用

- 既存のSQLチューニング・セットの使用

- 仮説ワークロードの使用

- フィルタ・オプションの適用

- リソース使用量のフィルタの定義

- ユーザーのフィルタの定義

- 表のフィルタの定義

- SQLテキストのフィルタの定義

- モジュールのフィルタの定義

- アクションのフィルタの定義

- 推奨オプションの指定

- タスクおよびスケジュール・オプションの指定

- SQLアクセス・アドバイザ推奨事項の確認

- SQLアクセス・アドバイザ推奨事項の確認: サマリー

- SQLアクセス・アドバイザ推奨事項の確認: 推奨事項

- SQLアクセス・アドバイザ推奨事項の確認: SQL文

- SQLアクセス・アドバイザ推奨事項の確認: 詳細

- SQLアクセス・アドバイザ推奨事項の実装

索引

はじめに

ここでは、次の内容について説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

このマニュアルは、Oracle Databaseのパフォーマンスのチューニングおよび最適化を行うOracle Database管理者(DBA)を対象としています。このマニュアルを使用する前に、Oracle Databaseの管理について理解しておく必要があります。

特に、次のユーザーを対象としています。

- データベースのパフォーマンス・チューニングのスキルを必要とするOracle DBA

- Oracle Databaseを初めて使用するDBA

参照:

- データベース管理の詳細は、『Oracle Database管理者ガイド』を参照してください。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

このマニュアルで説明する内容の詳細は、次のマニュアルを参照してください。

- 『Oracle Database管理者ガイド』

- 『Oracle Database概要』

- 『Oracle Databaseパフォーマンス・チューニング・ガイド』

- 『Oracle Database SQLチューニング・ガイド』

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ドキュメントのタイトル、強調またはユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

Oracle Database 2日でパフォーマンス・チューニング・ガイドのこのリリースでの変更点

ここでは、次の内容について説明します。

- Oracle Database 12cリリース1 (12.1.0.2)での変更点

- Oracle Database 12cリリース1 (12.1.0.1)での変更点

Oracle Database 12cリリース1 (12.1.0.2)での変更点

Oracle Database 12cリリース1 (12.1.0.2)のOracle Database 2日でパフォーマンス・チューニング・ガイドの変更点は、次のとおりです。

新機能

このリリースの新機能は次のとおりです。

- インメモリー列ストアの管理性のサポート
新機能のOracle Database In-Memory Column Store (IM列ストア)を使用すると、分析、データ・ウェアハウスおよびオンライン・トランザクション処理(OLTP)の各アプリケーションのデータベース・パフォーマンスが向上します。

SQLモニター・レポート、ASHレポートおよびAWRレポートでは、様々なインメモリー処理の統計が表示されるようになりました。

- SQLモニター・レポートのインメモリー統計: 「時間と待機の統計」パネルの「アクティビティ%」、「計画統計」表の「アクティビティ」列、およびSQLモニター・レポートの「アクティビティ」タブに、インメモリー問合せ処理を実行中にSQLコマンドによって使用されたCPUが表示されます。SQLモニター・レポートで適応計画がサポートされるようになりました。実行計画には、計画の現在のステータスに応じて、「解決中」アイコンまたは「解決済」アイコンが表示されます。「計画統計」タブのドロップダウン・リストには、現在の計画、最終計画および完全計画が表示されます。また、「計画メモ」ボタンをクリックすると、SQL文の実行計画に生成されたメモが表示されます。

- ASHレポートのインメモリー統計: ASHレポートのヘッダー表の「メモリー内領域」列に、インメモリー・プールのサイズが表示されます。「上位のイベント」、「上位SQL」および「時系列のアクティビティ」の各セクションには、様々なインメモリー処理のCPU使用率が表示されます。

- AWRレポートのインメモリー統計: AWRレポートには、「インメモリー・セグメント統計」という新しいセクションが含まれ、そこには様々な属性(スキャン、DBブロック変更、CUの移入、CUの再移入など)に基づいた、インメモリー・セグメントの使用率が表示されます。「時間モデル統計」セクションには、インメモリーCPU使用率に関する統計が、「インスタンス・アクティビティ統計」セクションには、インメモリー・アクティビティに関する統計がそれぞれ表示されます。

その他の変更

このリリースに追加された変更は、次のとおりです。

- 「ASH分析」ページの変更点
「ASH分析」ページの「平均アクティブ・セッション」グラフで、CPU待機クラスをクリックすると、様々なインメモリー処理に基づいたCPU使用率の内訳と、インメモリー処理以外の処理で使用されたCPU合計が表示されるようになりました。

詳細は、「データベース・アクティビティのスパイクの原因の確認」を参照してください。

Oracle Database 12cリリース1 (12.1.0.1)での変更点

Oracle Database 12cリリース1 (12.1.0.1)のOracle Database 2日でパフォーマンス・チューニング・ガイドの変更点は、次のとおりです。

新機能

このリリースの新機能は次のとおりです。

- リアルタイム・データベース操作監視
リアルタイム・データベース操作監視では、アクティブで最近完了したデータベース操作を追跡およびレポートします。単一のSQLまたはPL/SQL文の実行の詳細を監視できます。バッチ・ジョブなどの長時間の操作または抽出、変換およびロード(ETL)処理の進行状況を監視することもできます。

この機能の詳細は、「リアルタイムなデータベース操作の監視」を参照してください。

サポート対象外機能

Oracle Enterprise Manager Database Controlは、Oracleではサポートされていません。このリリースでサポートされていない機能の完全なリストは、『Oracle Databaseアップグレード・ガイド』を参照してください。

その他の変更

このリリースに追加された変更は、次のとおりです。

- Oracle Enterprise Manager Cloud Control
前のリリースのOracle Databaseでは、Oracle Enterprise Manager Database Control (Database Control)を使用して、グラフィカル・ユーザー・インタフェースからデータベースのパフォーマンス・チューニングを管理していました。このリリースでは、Oracle Enterprise Manager Cloud Control (Cloud Control)のグラフィカル・ユーザー・インタフェースを使用することができます。Cloud Controlは、Database Controlに比べてより豊富な機能を備えています。このガイドの手順では、Cloud Controlを使用します。

Oracle Databaseとは別にCloud Controlをインストールする必要があります。

参照:

『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』

- 「ASH分析」ページ
Cloud Controlには、最近のアクティブ・セッション履歴情報がグラフィカルに表示される、「ASH分析」ページがあります。

詳細は、「データベース・アクティビティのスパイクの原因の確認」を参照してください。

- リアルタイムADDM
Cloud Controlには、データベースの遅延やハングに関する問題を診断するため、自動データベース診断監視をリアルタイムに実行できる、「リアルタイムADDM」ページがあります。

詳細は、「リアルタイムの重大なパフォーマンスの問題の診断」を参照してください。

第I部 スタート・ガイド

第I部では、このマニュアルの概要を示し、Oracle Databaseのパフォーマンス・メソッドについて説明します。内容は次のとおりです。

- 概要

- Oracle Databaseパフォーマンス・メソッド

1 概要

Oracle Database管理者(DBA)は、Oracle Databaseのパフォーマンスを適切に保つ責任があります。データベースをチューニングして要求されるパフォーマンス・レベルを満たすことは、特に新しくOracle Databaseを使用することになったDBAにとって難しい問題です。『Oracle Database 2日でパフォーマンス・チューニング・ガイド』は、Oracle Diagnostics Pack、Oracle Tuning PackおよびOracle Enterprise Manager Cloud Control (Cloud Control)で用意されている機能を使用して、日常のデータベース・パフォーマンス・チューニング・タスクの実行方法を学習するクイック・スタート・ガイドです。

この章の内容は次のとおりです。

- このマニュアルについて

- Oracle DBAの一般的なタスク

- データベースをチューニングするツール

- データベースのホームページのアクセス

このマニュアルについて

このマニュアルを使用する前に、次のことを行っておく必要があります。

- Oracle Databaseの管理について理解しておきます。詳細は、『Oracle Database管理者ガイド』を参照してください。

- 「データベースをチューニングするツール」に示されている必要な製品およびツールの入手。

『Oracle Database 2日でパフォーマンス・チューニング・ガイド』はタスク指向です。チューニング・タスクの実行が必要な理由および時期について説明することを目的としています。

このマニュアルでは、Oracle Databaseのあらゆる概要について包括的に説明してはいません。このような情報については、『Oracle Database概要』を参照してください。

このマニュアルでは、基本的なOracle Databaseの管理タスクについては説明していません。このような情報については、『Oracle Database管理者ガイド』を参照してください。

このガイドで使用する主なインタフェースはEnterprise Manager Cloud Controlコンソールです。このマニュアルでは、Oracle Databaseのパフォーマンスに関するすべてのチューニング機能については説明していません。また、このマニュアルで説明しているチューニング・オプションと同等である、使用可能なアプリケーション・プログラミング・インタフェース(API)についても説明していません。このような情報については、『Oracle Databaseパフォーマンス・チューニング・ガイド』および『Oracle Database SQLチューニング・ガイド』を参照してください。

Oracle DBAの一般的なタスク

Oracle DBAとして、次のタスクに関わることが予想されます。

- Oracleソフトウェアのインストール

- Oracle Databaseの作成

- 新しいリリースへのデータベース・ソフトウェアのアップグレード

- データベースの起動および停止

- データベースの記憶域構造の管理

- ユーザー・アカウントおよびセキュリティの管理

- 表、索引、ビューなどのスキーマ・オブジェクトの管理

- データベースのバックアップおよびリカバリの実行(必要時)

- データベースの状況の事前の監視および予防または修正アクションの実行(必要な場合)

- データベースのパフォーマンスの監視およびチューニング

このマニュアルでは、前述のリストの最後の2つのタスクを実行する方法を説明します。

データベースをチューニングするツール

このマニュアルは、Oracle Databaseのパフォーマンスを迅速で効率的にチューニングおよび最適化することを目的としています。

このマニュアルを使用するには、次の製品、ツール、機能およびユーティリティを入手する必要があります。

- Oracle Database 12cリリース1 (12.1) Enterprise Edition
Oracle Databaseは企業クラスのパフォーマンスを持ち、クラスタ・サーバー構成および単一サーバー構成で拡張性および信頼性を備えています。このガイドで使用されている多くのパフォーマンス機能が含まれています。

- Oracle Enterprise Manager Cloud Control
データベースを管理する主要なツールは、Enterprise Manager Cloud Control (Cloud Control)のWebベース・インタフェースです。Oracleソフトウェアのインストール、データベースの作成またはアップグレード、およびネットワークの構成後、データベースを管理するCloud Controlを使用できます。さらに、Cloud Controlではパフォーマンス・アドバイザのインタフェース、およびSQL*Loader、Recovery Manager (RMAN)などのデータベース・ユーティリティのインタフェースを使用できます。

- Oracle Diagnostics Pack
Oracle Diagnostics Packでは、パフォーマンスのボトルネックの自動識別、解決策の指示、包括的なシステム監視などの独自の機能により、Oracle Database環境のパフォーマンス管理について、完全でコスト効率が高く、簡単に使用できる解決策を提供します。このマニュアルでは、Oracle Diagnostics Packの主要機能である自動ワークロード・リポジトリ(AWR)、自動データベース診断モニター(ADDM)およびアクティブ・セッション履歴(ASH)を使用します。

- Oracle Database Tuning Pack
Oracle Database Tuning Packでは、データベースのアプリケーション・チューニング・プロセスを自動化できます。これにより、データベースの管理コストが大幅に抑制されるとともに、パフォーマンスと信頼性が向上します。このガイドで使用されるOracle Database Tuning Packの主要な機能は、次のとおりです。

- SQLチューニング・アドバイザ
この機能を使用すると、入力として1つ以上のSQL文を発行し、出力として、文のチューニング方法に関するアドバイスや推奨、各推奨の論理および予測されるメリットを受け取ることができます。推奨事項には、オブジェクトに関する統計の収集、新しい索引の作成、SQL文の再構成、またはSQLプロファイルの作成に関するものがあります。

- SQLアクセス・アドバイザ
この機能を使用すると、指定したSQLワークロードに対して適切なマテリアライズド・ビュー、マテリアライズド・ビュー・ログ、索引およびパーティションが推奨されるため、SQL問合せのデータ・アクセス・パスを最適化できます。

- Oracle Real Applicationテスト
Oracle Real Applicationテストには、次の主要な機能があります。

- データベース・リプレイ
この機能を使用すると、本番システムのデータベース・ワークロードを取得し、同じバージョンまたは新しいバージョンのOracle Database上のテスト・システムで、本番システムと同じタイミングおよび同時実行性でそのデータベース・ワークロードを再生できます。

- SQLパフォーマンス・アナライザ
この機能を使用すると、低下または向上したSQL文、あるいは変化なしのSQL文を識別することによって、システム変更がSQLパフォーマンスに及ぼす影響を判断できます。

これらの機能の使用方法は、『Oracle Database Testingガイド』を参照してください。

注意:

Oracle Diagnostics PackやOracle Database Tuning Packなど、前述の製品およびツールには、個別のライセンスが必要なものがあります。詳細は、『Oracle Databaseライセンス情報』を参照してください。

データベースのホームページのアクセス

データベースのホームページは、Oracle Enterprise Manager Cloud Control (Cloud Control)のメインのデータベース管理ページです。Cloud Controlにログイン後、Cloud Controlで管理するターゲット・データベースの、データベース・ホーム・ページに移動します。

Cloud Controlのデータベース・ホーム・ページへアクセスするには、次の手順を実行します。

1. Cloud Controlを起動します。

Cloud Controlへのアクセスに使用するURLの構文は次のとおりです。

http://hostname.domain:portnumber/em

2. ようこそページで、Cloud Controlユーザー名とパスワードを入力し、「ログイン」をクリックします。

3. 「ターゲット」メニューから「データベース」を選択します。

「データベース」ページが表示されます。

4. データベース・ページで、「検索リスト」を選択し、利用可能なターゲット・データベースを表示します。

5. 「名前」列で、確認または変更するターゲット・データベースを選択します。

ターゲット・データベースのホーム・ページが表示されます。「パフォーマンス」メニューなどの一部のメニューのオプションを初めて選択する場合、「データベース・ログイン」ページが表示されます。

6. ターゲット・データベースのログイン・ページで、該当する権限を持つユーザーとしてログインします。たとえば、SYSDBA権限を持つユーザーSYSとしてログインします。

- ユーザー名: SYSと入力します。

- パスワード: SYSユーザーのパスワードを入力します。

- 接続モード: 「ロール」リストから、SYSDBAを選択します。

2 Oracle Databaseのパフォーマンス・メソッド

パフォーマンスの改善は反復プロセスです。1つ目のボトルネック(リソースの競合が最も激しいポイント)を解消してもすぐにパフォーマンスの向上につながらず、他のボトルネックがシステムに対してさらに大きな影響を与えていることが発見される場合があります。変更によってパフォーマンスを改善するには、その最初の手順としてパフォーマンスの問題を正確に診断する必要があります。

一般的にパフォーマンスの問題は、スループット(指定された時間内に完了できる作業量)の不足、またはユーザーやジョブのレスポンス時間(指定されたワークロードを完了するまでの時間)、あるいはその両方によって生じます。問題の原因は特定のアプリケーションのモジュールである場合も、システム全体である場合もあります。

データベースまたはオペレーティング・システムの統計を確認する前に、システム・ユーザーおよびアプリケーションの担当者からフィードバックを収集することが不可欠です。このフィードバックは、パフォーマンス目標の決定に役立ちます。パフォーマンスの改善状況は、システムの統計によってではなく、ビジネス目標の観点で測定されます。

Oracleパフォーマンス・メソッドは、パフォーマンスの目標が達成されるか達成不可能と判断されるまで適用できます。このプロセスは反復的なため、調査の中にはシステム・パフォーマンスにほとんど影響しないものもあります。重大なボトルネックを迅速に正確に特定するには、時間と経験が必要です。自動データベース診断モニター(ADDM)ではOracleパフォーマンス・メソッドを実装して統計を分析し、パフォーマンス上の重大な問題が自動で診断されます。ADDMを使用すると、システムのパフォーマンスの向上に必要な時間が大幅に短縮されるため、このガイドでもこの方法を利用します。

この章ではOracle Databaseパフォーマンス・メソッドを説明しています。次の項で構成されています。

- 自動ワークロード・リポジトリを使用したデータベース統計の収集

- Oracleパフォーマンス・メソッドの使用

- データベースで検出されるパフォーマンスにおける一般的な問題

自動ワークロード・リポジトリを使用したデータベース統計の収集

データベース統計ではデータベースの負荷のタイプ、およびデータベースで使用する内部および外部リソースに関する情報が提供されます。ADDMを使用したデータベースでパフォーマンスの問題を正確に診断するには、統計が使用可能である必要があります。

累積統計は、ブロック読取り数などの数です。Oracle Databaseはシステム、セッションおよび個別のSQL文の累積統計のタイプを生成します。Oracle Databaseはセグメントおよびサービスについての累積統計の追跡もします。自動ワークロード・リポジトリ(AWR)では、データベースの問題検出および自己チューニングのために、パフォーマンス統計の収集、処理および保持によりデータベースの統計採取が自動的に行われます。

デフォルトでは、データベースが1時間ごとに統計を採取してAWRスナップショットを作成します。AWRスナップショットは、パフォーマンス比較に使用される特定の時間に関するデータのセットです。スナップショットで取得したデルタ値は、時間ごとの各統計に対する変更を示します。AWRで採取した統計はメモリーから問い合せます。採取したデータは、レポートおよびビューで表示できます。

AWRでは次の初期化パラメータを使用できます。

- STATISTICS_LEVEL
AWRによる統計の収集を有効にするには、このパラメータをTYPICAL(デフォルト)またはALLに設定します。STATISTICS_LEVELをBASICに設定すると、AWRを含む多くのデータベース機能が無効化されるため、この方法はお薦めしません。この初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

- CONTROL_MANAGEMENT_PACK_ACCESS
自動データベース診断監視を有効にするには、DIAGNOSTIC+TUNING(デフォルト)またはDIAGNOSTICに設定します。CONTROL_MANAGEMENT_PACK_ACCESSをNONEに設定すると、ADDMを含む多くのデータベース機能が無効化されるため、この方法はお薦めしません。この初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

AWRで収集および処理されるデータベース統計には、次のものがあります。

- 時間モデル統計

- 待機イベント統計

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

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

- 高負荷SQL統計

時間モデル統計

時間モデル統計はデータベース内での操作タイプによる経過時間を測定します。最も重要な時間モデル統計はデータベース時間(DB時間)です。DB時間は、フォアグラウンド・セッションによってデータベース・コール内で経過した合計時間を表し、またインスタンスのワークロードの合計の指標にもなります。図2-1で説明されているように、データベース時間はアプリケーションのユーザー・レスポンス時間全体の一部を構成します。

図2-1 すべてのユーザー・レスポンス時間のDB時間

セッションは、データベースに対する現在のユーザー・ログインの状況を示す、データベース・インスタンス・メモリー内の論理エンティティです。データベース時間は、CPU時間とすべてのアクティブ・セッション(アイドル状態ではないセッション)の待機時間を集計することで算出されます。データベース要求については、CPU時間は要求の処理にかかった合計時間を示し、待機時間は様々なデータベース・インスタンス・リソースの合計待機時間を示します。DB時間には、クライアント・プロセスにかかった時間のみが含まれ、PMONなどのバックグラウンド・プロセスにかかった時間は含まれません。

たとえば、ユーザー・セッションには、オンライン書店で実行されるオンライン・トランザクション(図2-2に示すアクションで構成される)などがあります。

図2-2 ユーザー・トランザクションのDB時間

1. 作者別の書籍の問合せ
ユーザーは特定の作者の書籍の検索を実行します。このアクションでは、アプリケーションにより、作者別の書籍のデータベースに対して問合せが実行されます。

2. 問合せの結果を参照
ユーザーは、戻された作者別の書籍のリストを参照し、ユーザー・レビューおよび在庫状況などの詳細にアクセスします。このアクションでは、アプリケーションにより追加のデータベース問合せが実行されます。

3. カートにアイテムを追加
書籍の詳細を参照した後、ユーザーは書籍の1つをショッピング・カートに追加することを決定します。このアクションでは、アプリケーションによりデータベースが呼び出され、ショッピング・カートが更新されます。

4. チェックアウト
以前に商品を購入したときに書店のWebサイトに保存されていた、住所および支払い情報をユーザーが確認し、取引を完了します。このアクションによってアプリケーションは様々なデータベース操作を行い、ユーザー情報の取得、新しい注文の追加、在庫情報の更新、および電子メールの認証を実行します。

これらの各先行アクションでは、ユーザーは図2-2の下矢印で示されているとおりにデータベースに対し要求を行います。データベースが要求を処理するためにかかるCPU時間およびデータベースの待機にかかる待機時間はDB時間と呼ばれます(色付きの部分)。要求が完了すると、上矢印で示されているとおりに、結果がユーザーに戻されます。上矢印および下矢印の間の領域は要求を処理するための合計ユーザー・レスポンス時間を表し、図2-1で示されるようにDB時間以外のその他のコンポーネントが含まれます。

注意:

DB時間は、インスタンスの開始時から累積的に測定されます。DB時間ではアイドル状態でないすべてのユーザー・セッションの時間が集計されるため、DB時間がインスタンス開始後の経過時間を超える場合があります。たとえば、5分間実行されたインスタンスについて4つのアクティブ・セッションがあると、累積DB時間は20分になります。

データベースのチューニングの目的は、DB時間を短縮することです。チューニングすることにより、アプリケーションでのユーザーのトランザクションの全体のレスポンス時間が向上します。

待機イベント統計

セッションがあるイベントの完了を待機してから処理を続行する必要があったことを示すため、待機イベントはセッションによって増分されます。ユーザー要求を処理している間にセッションが待機する必要がある場合、データベースは事前定義された待機イベントのセットの1つを使用して、その待機を記録します。次に、このイベントは、「ユーザーI/O」および「ネットワーク」などの待機クラスに分類されます。待機イベント・データにより、ラッチ、バッファ、I/Oの競合など、パフォーマンスへ悪影響を与える可能性のある症状が明らかになります。

参照:

- 『Oracle Databaseパフォーマンス・チューニング・ガイド』

- 『Oracle Databaseリファレンス』

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

データベースの多数の累積統計はシステムおよびセッション・レベルで使用可能です。これらの統計の一部はAWRで収集されます。

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

アクティブ・セッション履歴(ASH)統計はデータベースのセッション・アクティビティのサンプルです。データベースは毎秒サンプリングされ、システム・グローバル領域(SGA)の循環バッファに格納されます。データベースに接続してCPUを使用しているセッションまたはアイドル待機クラスに属していないイベントを待っているセッションは、アクティブ・セッションと認識されます。アクティブ・セッションのみ取得すると、管理可能なデータのセットが示されます。データのサイズは、データベースで実行可能なセッション数ではなく、実行中の作業に直接関連します。

「時間モデル統計」で説明したDB時間の例を使用すると、書店のWebサイトで行ったオンライン・トランザクションからセッション・アクティビティのサンプルが収集されます。これは、図2-3の横矢印の下の縦線で示されています。

図2-3 アクティブ・セッション履歴

細い縦線は、ASH統計に取得されない非アクティブ・セッション・アクティビティのサンプルを表しています。太い縦線は次の時点で取得されたアクティブ・セッションのサンプルを表しています。

- 7:38、作者別の書籍を問合せ中

- 7:42、ユーザーが問合せ結果を参照中

- 7:50、書籍の1つをショッピング・カートに追加

- 7:52、チェックアウト処理中

表2-1に、サンプリングされるセッションID(SID)、モジュール、SQL ID、セッション状態、および待機イベントの例とともに、アクティブ・セッションに対して収集されたASH統計を示します。

表2-1 アクティブ・セッション履歴

時間

SID

モジュール

SQL ID

状態

イベント

7:38

213

作者別の書籍

qa324jffritcf

待機中

db file順次読取り

7:42

213

レビューIDの取得

aferv5desfzs5

CPU

なし

7:50

213

カートにアイテムを追加

hk32pekfcbdfr

待機中

バッファ・ビジー待機

7:52

213

チェックアウト

abngldf95f4de

待機中

ログ・ファイルの同期化

高負荷SQL統計

経過時間およびCPU時間などのリソースの大部分を消費するSQL文は、システムにとって非常に大きな負荷となります。

Oracleパフォーマンス・メソッドの使用

Oracleのパフォーマンス・メソッドを使用したパフォーマンス・チューニングは、データベースのボトルネックの識別と解消、および効率的なSQL文の開発によって行われます。データベースのチューニングは、事前および事後の2つのフェーズで構成されます。

事前チューニングのフェーズで、ADDM分析および検出結果の確認、リアルタイムでのデータベースのパフォーマンスの監視、およびアラートへの対応などのチューニング・タスクを、データベースのメンテナンス・ルーチンの一部として日常的に実行する必要があります。

短期的に発生するパフォーマンスの問題、または時間の経過によるデータベースのパフォーマンスの低下などの問題がユーザーから報告された場合は、事後チューニングのフェーズで対応する必要があります。

SQLチューニングは、高負荷SQL文の効率を識別、チューニングおよび向上させる反復プロセスです。

Oracleパフォーマンス・メソッドの適用には、次の操作が含まれます。

- 事前チューニングの準備の実行(「データベースのチューニング準備」を参照)

- データベースの定期的な事前チューニング(「データベースの事前のチューニング」を参照)

- パフォーマンスの問題がユーザーによってレポートされた場合のデータベースの事後チューニング(「データベースの事後チューニング」を参照)

- 高負荷のSQL文の識別、チューニングおよび最適化(「SQL文のチューニング」を参照)

データベースのパフォーマンスを改善するために、これらの原則を繰り返して適用する必要があります。

データベースのチューニング準備

この項ではデータベースのチューニング前に行う必要のある手順をリストして説明します。

チューニングのためにデータベースを準備する手順::

1. ユーザーからフィードバックを取得します。
パフォーマンス・プロジェクトの有効範囲、最終的なパフォーマンスの目標、および将来のパフォーマンス目標を決定します。このプロセスは今後の容量計画にとって重要です。

2. ユーザーのパフォーマンスに影響するすべてのシステムのオペレーティング・システムをチェックします。
ハードウェアまたはオペレーティング・システム・リソースが完全に使用されていることを確認します。発生する可能性のある問題として超過したリソースをリストし、後で分析します。さらに、すべてのハードウェアが正常に機能していることを確認します。

3. STATISTICS_LEVEL初期化パラメータがTYPICAL(デフォルト)またはALLに設定されていることを確認し、AWRおよびADDMを含むOracle Databaseの自動パフォーマンス・チューニング機能を有効にします。

4. CONTROL_MANAGEMENT_PACK_ACCESS初期化パラメータをDIAGNOSTIC+TUNING(デフォルト)またはDIAGNOSTICに設定し、ADDMを有効にします。

参照:

- AWRの構成方法については、「自動ワークロード・リポジトリを使用したデータベース統計の収集」を参照してください。

- 「自動データベース診断モニターの構成」

データベースの事前のチューニング

この項ではデータベースの定期的なチューニングに必要な事前の手順をリストして説明します。これらの手順は、Oracle Databaseの日常的なメンテナンスの一部として実行してください。チューニング・プロセスは、パフォーマンスの目標に達するか、他の制約により不可能になるまで繰り返します。

データベースの事前チューニング手順:

1. 「データベースのパフォーマンスの自動監視」の説明に従って、ADDMの検出結果を確認します。
ADDMは、「データベースで検出されるパフォーマンスにおける一般的な問題」のほとんどが含まれるデータベースに関するパフォーマンスの問題を自動的に検出し、報告します。結果は、Oracle Enterprise Manager Cloud Control (Cloud Control)のデータベースのホームページにADDMの検出結果として表示されます。これらの結果を確認することにより、注意が必要なパフォーマンスの問題を迅速に識別することが可能となります。

2. 「データベースのパフォーマンスの自動監視」の説明に従って、ADDMの検出結果を確認します。
ADDMの結果により、パフォーマンスの問題の影響を軽減する推奨事項のリストが得られます。推奨事項の実装により、推奨された変更が適用されデータベースのパフォーマンスが改善されます。

3. 「データベースのパフォーマンスのリアルタイムの監視」の説明に従って、データベースのパフォーマンスの問題をリアルタイムで監視します。
Cloud Controlのパフォーマンス・ページでは、リアルタイムのパフォーマンスの問題を識別し、対応できます。適切なページにドリルダウンすると、次のADDM分析の実行を待つことなく、リアルタイムでデータベースのパフォーマンスの問題を識別および解決できます。

4. 「パフォーマンス・アラートの監視」の説明に従って、パフォーマンスに関連するアラートに対応します。
Cloud Controlのデータベースのホームページでは、データベースによって生成されたパフォーマンス関連のアラートが表示されます。通常は、これらのアラートが示す問題を解決することで、データベースのパフォーマンスが向上します。

5. 変更によって期待した結果が得られたことを検証します。また、ユーザーに対するデータベースのパフォーマンスが向上したかどうかを確認します。

データベースの事後チューニング

この項では、ユーザー・フィードバックに基づいたデータベースのチューニングに必要な手順をリストして説明します。このチューニングの手順は事後と考えられます。ユーザーによりパフォーマンスの問題がレポートされたときに、この手順を定期的に実行します。

データベースの事後チューニング手順:

1. パフォーマンスの問題がユーザーから報告された場合、「データベースのパフォーマンスの手動監視」の説明に従ってADDMを手動で実行し、現在のデータベースのパフォーマンスおよびパフォーマンスの履歴を診断します。
この方法で、次のADDM分析の前に現在のデータベースのパフォーマンスを分析したり、システムの定期的な監視を行っていないときに過去のデータベースのパフォーマンスを分析することができます。

2. 「一時的なパフォーマンスの問題の解決」の説明に従って、一時的なパフォーマンスの問題を解決します。
アクティブ・セッション履歴(ASH)レポートでは、短期間でADDM分析に表示されないデータベースの一時的なパフォーマンスの問題を分析できます。

3. 「時間の経過によるパフォーマンスの低下」の説明に従って、時間が経つにつれパフォーマンスが低下する問題を解決します。
自動ワークロード・リポジトリ(AWR)期間の比較レポートで、2つの期間のデータベースのパフォーマンスを比較でき、特定の期間から他の期間にかけて発生するパフォーマンスの低下を解決します。

4. 行った変更によって期待した結果が得られたことを検証します。また、ユーザーに対するデータベースのパフォーマンスが向上したかどうかを確認します。

5. パフォーマンスの目標に達するか、他の制約により不可能になるまでこれらの手順を繰り返します。

SQL文のチューニング

この項では高負荷SQL文の識別、チューニングおよび最適化に必要な手順をリストして説明します。

SQL文のチューニング手順:

1. 「上位SQLに基づく高負荷SQL文の識別」の説明に従って高負荷SQL文を識別します。
ADDMの検出結果および上位SQLセクションを使用して、最大の競合の原因となる高負荷SQL文を識別します。

2. 「SQL文のチューニング」の説明に従って、高負荷SQL文をチューニングします。
SQLチューニング・アドバイザを使用して高負荷SQL文の効率を向上できます。

3. 「データ・アクセス・パスの最適化」の説明に従って、データ・アクセス・パスを最適化します。
マテリアライズド・ビュー、マテリアライズド・ビュー・ログ、およびSQLアクセス・アドバイザを使用した特定のワークロードに対する索引の該当セットを作成して、データ・アクセス・パスのパフォーマンスを最適化できます。

4. SQLパフォーマンス・アナライザを使用して、SQLチューニングおよびその他のシステム変更に対するSQLパフォーマンスの影響を分析します。
SQLパフォーマンス・アナライザの使用方法は、『Oracle Database Testingガイド』を参照してください。

5. すべての高負荷SQL文の効率が最大化されるまでこれらの手順を繰り返してチューニングを行います。

データベースで検出されるパフォーマンスにおける一般的な問題

この項ではデータベース内で検出された共通のパフォーマンスの問題をリストして説明します。Oracleパフォーマンス・メソッドに従うと、Oracle Databaseインスタンスでのこれらの問題を回避できます。問題がある場合は、「Oracleパフォーマンス・メソッドの使用」で説明されているように、Oracleパフォーマンス・メソッドの手順を繰り返すか、またはこれらの問題に対処する項を参照してください。

- CPUのボトルネック
CPUの限界のためにアプリケーションのパフォーマンスが低下していますか。「データベースのパフォーマンスの自動監視」で説明されているように、CPUがボトルネックとなって発生するパフォーマンスの問題は、ADDMにより診断されます。また、「CPU使用率の監視」で説明されているように、Cloud Controlの「パフォーマンス」ページでもCPUのボトルネックを識別できます。

- メモリー構造のサイズ不足
システム・グローバル領域(SGA)、プログラム・グローバル領域(PGA)、バッファ・キャッシュなどのOracleのメモリー構造は適切なサイズですか。メモリー構造のサイズが小さいことにより発生するパフォーマンスの問題は「データベースのパフォーマンスの自動監視」で説明されているようにADDMにより診断されます。また、「メモリー使用率の監視」で説明されているようにCloud Controlの「パフォーマンス」ページを使用してメモリー使用率の問題を識別できます。

- I/O容量の問題
I/Oサブシステムは正常に動作していますか。「データベースのパフォーマンスの自動監視」で説明されているように、I/Oの能力の問題によるパフォーマンスの問題はADDMにより診断されます。また、「ディスクI/O使用率の監視」の説明に従って、Cloud Controlの「パフォーマンス」ページを使用してディスクI/Oの問題を識別することもできます。

- アプリケーションによるOracle Databaseの非効率的な使用
アプリケーションが非効率的にOracle Databaseを使用していますか。データベースへの新規接続を何度も行ったり、SQL解析を過度に行ったり、少量のデータで過度の競合が発生(アプリケーション・レベルのブロック競合とも呼ばれます)したりすると、アプリケーションのパフォーマンスが大幅に低下します。「データベースのパフォーマンスの自動監視」で説明されているように、アプリケーションによるOracleデータベースの使用が非効率的なために発生したパフォーマンスの問題は、ADDMにより診断されます。また、「ユーザー・アクティビティの監視」の説明に従って、Cloud Controlの「パフォーマンス」ページを使用して、SQL、セッション、サービス、モジュールおよびアクションなどの様々なディメンションでトップ・アクティビティを監視できます。

- 同時実行の問題
同時アクティビティが多数発生し、データベースのパフォーマンスが低下していますか。同時アクティビティが多数発生すると、ロックまたはバッファ・キャッシュの待機の形で明示される共有リソースの競合が起こります。「データベースのパフォーマンスの自動監視」で説明されているように、同時実行によるパフォーマンスの問題はADDMにより診断されます。また、「上位セッションの監視」の説明に従って、同時実行による問題をCloud Controlの「上位セッション」を使用して識別することもできます。

- データベース構成の問題
理想的なパフォーマンス・レベルになるようにデータベースが最適な構成になっていますか。たとえば、ログ・ファイルのサイズ設定の異常、アーカイブの問題、過度のチェックポイント、非効率的なパラメータ設定などの徴候はありませんか。「データベースのパフォーマンスの自動監視」で説明されているように、データベースの構成の問題が原因となっているパフォーマンスの問題は、ADDMにより診断されます。

- 短期間のパフォーマンスの問題
短期間または断続的に発生するパフォーマンスの問題に関してユーザーが不満を持っていませんか。AWRによって作成されるスナップショットの間隔によって、短期間のパフォーマンスの問題がADDMで取得されない可能性があります。短期間のパフォーマンスの問題は、「一時的なパフォーマンスの問題の解決」の説明に従って、アクティブ・セッション履歴レポートを使用して識別できます。

- 時間の経過によるデータベースのパフォーマンスの低下
時間が経過するにつれてデータベースのパフォーマンスが低下している徴候はありませんか。たとえば、データベースの動作が6か月前と異なるとユーザーが感じていませんか。AWR期間比較レポートを生成して、構成設定、ワークロード・プロファイルおよび統計の差を、パフォーマンスが安定していた期間とパフォーマンスが低下していた期間で比較して識別します。「時間の経過によるパフォーマンスの低下」で説明されているように、この操作によりパフォーマンスの低下の原因を識別できます。

- 非効率的SQL文または高負荷SQL文
システムに影響を与える過度のシステム・リソースを使用するSQL文はありませんか。高負荷SQL文によって発生するパフォーマンスの問題は、データベースのパフォーマンスの自動監視およびADDMの検出結果に基づく高負荷SQL文の識別で説明されているようにADDMにより診断されます。また、「上位SQLに基づく高負荷SQL文の識別」で説明されているように、Cloud Controlの上位SQLを使用することで高負荷SQL文を識別できます。これらを識別すると、「SQL文のチューニング」で説明されているように、SQLチューニング・アドバイザを使用して高負荷SQL文をチューニングできます。

- オブジェクト接続
連続してアクセスされるためボトルネックの原因になっているデータベース・オブジェクトはありませんか。オブジェクト競合によって発生するパフォーマンスの問題は「データベースのパフォーマンスの自動監視」で説明されているようにADDMによって診断されます。また、「データ・アクセス・パスの最適化」の説明に従って、SQLアクセス・アドバイザを使用してこれらのオブジェクトへのデータ・アクセス・パスを最適化できます。

- SQL文チューニングの後の予期しないパフォーマンス低下
チューニング後に、SQL文のパフォーマンスが低下していませんか。SQL文をチューニングすると、SQL文の実行計画の変更の原因となり、SQLのパフォーマンスに大きく影響します。変更はSQLパフォーマンスの向上につながる場合もあります。場合によっては、システム変更によってSQL文が低下し、SQLパフォーマンスが低下することがあります。

本番システムで変更する前に、SQLパフォーマンス・アナライザを使用して、テスト・システムでチューニングしたSQLの影響を分析できます。この機能によって、次によるSQLワークロードへのシステム変更の影響を予想できます。

- 変更前後のパフォーマンスの測定

- パフォーマンスの変更を説明するレポートの生成

- 低下または向上するSQL文の識別

- 低下するSQL文ごとのチューニング推奨の提供

- 適切な場合のチューニング推奨の実装

SQLパフォーマンス・アナライザの使用方法は、『Oracle Database Testingガイド』を参照してください。

第II部 データベースの事前チューニング

第II部では、Oracle Databaseを定期的に事前チューニングする方法について説明します。内容は次のとおりです。

- データベースのパフォーマンスの自動監視

- データベースのパフォーマンスのリアルタイムの監視

- リアルタイムなデータベース操作の監視

- パフォーマンス・アラートの監視

3 データベースのパフォーマンスの自動監視

自動データベース診断モニター(ADDM)では、データベースでのパフォーマンスの問題を検出して報告します。結果は、Oracle Enterprise Manager Cloud Control (Cloud Control)のデータベースのホームページにADDMの検出結果として表示されます。ADDMの結果を確認することによって、対処が必要なパフォーマンスの問題を迅速に特定できます。このガイドにある他のパフォーマンス・チューニング方法を使用する前に、最初にADDM分析の結果を確認する必要があります。

ADDMの結果では、パフォーマンスの問題の影響を削減する推奨事項のリストを提供します。ADDMの結果を確認して、定期的なデータベースのメンテナンスの一環として推奨事項を毎日実施します。データベースが最適なパフォーマンス・レベルで動作しているときでも、ADDMの使用を続行し、継続的にデータベースのパフォーマンスを監視します。

この章の内容は次のとおりです。

- 自動データベース診断モニターの概要

- 自動データベース診断モニターの構成

- 自動データベース診断モニターの分析の確認

- 自動データベース診断モニターの結果の説明

- 自動データベース診断モニターの推奨事項の実装

- スナップショット統計の表示

参照:

- DBMS_ADVISORパッケージを使用した自動データベース診断モニターによるデータベースの診断およびチューニングについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

自動データベース診断モニターの概要

ADDMはOracle Databaseに組み込まれている診断ソフトウェアです。ADDMで自動ワークロード・リポジトリ(AWR)に取得されたデータが調査および分析され、発生する可能性のあるデータベースのパフォーマンスの問題が判別されます。ADDMは、次を実行します。

- パフォーマンス問題の根本的な原因の特定

- それらを修正するための推奨事項の提供

- 予想されるメリットの定量化

- アクションを必要としない領域の識別

この項の内容は次のとおりです。

- ADDM分析

- ADDM推奨

- Oracle Real Application ClustersのADDM

ADDM分析

ADDM分析は各AWRスナップショットの後に実行され(デフォルトでは毎時間)、結果はデータベースに保存されます。次に、Cloud Controlを使用して、結果を表示できます。

ADDM分析はトップダウンで実行され、最初に症状を識別し、パフォーマンスの問題の根本的な原因が判明するまで分析を精製します。ADDMでは、DB時間統計を使用してパフォーマンスの問題を識別します。データベース(DB)時間はユーザー要求の処理にデータベースが必要とする累積時間で、待機時間およびアイドルではないすべてのユーザー・セッションのCPUタイムの両方が含まれます。

データベースのパフォーマンスのチューニングの目標は、特定のワークロードに対してシステムのDB時間を削減することです。DB時間を削減することで、データベースは、同量以下のリソースでより多くのユーザー・リクエストをサポートできます。ADDMは、問題の領域としてDB時間の大部分を使用するシステム・リソースを報告し、費やしたDB時間の降順でソートします。DB時間の統計の詳細は、「時間モデル統計」を参照してください。

ADDM推奨

ADDMはパフォーマンスの問題の診断以外にも、考えられる解決策を推奨します。該当する場合は、ADDMは選択できる複数の解決策を推奨します。ADDMの推奨事項の内容は次のとおりです。

- ハードウェアの変更
CPUの追加またはI/Oサブシステム構成の変更

- データベース構成
初期化パラメータ設定の変更

- スキーマの変更
表または索引のハッシュ・パーティション化、または自動セグメント領域管理(ASSM)の使用

- アプリケーションの変更
順序付けのためのキャッシュ・オプションの使用またはバインド変数の使用

- 他のアドバイザの使用
高負荷SQL文でのSQLチューニング・アドバイザの実行またはホット・オブジェクトに対するセグメント・アドバイザの実行

ADDMの利点は本番システム以外にも、開発システムおよびテスト・システムにも適用されます。ADDMは潜在的なパフォーマンスの問題を早い段階で警告できます。

パフォーマンス・チューニングは相互作用的なプロセスです。1つの問題を修正しても、システムの他の部分がボトルネックになる場合があります。ADDM分析を利用しても、パフォーマンスが理想的なレベルに到達するまでには複数のチューニング・サイクルが必要となる場合があります。

Oracle Real Application ClustersのADDM

Oracle Real Application Clusters(Oracle RAC)環境で、ADDMを使用して、データベース・クラスタのスループット・パフォーマンスを分析できます。Oracle RACのADDMは、すべてのデータベース・インスタンスのデータベース時間の合計としてDB時間を検討し、クラスタ・レベルで重要な結果を報告します。たとえば、各クラスタ・ノードのDB時間は、個別に検討する場合には重要ではない可能性がありますが、集計DB時間は、クラスタ全体で重要な問題である可能性があります。

参照:

- Oracle RACでのADDMの使用については、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

自動データベース診断モニターの構成

この項の内容は次のとおりです。

- ADDMを有効にする初期化パラメータの設定

- DBIO_EXPECTEDパラメータの設定

- AWRスナップショットの管理

ADDMを有効にする初期化パラメータの設定

自動データベース診断監視は、デフォルトで有効になっており、CONTROL_MANAGEMENT_PACK_ACCESSおよびSTATISTICS_LEVEL初期化パラメータで制御されます。

CONTROL_MANAGEMENT_PACK_ACCESSをDIAGNOSTIC+TUNING(デフォルト)またはDIAGNOSTICに設定し、自動データベース診断監視を有効にします。CONTROL_MANAGEMENT_PACK_ACCESSをNONEに設定すると、ADDMを含む多くのOracle Databaseの機能が無効化されるため、この方法はお薦めしません。

自動データベース診断モニターの機能を有効にするには、STATISTICS_LEVELをTYPICAL (デフォルト)またはALLに設定します。STATISTICS_LEVELをBASICに設定すると、ADDMを含む多くのOracle Databaseの機能が無効化されるため、この方法はお薦めしません。

ADDMが有効かどうかの確認手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「管理」メニューから、初期化パラメータを選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「初期化パラメータ」ページが表示されます。

3. 「名前」フィールドにstatistics_levelを入力して「実行」をクリックします。
「初期化パラメータ」表には初期化パラメータの設定が表示されます。

4. 次のいずれかの操作を行います。

- 「値」リストにALLまたはTYPICALが表示されている場合は、何も行いません。

- 「値」リストにBASICが表示されている場合は、ALLまたはTYPICALを選択して「適用」をクリックします。

5. 「名前」フィールドに、control_management_pack_accessを入力し、「実行」をクリックします。
表には初期化パラメータの設定が表示されます。

6. 次のいずれかの操作を行います。

- 「値」列にDIAGNOSTICまたはDIAGNOSTIC+TUNINGが表示されている場合、何も行いません。

- 「値」列にNONEが表示されている場合、DIAGNOSTICまたはDIAGNOSTIC+TUNINGを選択して「適用」をクリックします。

参照:

- STATISTICS_LEVEL初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。

- CONTROL_MANAGEMENT_PACK_ACCESS初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。

DBIO_EXPECTEDパラメータの設定

I/OパフォーマンスのADDM分析は、単一の引数DBIO_EXPECTEDによって異なり、I/Oサブシステムの予測されるパフォーマンスを示しています。DBIO_EXPECTEDの値は、単一のデータベース・ブロックの読取りにかかるマイクロ秒単位の時間の平均です。Oracle Databaseでは10ミリ秒のデフォルト値が使用されており、多くのハード・ドライブに対して適切な値です。ハードウェアの特性に基づいて異なる値を選択できます。

DBIO_EXPECTED初期化パラメータの適切な設定を決定する手順:

1. ご使用のハードウェアで1つのデータベース・ブロックの平均読取り時間を測定します。
ランダムI/Oに対してこの測定が必要で、標準のハード・ドライブを使用する場合はシーク時間も測定に含まれます。ハード・ドライブの標準の値は5000マイクロ秒から20000マイクロ秒です。ストレージ・サブシステムのI/O機能の評価方法については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

2. 後続のすべてのADDM実行の値を一度設定します。
たとえば、測定値が8000マイクロ秒の場合、次のPL/SQLコードをSYSユーザーとして実行します。

EXECUTE DBMS_ADVISOR.SET_DEFAULT_TASK_PARAMETER(
'ADDM', 'DBIO_EXPECTED', 8000);

AWRスナップショットの管理

デフォルトでは、自動ワークロード・リポジトリ(AWR)は1時間に1回、パフォーマンス・データのスナップショットを生成し、統計をワークロード・リポジトリに8日間保持します。スナップショットの間隔と保存期間の両方のデフォルトの値を変更できます。

AWRの保存期間を最低でも1か月に調整することをお薦めします。1つのビジネス・サイクルに対して期間の延長もでき、会計四半期閉めの時間枠でデータを比較できます。AWRベースラインを作成して、重要な期間に対してスナップショットを無期限に保持することもできます。

スナップショットの間隔のデータはADDMによって分析されます。ADDMではスナップショットの違いを比較して、システム・ロードの有効性に基づき、どのSQL文を取得するかを確認します。ADDMの分析では、時間の経過によって取得する必要のあるSQL文の数が示されます。

この項の内容は次のとおりです。

- スナップショットの作成

- スナップショット設定の変更

スナップショットの作成

手動でスナップショットを作成できますが、デフォルトではAWRで1時間に一度パフォーマンス・データのスナップショットが生成されるため、通常はこの作業は不要です。ただし、スナップショットの間隔より短い期間のパフォーマンス・データを比較する場合など、異なるアクティビティの期間を取得する場合は、スナップショットを手動で作成する必要がある場合があります。

スナップショットの作成手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「AWR」を選択してから「AWR管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「自動ワークロード・リポジトリ」ページが表示されます。

3. 「Manage Snapshots and Baselines」で、「Snapshots」の横にある数値をクリックします。
最新のスナップショットのリストがある「スナップショット」ページが表示されます。

4. 「作成」をクリックします。
「確認」ページが表示されます。

5. 「はい」をクリックします。
スナップショットの作成中に「処理中: スナップショットの作成」ページが表示されます。

スナップショットが作成されると、「スナップショット」ページが確認メッセージとともに再表示されます。

次のスナップショットのリストのスクリーンショットは、スナップショットが午前9:24:25に作成されたことを示しています。スナップショットのIDは、383です。

スナップショット設定の変更

デフォルトでは、AWRは1時間に一度パフォーマンス・データのスナップショットを生成します。スナップショットの間隔と保存期間の両方のデフォルト値を変更できます。

スナップショット設定の変更手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「AWR」を選択してから「AWR管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「自動ワークロード・リポジトリ」ページが表示されます。

ページの「一般」セクションの次のスクリーンショットでは、スナップショットの保存は8日に設定されており、スナップショット間隔は60分に設定されています。

3. 「編集」をクリックします。
「設定の編集」ページが表示されます。

4. 「スナップショットの保存」で、次のいずれかの操作を行います。

- 「時間ベースの保存の使用 保存期間(日)」を選択し、関連フィールドにスナップショットを保存する日数を入力します。

- 「永久的に保存」を選択して、スナップショットを無期限に保存します。

使用可能なディスク領域に応じて許可されだけスナップショットの保存期間を延長することをお薦めします。

「スナップショットの保存」グループの次のスクリーンショットでは、スナップショットの保存期間は30日に変更されています。

5. 「スナップショット収集」で、次のいずれかの操作を行います。

- 「システム・スナップショット間隔」を選択して、「間隔」リストで目的の間隔を選択し、スナップショット間の間隔を変更します。

- 「スナップショット収集の無効化」を選択して、スナップショット収集を無効にします。

「スナップショット収集」グループの次のスクリーンショットでは、スナップショット収集間隔が30分に変更されています。

6. 「収集レベル」の隣のリンクをクリックします。
「初期化パラメータ」ページが表示されます。

統計レベルを変更するには、statistics_levelパラメータの「値」リストで、TYPICALまたはALLを選択します。「ファイルに保存」をクリックして、サーバー・パラメータ・ファイルの値を設定します。

「初期化パラメータ」表の次のスクリーンショットでは、Typicalのデフォルト値が使用されています。

7. 「OK」をクリックして変更を適用します。
「自動ワークロード・リポジトリ」ページに新しい設定が表示されます。

自動データベース診断モニターの分析の確認

デフォルトでは、ADDMは毎時間実行され期間中にAWRによって作成されるスナップショットを分析します。データベースがパフォーマンスの問題を検出した場合 、分析の結果がデータベースのホームページの「サマリー」セクションの「診断」に表示されます。

ADDM結果リンクは、最後のADDM分析で検索されたADDMの検出結果の量が表示されます。

ADDM結果の表示方法:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

3. 「アドバイザ・タスク」の「結果」セクションで、最新のADDM結果を選択して「結果の表示」をクリックします。
「自動データベース診断モニター(ADDM)」ページが表示されます。ADDMの実行結果が表示されます。

図3-1 「自動データベース診断モニター」ページ

自動データベース診断モニター(ADDM)ページの「データベース・アクティビティ」グラフでは、ADDM分析期間中のデータベース・アクティビティが表示されます。データベース・アクティビティのタイプは、グラフで対応する色に基づいて凡例で定義されます。グラフの下にある各アイコンは各ADDMタスクを示し、各ADDMタスクはAWRに保存されているスナップショットのペアに対応します。

図3-1では、「データベース・アクティビティ」セクションの積上げ面グラフによって、12月30日の午後2時から4時30分の間にデータベース・アクティビティが最も多いことが示されています。この間、アクティビティはわずかなI/Oで、CPUおよび待機クラスによって占められます。

「ADDMパフォーマンス分析」セクションで、ADDM結果は影響の高いものから降順でリストされます。「情報の結果」セクションでは、パフォーマンスに影響がなく、情報目的のみの領域をリストします。

4. オプションで、「ズーム」アイコンをクリックすると、グラフに表示されている分析期間を短縮、または拡大できます。

5. レポートにADDMの検出結果を表示するには、「レポートの表示」をクリックします。
「レポートの表示」ページが表示されます。

「ファイルに保存」をクリックして、後のアクセスのレポートを保存できます。

自動データベース診断モニターの結果の説明

ADDM分析結果は、検出結果のセットを表しています。各ADDMの検出結果は次の3タイプのいずれかです。

- 問題
データベースのパフォーマンスの問題の根本的な原因を示す検出結果

- 症状
1つ以上の問題を検出する頻度の高い情報が含まれる検出結果

- 情報
パフォーマンスに影響を与えないシステムの領域を報告するために使用される検出結果

問題の検出結果は、DB時間のパフォーマンスの問題による部分の見積りから定量化されます。

特定の問題に複数の原因がある場合、ADDMは複数の結果をレポートする場合があります。この場合、同一箇所のDB時間に対して、結果の影響が複数表示されます。パフォーマンスの問題が重複した場合、レポートされた結果の影響をすべて合計すると、DB時間の100%を超える可能性があります。たとえば、I/O操作の読取りが多数実行されて、ADDMが1つ目の結果としてDB時間の50%がI/OアクティビティのSQL文の影響であるとレポートし、もう1つの結果としてDB時間の75%がバッファ・キャッシュの不足の影響であるとレポートするような場合です。

問題の検出結果は推奨事項のリストと関連付けてパフォーマンスの問題による影響を軽減できます。各推奨事項には推奨事項が実装される場合にDB時間の一部の見積りが節約できるという利点があります。複数の推奨事項がADDMの検出結果と関連付けられている場合、推奨事項には同一の問題を解決する代替手段が含まれる場合があります。この場合、利点の合計は結果の影響より高い場合があります。同一の問題を解決するためにすべての推奨事項を適用する必要はありません。

推奨事項はアクションとその理由で構成されています。推奨事項の実行により予測される利点を得るためには、推奨されたすべてのアクションを適用する必要があります。また、これらのアクションが推奨される理由の説明と、推奨事項の実装に関する詳細情報が提供されます。場合によっては、ADDMアクションによって複数の解決策が提示されることがあります。その場合は、最も実装が簡単な解決策を選択します。

自動データベース診断モニターの推奨事項の実装

この項では、ADDMの推奨事項の実装方法を説明します。ADDMの検出結果は「ADDMパフォーマンス分析」の「自動データベース診断モニター(ADDM)」ページに表示されます。

ADDMの推奨事項の実装手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

3. 「アドバイザ・タスク」の「結果」セクションで、最新のADDM結果を選択して「結果の表示」をクリックします。
「自動データベース診断モニター(ADDM)」ページが表示されます。

4. 「データベース・アクティビティ」セクションで、調べるADDM実行のグラフ・アイコンをクリックします。
「ADDMパフォーマンス分析」セクション内のデータは、選択したADDMの実行に基づいて変更されます。

5. 「ADDMパフォーマンス分析」表で「ADDM結果」をクリックします。
「ADDMパフォーマンス分析」表の次のスクリーンショットで、最大の影響の検出結果は上位SQL文です。

「パフォーマンス結果の詳細」ページが表示されます。

「パフォーマンス結果の詳細」ページの次のスクリーンショットでは、5つの推奨事項が示されています。1つ目の推奨事項では、分析期間中にDB時間が最大で26.7%短縮されるメリットがあるという見積りが示されています。2つ目の推奨事項ではDB時間が最大で10.9%、3つ目の推奨事項でも最大で10.9%、4つ目の推奨事項では最大で9.9%、5つ目の推奨事項では最大で5%短縮されるメリットがあるという見積りが示されています。

6. 「推奨」で「表示」をクリックして、推奨事項および各推奨事項に該当するアクションを確認します。
「カテゴリ」列には推奨事項のカテゴリが表示されます。「ベネフィット(%)」列には推奨事項を実装することによって得ることができるメリットの見積りが表示されます。

図3-2は、「推奨」表の1つ目の項目の推奨事項を示しています。

図3-2 「パフォーマンス結果の詳細」ページの推奨事項

7. 一連のアクションが推奨される理由が参照可能な場合は、「追加情報」をクリックするか、「追加情報」の下に表示される内容を確認します。
たとえば、次のスクリーンショットは、DB_CACHE_SIZE初期化パラメータの推奨値を示す追加情報を含む「サイズ不足のバッファ・キャッシュ」の結果を示しています。

8. 検出結果の履歴を表示するには、「結果履歴」をクリックします。
「結果履歴」ページが表示されます。次のスクリーンショットには、上位SQL文の「結果履歴」ページが示されています。

「結果履歴」ページに、選択した3時間間隔に特定の結果が検出された頻度が表示されます。この情報を使用して、結果がシステムの一時的な問題であるか、または永続的な問題であるかを判断します。この情報に基づいて、結果に関連付けられたアクションの実行が必要かどうかを判断できます。

「アクティブ・セッション」積上げ面グラフには、結果の影響と、システムに対するその他の負荷が表示されます。表示は次のように変更できます。

a. 3時間間隔を変更するには、「アクティブ・セッション」グラフの影付きのボックスをクリックしてドラッグします。

b. 日付を変更するには、「表示」フィールドに目的の日付を入力して「実行」をクリックします。

c. 結果の詳細を表示するには、「選択した3時間間隔の詳細」で「結果詳細」列のリンクをクリックすると、対応するADDMの検出結果を表示する「パフォーマンス結果の詳細」ページが表示されます。

9. オプションとして、チューニング済またはこれ以上チューニングできない既知の結果を抑制するフィルタを作成します。選択したADDM結果のフィルタを作成するには、次の手順を実行します。

a. 「フィルタ」をクリックします。
結果に対するフィルタ・ページが表示されます。

b. 「作成」をクリックします。
「結果に対するフィルタの作成」ページが表示されます。

c. ADDMフィルタ名を「名前」フィールドに入力します。

d. 「アクティブ・セッション」フィールドで、アクティブ・セッションの数を条件としてフィルタ基準を指定します。
指定したフィルタ条件よりADDMの検出結果のアクティブ・セッション数が少ない場合、将来のADDMの実行のために、データベースによってこの検出結果にフィルタが適用されます。

e. %アクティブ・セッション・フィールドで、アクティブ・セッションの割合を条件としてフィルタ基準を指定します。
指定したフィルタ条件よりADDMの検出結果のアクティブ・セッション数が少ない場合、将来のADDMの実行のために、データベースによってこの検出結果にフィルタが適用されます。

f. 「OK」をクリックします。

10. 選択された推奨事項で必要なアクションを実行します。
実行するアクションのタイプによって、「実装」または「アドバイザをただちに実行」などのいくつかのオプションが使用可能になります。これらのオプションを使用すると、一度のクリックですぐに推奨事項を実装できます。

図3-2に示す例では、最も単純な解決方法は、「アドバイザをただちに実行」をクリックして、SQL文でSQLチューニング・アドバイザのタスクをすぐに実行することです。

参照:

- 「SQL文のチューニング」

スナップショット統計の表示

AWRでCloud Controlを使用して、作成されるスナップショットに含まれるデータを表示できます。スナップショット・データは主にRAW統計で構成されているため、通常、確認する必要はありません。かわりに、ADDMを使用して、パフォーマンスの問題を識別するこれらの統計を分析する必要があります。スナップショット統計は、パフォーマンス分析のStatspackの使用に慣れているDBAなどの主に上級ユーザー向けです。

スナップショット統計の表示手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「AWR」を選択してから「AWR管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。

3. 「Manage Snapshots and Baselines」で、「Snapshots」の横にある数値をクリックします。
最新のスナップショットのリストがある「スナップショット」ページが表示されます。

4. スナップショットに収集された統計を表示するには、表示するスナップショットの「ID」リンクをクリックします。
「スナップショットの詳細」が表示され、「詳細」サブページが表示されます。

「詳細」サブページの次のスクリーンショットは、以前のスナップショット(スナップショット386)から選択されたスナップショット(スナップショット387)までの収集された統計を示しています。

5. ワークロード・リポジトリの統計レポートを表示するには、「レポート」をクリックします。
ワークロード・リポジトリ・レポートが表示されます。

6. オプションで、「ファイルに保存」をクリックして、後のアクセスのためにレポートを保存します。

参照:

- 「時間の経過によるパフォーマンスの低下の解決」

4 リアルタイムなデータベースのパフォーマンスの監視

自動データベース診断モニター(ADDM)は、 「データベースのパフォーマンスの自動監視」で説明しているように、データベースでパフォーマンスの問題を自動的に識別します。パフォーマンスの情報は、Oracle Enterprise Manager Cloud Control (Cloud Control)の「パフォーマンス」ページに表示されます。

「パフォーマンス」ページからその他のページにドリルダウンして、リアルタイムのデータベースのパフォーマンスの問題を識別できます。問題を検出した場合は、ADDMを手動で実行して、次のADDM分析を待たずにすぐにその問題を分析できます。ADDMを手動で実行する方法は、「現在のデータベースのパフォーマンスを分析するADDMの手動実行」を参照してください。

この章では、データベース・アクティビティのいくつかの側面の監視方法について説明します。内容は次のとおりです。

- ユーザー・アクティビティの監視

- インスタンス・アクティビティの監視

- ホスト・アクティビティの監視

- データベース・アクティビティのスパイクの原因の確認

- 「データベース・パフォーマンス」ページのカスタマイズ

ユーザー・アクティビティの監視

「Oracle Databaseパフォーマンス・メソッド」で説明しているように、データベース時間(DB時間)は、データベース・インスタンスのワークロードの合計の指標です。ある期間の平均アクティブ・セッションとは、期間中のすべてのユーザー・セッションの合計データベース時間を、期間の経過時間(wall-clock時間)で割った数値です。

「パフォーマンス」ページの「平均アクティブ・セッション」グラフには、期間のCPU使用率および待機クラスの平均アクティブ・セッションが表示されます。 Oracle Databaseパフォーマンス・メソッド で説明されているパフォーマンス・メソッドに従って、グラフからドリルダウンしてパフォーマンスの問題に関連するインスタンスの原因を識別して、解決できます。

ユーザー・アクティビティの監視手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。

3. 「平均アクティブ・セッション」積上げ面グラフの任意のスパイクまたは他の興味のある領域を特定します。
図4-1は、「パフォーマンス」ページの「平均アクティブ・セッション」グラフの例を示しています。

図4-1 「平均アクティブ・セッション」グラフ

積上げ面グラフの色付きの各領域には、指定された期間の指定されたイベントの平均アクティブ・セッションが表示されます。グラフで、各イベントの平均アクティブ・セッション量は、その下に積み上げられています。イベントは凡例に示されている順序でグラフに表示され、CPUはY軸でゼロから開始し、他のイベントはCPU待機からその他に昇順で積み上げられます。待機クラスでは、ディスクI/Oなどのリソースに対する待機によって、どのくらいのデータベース・アクティビティが使用されているのかが表示されます。

たとえば、図4-1では、午後1時26分前後に、5つのイベント(「CPU」、「CPU待機」、「スケジューラ」、「並行性」および「その他」)がサンプリングされた時間間隔でデータベース時間を消費しています。結合した平均アクティブ・セッションの合計は、2.1です。平均アクティブ・セッション値はCPUでは約1.52、CPU待機では約.38、スケジューラでは約.03、並行性では約.16、その他では約.01です。

Y軸の2の「CPUコア」ラインは、ホスト・システムのCPU数を示します。「CPU」の値が「CPUコア」のラインに達した場合は、データベース・インスタンスがシステムのCPU時間を100%消費しています。

図4-1では、グラフによって、ほとんどのアクティビティが1時20分から1時28分および1時53分前後から2時20分の間に発生していることがわかります。1時20分から1時28分の間のほとんどのアクティビティおよび1時59分以降のほとんどのアクティビティは、CPUの使用でした。待機クラスのアクティビティでは、1時56分から2時12分の間に数回スパイクが発生し、1時52分前後から2時8分前後の間に大量のデータベース時間を消費しています。

4. 各待機クラスを識別するには、クラスに対応する「平均アクティブ・セッション」グラフの領域にカーソルを移動します。
対応する待機クラスは、グラフの凡例で強調表示されます。

5. グラフで最大の色付きの領域または凡例で対応する待機クラスをクリックして、最大のアクティブ・セッションを含む待機クラスにドリルダウンします。
「CPU」または「CPU待機」をクリックすると、「実行中のアクティブ・セッション: CPU + CPU待機」ページが表示されます。「ユーザーI/O」などの、異なった待機クラスをクリックした場合、その待機クラスの「待機中アクティブ・セッション」ページが表示されます。図4-2は、「実行中のアクティブ・セッション: CPU + CPU待機」ページを示しています。

図4-2 実行中のアクティブ・セッション・ページ

実行中のアクティブ・セッション・ページには、1時間の時間軸が表示されます。各待機クラスの詳細は、「選択した5分間隔の詳細」の下に5分間隔で表示されます。

異なったディメンションで待機クラスの詳細を確認できます。次のいずれかの項を続行します。

- 「上位SQLの監視」

- 「上位セッションの監視」

- 「上位サービスの監視」

- 「上位モジュールの監視」

- 「上位アクションの監視」

- 「上位クライアントの監視」

- 「上位PL/SQLの監視」

- 「上位ファイルの監視」

- 「上位オブジェクトの監視」

6. 選択した間隔で時間を変更するには、グラフの影付き領域を異なった間隔にドラッグします。
「選択した5分間隔の詳細」セクションに含まれる情報は、選択した時間間隔を表示するよう自動的に更新されます。

図4-2の例では、CPUおよびCPU待機クラスで9時59分から10時4分までの5分間隔が選択されています。

7. パフォーマンスの問題を検出した場合、リアルタイムでその問題を解決できます。「パフォーマンス」ページで次のいずれかを実行します。

- 「平均アクティブ・セッション」グラフの下で、パフォーマンスの問題が発生した時間と一致するスナップショットをクリックしてこの期間のADDMを実行します。
ADDM分析の詳細は、「自動データベース診断モニターの分析の確認」を参照してください。

- 「ADDMの即時実行」をクリックしてスナップショットを手動で作成します。
手動でのスナップショットの作成の詳細は、「スナップショットの作成」を参照してください。ADDMを手動で実行する方法については、「現在のデータベースのパフォーマンスを分析するADDMの手動実行」を参照してください。

- 「ASHレポートの実行」をクリックしてアクティブ・セッション履歴(ASH)レポートを作成し、発生期間が短い一時的なパフォーマンスの問題を分析します。
ASHレポートの詳細は、「アクティブ・セッション履歴レポート」を参照してください。

上位SQLの監視

実行中のアクティブ・セッション・ページでは、「実行中の上位SQL」表に、CPUリソースを消費して積極的に実行しているSQL文のデータベース・アクティビティが表示されます。「アクティビティ(%)」列には、各SQL文が消費するアクティビティの割合が表示されます。1つまたは複数のSQL文がアクティビティの大部分を使用している場合、該当するSQL文を調査する必要があります。

実行中の上位SQL文の監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある「CPU」または「CPU待機」領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。

3. 「実行中の上位SQL」表で、最もアクティブなSQL文の「SQL ID」リンクをクリックします。たとえば、図4-2では、ほとんどのアクティブなSQL文のSQL IDはddthrb7j9a63fです。
「SQLの詳細」ページが表示されます。

待機時間の大部分を消費しているSQL文について、「SQLチューニング・アドバイザ」を使用するか、SQLチューニング・セットを作成して、問題のSQL文をチューニングします。

参照:

- 「SQL文の詳細の表示」

- 「SQLチューニング・アドバイザを使用したSQL文のチューニング」

上位セッションの監視

セッションは、データベース・インスタンス・メモリー内の論理的なエンティティで、データベースに対する現在のユーザー・ログインの状態を表します。セッションは、ユーザーがデータベースにログインしてから切断するまで続きます。たとえば、SQL*Plusを開始したとき、ユーザーはセッションを確立するために有効なデータベースのユーザー名およびパスワードを提供する必要があります。単一のセッションがデータベース・アクティビティの大部分を使用している場合、そのセッションを調べる必要があります。

実行中の上位セッションの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある「CPU」または「CPU待機」領域または凡例に対応する待機クラスをクリックします。
図4-2に示すように、「実行中のアクティブ・セッション: CPU + CPU待機」ページが表示されます。

3. 「実行中の上位セッション」セクションの「選択した5分間隔に対する詳細」の下で、「ビュー」リストから「上位セッション」を選択します。
「実行中の上位セッション」表が表示されます。表には選択した期間時、対応する待機クラスを待つ上位のセッションが表示されます。

4. 「実行中の上位セッション」表で、最大のデータベース・アクティビティを使用しているセッションの「セッションID」リンクをクリックします。
「セッションの詳細」ページが表示されます。

このページには、セッション・アクティビティ、セッション統計、オープン・カーソル、ブロックしているセッション、待機イベント履歴および選択したセッションのパラレルSQLなどの情報が含まれています。

セッションが過剰にデータベース・アクティビティを消費している場合、「セッションの中断」をクリックしてSQL文をチューニングすることを検討してください。

参照:

- 「SQL文のチューニング」

上位サービスの監視

サービスは共通の属性、サービス・レベルのしきい値、優先度を持つアプリケーション・グループです。たとえば、SYS$USERSサービスは、サービス名を明示的に指定せずユーザー・セッションが確立されたときに使用するデフォルトのサービス名です。SYS$BACKGROUNDサービスは、すべてのデータベースのバックグラウンド・プロセスで構成されています。サービスが待機時間の大部分を使用している場合、そのサービスを調べる必要があります。

サービスの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。

3. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位サービス」を選択します。
「上位サービス」表が表示されます。

図4-3 上位サービスの監視

「上位サービス」表は、選択した時間間隔中に対応した待機イベントを待機している上位サービスを表示します。たとえば、図4-3では、SYS$USERSサービスがデータベース・アクティビティの86.47%を使用しています。

4. 最もアクティブなサービスの「サービス」リンクをクリックします。
「サービス」ページが表示されます。

このページには、選択したサービスのモジュール、アクティビティおよび統計に関する情報が含まれます。

上位モジュールの監視

「モジュール」は、ワークロードの定義の一部としてサービス名を設定するアプリケーションを示します。たとえば、DBMS_SCHEDULERモジュールはSYS$BACKGROUNDサービスで実行するジョブを割り当てます。単一のモジュールを待機時間の大部分で使用する場合、そのモジュールを調べる必要があります。

モジュールの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。

3. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位モジュール」を選択します。
「上位モジュール」表が表示されます。

図4-4 上位モジュールの監視

「上位モジュール」表は、選択した時間間隔中に対応した待機イベントを待機している上位モジュールを表示します。たとえば、図4-4では、SQL*Plusモジュールが、データベース・アクティビティの84%以上を使用しているため、これを調査する必要があります。図4-2に示すように、データベース・アクティビティの大半は、ユーザーHRのSQL*Plusセッションによって使用されています。

4. アクティビティの割合が最も高いモジュールの「モジュール」リンクをクリックします。
「モジュール」ページが表示されます。

このページには、選択したモジュールのアクション、アクティビティおよび統計が含まれています。

上位アクションの監視

「アクション」は、モジュールで実行されたジョブを示します。たとえば、DBMS_SCHEDULERモジュールはGATHER_STATS_JOBアクションを実行して、すべてのデータベース・オブジェクトで統計を採取します。単一のアクションが待機時間の大部分を使用している場合、そのアクションを調べる必要があります。

アクションの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。

3. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位アクション」を選択します。
「上位アクション」表が表示されます。

図4-5 上位アクションの監視

「上位アクション」表は、選択した時間間隔中に対応した待機イベントを待機している上位アクションを表示します。たとえば、図4-5では、SQL*Plusモジュールに関連するSALES_INFOアクションがデータベース・アクティビティの40.3%、EMP_DMLが39.55%、EMP_Queryが4.48%を使用しています。この情報は、ユーザーHRのデータベース・セッションがデータベース・アクティビティの82%以上を使用していることを示す図4-2と一致します。

4. 最もアクティブなアクションの「アクション」リンクをクリックします。
「アクション」ページが表示されます。

このページには、選択したアクションの統計が含まれています。

上位クライアントの監視

クライアントは、データベースで操作を実行するリクエストを開始するWebブラウザまたはクライアント・プロセスです。単一のクライアントが待機時間の大部分を使用している場合、そのクライアントを調べる必要があります。

クライアントの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。

3. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位クライアント」を選択します。
「上位クライアント」表が表示されます。

図4-6 上位クライアントの監視

「上位クライアント」表は、選択した時間間隔中に対応した待機イベントを待機している上位クライアントを表示します。たとえば、図4-6では、client1およびclient2が、データベース・アクティビティの大部分を消費しています。

4. 最もアクティブなクライアントの「クライアントID」リンクをクリックします。
「クライアント」ページが表示されます。

このページには、選択したユーザー・プロセスの統計が含まれています。

上位PL/SQLの監視

単一のPL/SQLサブプログラムが待機時間の大部分を使用する場合、そのPL/SQLサブプログラムを調べる必要があります。

PL/SQLサブプログラムの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。

3. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位PL/SQL」を選択します。
「上位PL/SQL」表が表示されます。

図4-7 上位PL/SQLの監視

「上位PL/SQL」表は、選択した時間間隔中に対応した待機イベントを待機している上位PL/SQLサブプログラムを表示します。たとえば、図4-7では、SYS.DBMS_AQ.LISTEN#2サブプログラムがデータベース・アクティビティの100%を使用しています。

4. 最もアクティブなサブプログラムの「PL/SQLサブプログラム」リンクをクリックします。
「PL/SQLサブプログラム」ページが表示されます。

このページには、選択したサブプログラムの統計が表示されます。

上位ファイルの監視

特定のファイルの平均待機時間のデータは、「待機中アクティブ・セッション: ユーザーI/O」ページから使用できます。

ファイルの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある「ユーザーI/O」領域または凡例に対応する待機クラスをクリックします。
「待機中アクティブ・セッション: ユーザーI/O」ページが表示されます。

3. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位ファイル」を選択します。
「上位ファイル」表が表示されます。

図4-8 上位ファイルの監視

「上位ファイル」表は、選択した時間間隔中に指定したファイルの平均待機時間を表示します。たとえば、図4-8では、待機時間の75%がSYSTEMおよびSYSAUXの表領域のファイルに対するI/Oに関連しています。

4. 最大平均待機時間を含むファイルの「表領域」リンクをクリックします。
「表領域の表示」ページが表示されます。

上位オブジェクトの監視

リソースを待機している上位データベース・オブジェクトのデータは、「待機中アクティブ・セッション: ユーザーI/O」ページから使用できます。

オブジェクトの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. 「アクティブ・セッション」グラフで、グラフにある「ユーザーI/O」領域または凡例に対応する待機クラスをクリックします。
「待機中アクティブ・セッション: ユーザーI/O」ページが表示されます。

3. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位オブジェクト」を選択します。
「上位オブジェクト」表が表示されます。

図4-9 上位オブジェクトの監視

「上位オブジェクト」表は、選択した時間間隔中に対応した待機イベントを待機している上位データベース・オブジェクトを表示します。

たとえば、図4-9は、待機時間の84%以上が名前の不明なオブジェクトによるものであることを示しています。図4-2の情報に基づいて、パフォーマンスの問題が問合せおよび変更DML文によって発生していると判断できます。

4. 最大平均待機時間を含むオブジェクトの「オブジェクト名」リンクをクリックします。
オブジェクトの「表示」ページが表示されます。

インスタンス・アクティビティの監視

「パフォーマンス」ページの「平均アクティブ・セッション」グラフの下に、データベース・インスタンス・アクティビティを監視するために使用できる他のグラフがあります。「「データベース・パフォーマンス」ページのカスタマイズ」で説明しているように、「パフォーマンス」ページをカスタマイズして、デフォルトで最も有効なインスタンス・アクティビティ・グラフを表示できます。

インスタンス・アクティビティ・グラフを使用して、次のタスクを実行できます。

- スループットの監視

- I/Oの監視

- パラレル実行の監視

- サービスの監視

スループットの監視

データベース・スループットによって、時間の単位にデータベースが実行する作業量を測定できます。「スループット」グラフは「平均アクティブ・セッション」グラフで使用する競合を表示します。

「スループット」グラフのピークを「平均アクティブ・セッション」グラフのピークと比較します。「平均アクティブ・セッション」グラフに待機中のセッションが多数表示され、内部的な競合が示されている場合でも、スループットが高ければ、状況は許容できる可能性があります。内部的な競合が低く、スループットが高い場合も、データベースはおそらく効率よく実行されています。一方、内部的な競合が高くスループットが低い場合は、データベースのチューニングを検討してください。

スループットの監視手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。

3. 「スループット」タブをクリックします。

4. 次の「インスタンス・スループット率」オプションのいずれかを選択します。

- 1秒当たり
2つのグラフが表示されます。1つは1秒当たりのログオンおよびトランザクションの数を表示し、もう1つは1秒当たりの物理読取りおよびREDOサイズを表示します。

図4-10は、「1秒当たり」の「インスタンス・スループット率」が選択された「スループット」グラフを示しています。図の真ん中の棒は、領域の考慮によって削除されたグラフの部分(1時37分から1時52分前後)を示しています。図4-10では、ほとんどのトランザクションが午後1時15分から午後1時27分および午後2時8分から午後2時12分の間に発生しています。

- 1トランザクション当たり
1トランザクション当たりの物理読取りおよびREDOサイズの数を示すグラフが表示されます。

図4-10 スループットの監視

I/Oの監視

「I/O」グラフは、すべてのデータベース・クライアントから収集したI/O統計を表示します。データベース・プロセスのI/O待機時間は、保留中のI/Oが完了した場合、プロセスが有効な動作を実行する時間を示します。Oracle Databaseは、均一な状態ですべての重要なI/OコンポーネントのI/O待機時間を取得して、OracleプロセスでのすべてのI/O待機時間がI/O統計から推論できるようにします。

図4-11 I/Oの監視

「同期単一ブロック読取りの待機時間」グラフには、ブロック読取りにおいて認識された合計のI/O遅延が表示されており、I/Oリクエストが発行された時間と、転送の最初のバイトが到達した時間の差です。待機時間が10ミリ秒未満の場合は、ほとんどのシステムが正常に稼働しています。このタイプのI/Oリクエストは、次の理由から、I/Oパフォーマンスの最適なインジケータです。

- 記憶域の書込みキャッシュのため、書込み操作で良好なパフォーマンスを示します。

- 複数ブロックのI/Oリクエストのサイズが異なるため、それぞれにかかる時間は異なります。

- 非同期I/Oリクエストの待機時間は完全なI/O待機時間を表しません。

次の項の説明に従って、「I/Oブレークダウン」の選択に応じて、他のグラフが表示されます。

- 関数によるI/Oの監視

- タイプ別のI/Oの監視

- コンシューマ・グループ別のI/Oの監視

関数によるI/Oの監視

「I/Oファンクション」グラフにより、アプリケーションまたはジョブごとのI/O使用レベルが決定されます。コンポーネント・レベルの統計により、I/Oバンド幅使用状況の詳細が表示され、ジョブのスケジューリングおよびI/Oのプロビジョニングに使用できます。コンポーネント・レベルの統計は次のカテゴリに分類されます。

- バックグラウンド・タイプ
このカテゴリには、ARCH、LGWRおよびDBWRが含まれます。

- アクティビティ
このカテゴリには、XDB、Streams AQ、データ・ポンプ、リカバリおよびRMANが含まれます。

- I/Oタイプ
このカテゴリには、次のI/Oタイプが含まれています。

- ダイレクト書込み
この書込みは、バッファ・キャッシュ由来ではなく、フォアグラウンド・プロセスによって発行されます。

- ダイレクト読取り
ダイレクト読取りは、バッファ・キャッシュを迂回して、データ・ブロックをプロセス専用メモリーに直接読み込む、データ・ファイルからの物理I/Oです。

- Buffer Cache Reads

- その他
このカテゴリには、制御ファイルのI/OのようなI/Oが含まれます。

関数によるI/Oの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. インスタンス・アクティビティ・グラフで、「I/O」をクリックします。
「同期単一ブロック読取りの待機時間」、「I/O MB/秒」および「I/Oリクエスト/秒」グラフが表示されます。

3. 「I/Oブレークダウン」で、「I/Oファンクション」を選択します。
「ファンクションごとのI/O MB/秒」グラフと「ファンクションごとのI/Oリクエスト数/秒」グラフが表示されます。

図4-11の例は、ログ・ライターによって大量のI/Oが実行されていることを示しています。ログ・ライターのアクティビティのピークは、約600 I/Oリクエスト/秒です。

4. グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するファンクションをクリックして、I/Oレートが最も高いファンクションにドリルダウンします。
「I/OファンクションごとのI/Oスループット」ページが選択したカテゴリの詳細とともに表示されます。

I/OのMBまたはI/Oリクエストの詳細に関する、リアルタイム・データまたは履歴データを参照できます。

参照:

- ARCH、LGWR、DBWRなどのデータベース・バックグラウンド・プロセスの詳細は、『Oracle Database概要』を参照してください。

タイプ別のI/Oの監視

「I/Oタイプ」グラフにより、読取りおよび書込み操作のタイプ別にI/Oを監視できます。小規模I/Oとは128KBより小さいリクエストで、通常、単一のデータベース・ブロックのI/O操作です。大規模I/Oとは、128KB以上のリクエストです。大規模のI/Oは、表または索引のスキャン、ダイレクト・データ・ロード、バックアップ、リストア、アーカイブなどのデータベース操作によって生成されます。

OLTP環境などでトランザクションの時間を軽減するために最適化する場合は、小規模I/Oの待機時間を監視します。待機時間が長いということは、通常、ストレージ・システムがボトルネックであることを示します。

データ・ウェアハウス内にあるような大規模な問合せを最適化する場合、パフォーマンスはI/Oリクエストの待機時間ではなく、ストレージ・システムが実現できる最大のスループットに依存します。この場合、同期単一ブロックのI/O待機時間ではなくI/O MB/秒が監視されます。

タイプ別のI/Oの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. インスタンス・アクティビティ・グラフで、「I/O」をクリックします。
I/O MB/秒のグラフおよび「1秒当たりのI/Oリクエスト」グラフが表示されます。

3. 「I/Oブレークダウン」で、「I/Oタイプ」を選択します。
「I/OタイプごとのI/O MB/秒」グラフと「I/OタイプごとのI/Oリクエスト数/秒」グラフが表示されます。

前のサンプル・グラフでは、1秒当たりの小規模の書込み数が600を超えています。これらの書込みは、図4-11に示されるログ・ライターのI/Oリクエストに対応しています。

4. グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するファンクションをクリックして、I/Oレートが最も高いファンクションにドリルダウンします。
「I/O詳細」ページが表示されます。

I/OのMBまたはI/Oリクエストの詳細に関する、リアルタイム・データまたは履歴データを参照できます。

コンシューマ・グループ別のI/Oの監視

Oracle Database Resource Managerが使用可能である場合は、データベースにより、現在有効なリソース・プランに含まれるコンシューマ・グループ全体のI/O統計が収集されます。「コンシューマ・グループ」グラフを使用すると、I/Oをコンシューマ・グループ別に監視できます。

リソース・プランでは、リソースを様々なユーザー(リソース・コンシューマ・グループ)間で分散する方法を指定します。リソース・コンシューマ・グループを使用して、ユーザー・セッションをリソース要件ごとに構成できます。_ORACLE_BACKGROUND_GROUP_コンシューマ・グループには、バックグラウンド・プロセスにより発行されたI/Oリクエストが含まれることに注意してください。

コンシューマ・グループ別のI/Oリクエストの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. インスタンス・アクティビティ・グラフで、「I/O」をクリックします。
I/O MB/秒のグラフおよび「1秒当たりのI/Oリクエスト」グラフが表示されます。

3. 「I/Oブレークダウン」で、「コンシューマ・グループ」を選択します。
「コンシューマ・グループごとのI/O MB/秒」グラフおよび「コンシューマ・グループごとのI/Oリクエスト数/秒」グラフが表示されます。

パラレル実行の監視

「パラレル実行」グラフには、パラレル問合せに関連するシステム・メトリックが表示されます。メトリックは、単位当たりの統計数値です。この単位には、秒数などの時間尺度、トランザクションまたはセッションを指定できます。

パラレル問合せでは、SQL文を実行する作業が複数のプロセスに分割されます。グラフには、サンプル・セッション・アクティビティの最も高い割合を占める待機イベントを待機していたパラレル問合せが表示されます。

図4-12 パラレル実行の監視

パラレル実行の監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. インスタンス・アクティビティ・グラフで、「パラレル実行」をクリックします。
「パラレル実行」グラフが表示されます。

2つのペアのグラフが表示されます。最初のペアはY軸上のセッションの数を示し、2番目のペアはY軸上の秒単位の率を示します。

図4-12の例では、問合せのパラレル化が午後12時30分から午後4時までアクティブでした。

サービスの監視

「サービス」は共通の属性のアプリケーション・グループ、サービス・レベルのしきい値および優先度を示します。たとえば、SYS$USERSサービスは、サービス名を明示的に指定せずユーザー・セッションが確立されたときに使用するデフォルトのサービス名です。

図4-13 サービスの監視

サービスの監視手順:

1. 「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。

2. インスタンス・アクティビティ・グラフで、「サービス」をクリックします。
「サービス」グラフが表示されます。「サービス」グラフには、表示中の期間における、対応する待機イベントについて待機しているサービスが表示されます。アクティブ・セッションのみが表示されます。

図4-13では、SYS$USERSサービスに最大数のアクティブ・セッションがあります。

3. グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するサービスをクリックして、アクティブ・セッションが最も多いサービスにドリルダウンします。
「サービス」ページが表示され、「アクティビティ」サブページが表示されます。

このページでは、サービスに関連付けられたすべての待機クラスに対するセッション負荷を示すリアルタイム・データを参照できます。

ホスト・アクティビティの監視

パフォーマンス・ページの「ホスト」表に、データベースのホスト・システムの使用状況に関する情報が表示されます 。

図4-14 ホスト・アクティビティの監視

ホスト・システムにデータベースを実行するために十分な使用可能なリソースがあるかどうかを確認するには、使用するCPU、メモリーおよびディスクのリソースの量に対する適切な要件を確立します。次に、データベースによりこれらのリソースが過剰に消費されていないかどうかを確認できます。

CPU、メモリーおよびディスク使用率の詳細の表示手順:

1. 「ターゲット」メニューから「ホスト」を選択します。
ホスト・ページが表示されます。

2. ホストのリストで、データベースが存在するホストの名前をクリックします。
ホスト名ページが表示されます。ホスト名とは、ホストの名前です。

3. 十分なリソースが使用可能かどうか、またシステムにより過剰なリソースが使用されているかどうかを確認します。
たとえば、次の場合にデータベースにより使用されるCPU、メモリーおよびディスクのリソースの量を確認します。

- システムがアイドル状態(データベースのアクティビティがほとんど存在しないか、データベース以外のアクティビティが存在する)の場合

- 平均ワークロード

- ピーク・ワークロード

システムのリソース使用率のレベルを評価する場合、ワークロードは重要なファクタです。ワークロードのピーク時に、CPUに10パーセントのアイドル時間および待機時間があり、リソースの使用率が90パーセントの場合、許容範囲内です。ただし、通常のワークロードにおいて、システムが高い使用率を表示するような場合は、追加のワークロードのための容量はありません。

次のタスクを実行して、データベースのホスト・アクティビティを監視します。

- CPU使用率の監視

- メモリー使用率の監視

- ディスクI/O使用率の監視

4. パフォーマンス・メトリックに対する適切なしきい値を設定すると、これらのしきい値を超えた場合、システムにより自動的にアラートが生成されます。
メトリックのしきい値の設定については、「パフォーマンス・アラートのメトリックしきい値の設定」を参照してください。

CPU使用率の監視

CPUの問題に対処するには、まずシステムに必要なCPUリソースの量を適切に予測します。次に、十分なCPUリソースが使用可能であるかどうかを判断し、システムがリソースを過剰に使用している時期を確認します。この項では、CPU使用率を監視する方法について説明します。

CPU使用率を監視するには、次のステップを実行します。

1. ホスト名ページにアクセスします(「ホスト・アクティビティの監視」を参照)。

2. 「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。
「CPU詳細」ページが表示されます。

このページには、CPU使用率、I/O待機および最近1時間の負荷に関する統計が含まれます。上位10のプロセスは、CPU使用率に基づいてリストされます。

3. 「CPU使用率」グラフを使用して、現在のCPU使用率を確認します。
「CPU使用率」グラフには、過去1時間半のCPU使用率が表示されています。現在の値はグラフの下に表示されます。標準のワークロード時には、この値がクリティカルなしきい値を超えることはありません。

4. 「CPU使用率」をクリックします。
「CPU使用率」ページが表示されます。

このページには、過去24時間に生成されたCPU使用率統計および関連アラートが表示されます。

次の例では、午後12時28分にCPU使用率に約8%から89.49%への急激なスパイクが発生しています。これは警告しきい値の80%を超えています。

この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、CPUパフォーマンスの問題を調査する必要があります。

5. 「CPU詳細」ページに戻ります。「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。

6. 「CPU I/O待機」グラフを使用して、現在のCPU I/O待機時間を確認します。
「CPU I/O待機」グラフには、過去1時間半のCPU I/O待機時間が表示されています。現在の値はグラフの下に表示されます。通常のワークロード時にはCPU I/O待機の値は警告のしきい値を超えません。

CPU I/O待機とは、間隔中にI/Oを待機しているジョブの平均数を表します。

7. 「CPU I/O待機」をクリックします。
「I/O待機内のCPU」ページが表示されます。

このページには、CPU I/O待機統計および24時間以内に生成された関連するアラートが含まれます。

この値に予期しない増加が発生し、標準のワークロード時にその状態が継続する場合、CPUパフォーマンスに問題がある場合があります。

8. 「CPU詳細」ページに戻ります。「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。

9. 「CPU負荷」グラフを使用して、現在のCPU使用率を確認します。
「CPU負荷」グラフには、過去1時間半のCPU負荷が表示されています。現在の値はグラフの下に表示されます。標準のワークロード時には、CPU負荷の値が警告のしきい値を超えることはありません。

CPU負荷は前のCPUリソースでスケジュールを設定された待機中の平均プロセス数、または時間の経過によるCPUの競合時間のレベルを表します。

10. 「CPU負荷」をクリックします。
実行キューの長さ(5分平均)ページが表示されます。

このページには、CPU負荷の統計および24時間以内に生成された関連するアラートが含まれます。

この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、CPUのパフォーマンスに問題がある場合があります。

11. 「CPU詳細」ページに戻ります。「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。

12. 「上位10プロセス(CPU順)」表を確認します。
プロセスがCPU使用率を過剰に消費する場合、そのプロセスを調査します。

次の例では、2つのデータベース・プロセスがCPU使用率の87.6%を使用しています。このため、潜在的なCPUのパフォーマンスの問題の原因はデータベースである可能性が高く、調査が必要です。

13. CPUのパフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。

- Oracle Database Resource Managerを使用してCPUのリソース割当てに優先順位を付けることにより、ピーク時の使用状況における影響を低減します。

- CPUを大量に消費する多くのプロセスの実行の回避

- システムのアーキテクチャ変更を含む、ハードウェアの能力向上

参照:

- CPUの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

- Oracle Database Resource Managerの詳細は、『Oracle Database管理者ガイド』を参照してください。

メモリー使用率の監視

オペレーティング・システムのパフォーマンスの問題には、一般的にプロセス管理、メモリー管理およびスケジューリングが関連しています。この項では、メモリー使用率を監視し、ページングやスワッピングなどの問題を識別する方法について説明します。

メモリー使用率を監視するには、次のステップを実行します。

1. ホスト名ページにアクセスします(「ホスト・アクティビティの監視」を参照)。

2. 「ホスト」メニューから、「監視」、「メモリーの詳細」の順に選択します。
メモリーの詳細・ページが表示されます。

このページには、メモリー使用率、ページ・スキャン率および最近1時間のスワップ使用量に関する統計が含まれます。上位10のプロセスもメモリー使用率順にリストされます。図4-15は、「メモリーの詳細」ページの一部を示しています。「上位10プロセス(メモリー順)」セクションは表示されません。

図4-15 「メモリーの詳細」ページ

3. 「メモリー・ページ・スキャン率」グラフを使用して、現在のメモリー・ページ・スキャン率を確認します。
メモリー・ページ・スキャン率の現在の値がグラフの下に表示されます。UNIXおよびLinuxでは、この値は1秒当たりにスキャンされるページの平均数を表します。Microsoft Windowsでは、困難なページ・フォルトの解決のためにディスクから読み込まれるまたはディスクに書き込まれるページの率を表します。この値は、システム規模の遅延を引き起こす可能性のあるフォルトの主要なインジケータとなります。

4. 「メモリー・スキャン率(ページ/秒)」をクリックします。
「メモリー・ページ・スキャン率」ページが表示されます。

このページには、メモリー・ページ・スキャン率の統計および24時間以内に生成された関連アラートが含まれます。

この値に予期しない増加が発生し、標準のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。

5. 「メモリーの詳細」ページに戻ります。「ホスト」メニューから、「監視」、「メモリーの詳細」の順に選択します。

6. 「メモリー使用率」グラフを使用して、現在のメモリーの使用率を確認します。
「メモリー使用率」グラフは、メモリーの使用量を示します。メモリー使用率の現在の値はグラフの下に表示されます。標準のワークロード時には、この値が警告のしきい値(黄色で表示)を超えることはありません。

7. 「メモリー使用率(%)」をクリックします。
「メモリー使用率」ページが表示されます。

このページには、過去24時間に生成されたメモリー使用率統計および関連アラートが表示されます。

この例では、メモリー使用率が80%を超えたため、「メトリック・アラート履歴」表に警告が表示されます。

この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。

8. 「メモリーの詳細」ページに戻ります。「ホスト」メニューから、「監視」、「メモリーの詳細」の順に選択します。

9. 「スワップ使用率」グラフを使用して、現在のスワップ使用量を確認します。
「スワップ使用率」グラフは、スワップ領域の使用率を示します。スワップ使用率の現在の値はグラフの下に表示されます。通常のワークロード時には、この値が警告のしきい値を超えることはありません。

10. 「スワップ使用率(%)」をクリックします。
「スワップ使用率」ページが表示されます。

このページには、過去24時間に生成されたスワップ使用率統計および関連アラートが表示されます。

この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。

11. 「メモリーの詳細」ページに戻ります。「ホスト」メニューから、「監視」、「メモリーの詳細」の順に選択します。

12. 「上位10プロセス(メモリー順)」表で上位のプロセスを確認します。
プロセスがメモリーを過度に多く占有する場合、このプロセスを調査する必要があります。

13. メモリー・パフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。

- 自動メモリー管理を使用して、システム・グローバル領域(SGA)と集計プログラム・グローバル領域(PGA集計)の間でメモリーを自動的に管理および分散します。

- メモリー・アドバイザを使用してSGAおよびPGAのメモリー・ターゲット値を設定します。

- 自動PGA管理を使用してSQLメモリーの実行を管理します。

- メモリーを大量に消費する多くのプロセスの実行を回避します。

- ページングまたはスワッピングを削減します。

- カーソル共有時のオープン・カーソルおよびハード解析の数を削減します。

参照:

- 自動メモリー管理の使用については、『Oracle Database管理者ガイド』を参照してください。

- メモリーの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

ディスクI/O使用率の監視

データベースは一連のディスク上に存在するため、I/Oサブシステムのパフォーマンスは、データベースのパフォーマンスにとって非常に重要です。ディスクに関する重要な統計には、1秒当たりのディスクI/Oおよびサービス時間の長さが含まれます。これらの統計には、ディスクが最適な状態で実行されているかどうか、またはストレージ・システムが過負荷の状態にあるかどうかが表示されます。この項では、ディスクI/O使用率を監視する方法について説明します。

ディスクI/O使用率を監視するには、次のステップを実行します。

1. 「ターゲット」メニューから「ホスト」を選択します。
ホスト・ページが表示されます。

2. ホストのリストで、データベースが存在するホストの名前をクリックします。
ホスト名ページが表示されます。ホスト名とは、ホストの名前です。

3. 「ホスト」メニューから、「監視」、「ディスクの詳細」の順に選択します。
「ディスクの詳細」ページが表示されます。

このページには、ディスクI/O使用率およびサービス時間統計、および使用されていた時間の割合ごとに表示される上位ディスク・デバイスが含まれます。

図4-16 「ディスクの詳細」

4. 「全ディスクによる合計ディスクI/O」グラフを使用して、現在のディスクI/O使用率を確認します。
「全ディスクによる合計ディスクI/O」グラフに、1秒当たりに実行されるディスクI/Oの数が表示されます。1秒当たりの合計ディスクI/Oに対する現在の値はグラフの下に表示されます。図4-16の値は153.07です。

5. 「全ディスクによる合計ディスクI/O(/秒)」をクリックします。
「全ディスクによる合計ディスクI/O(/秒)」ページが表示されます。

このページにはディスク使用率の統計、および24時間以内に生成された関連するアラートが含まれます。

この値に予期しないスパイクが発生し、標準のワークロード時にその状態が継続する場合、ディスクI/Oのパフォーマンスに問題がある可能性があり、調査が必要です。

6. 全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)グラフを使用して、現在のI/Oサービス時間を確認します。
全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)グラフには、ディスクI/Oの最長サービス時間がミリ秒単位で表示されます。最長I/Oサービス時間に対する現在の値はグラフの下に表示されます。図4-16の値は、1.79です。

7. 「ホスト」メニューから、「監視」、「ディスクの詳細」の順に選択します。
「ディスクの詳細」ページが表示されます。

8. 全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)をクリックします。
全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)ページが表示されます。

このページにはI/Oサービス時間の統計および24時間以内に生成された関連するアラートが含まれます。

この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、ディスクI/Oのパフォーマンスに問題がある可能性があり、調査が必要です。

9. 「ホスト」メニューから、「監視」、「ディスクの詳細」の順に選択します。
「ディスクの詳細」ページが表示されます。

10. ディスクの詳細ページの「上位ディスク・デバイス(ビジー順にソート)」表で、ディスク・デバイスを検証します。
特定のディスクがほとんどの時間でビジーになっている場合は、このディスクを調査する必要があります。

図4-16では、Oracle Databaseのホスト・ドライブ(xvdaおよびxvda1)へのアクセス時間がわずか12.14%および10.93%であるため、ディスクのパフォーマンスの問題はないと考えられます。

11. ディスクI/Oのパフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。

- Oracle Automatic Storage Management (Oracle ASM)を使用してデータベース記憶域を管理します。

- 全データを全ディスクにストライプ化し、I/Oを分散します。

- 別のディスクにファイル(アーカイブREDOログ、REDOログなど)を移動します。

- 必要なデータをメモリーに保存して物理I/Oの数を削減します。

参照:

- ディスクI/Oの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

データベース・アクティビティのスパイクの原因の確認

「パフォーマンス」ページにデータベース・アクティビティのスパイクが表示されている場合は、「ASH分析」ページにアクセスすると、多くのデータベース時間を消費しているセッションを特定することができます。このページには積上げ面グラフが表示され、待機クラス、モジュール、アクション、SQL ID、インスタンス、ユーザー・セッション、コンシューマ・グループなど、様々なディメンションのアクティブ・セッション・アクティビティを視覚的に確認できます。ディメンションの特定のメンバーにドリルダウン(垂直ズーム)したり、任意の期間にズーム・インまたはズーム・アウト(水平ズーム)できます。

アクティブ・セッション・アクティビティを「ASH分析」ページに表示する手順

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「ASH分析」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「ASH分析」ページが表示されます。

図4-17に、「ASH分析」ページの例を示します。

図4-17「ASH分析」ページ

3. 最上部のグラフ内の影付き領域を目的の期間にドラッグすることにより、選択した期間中のトップ・アクティビティの概要を表示します。

ヒント:

スライダのどちらかの端でコントロールを選択し、左または右にドラッグすることによって、影付きのスライダ領域の選択期間を変更することができます。

デフォルト設定の1時間の期間を選択することも、グラフ上のセレクタ・ボタンを使用して1日、1週間または1か月の各期間を選択することもできます。また、「カレンダ」または「カスタム」ボタンを使用して、事前設定された選択肢以外の期間を表示することもできます。

4. 選択した期間をより詳細な視点で表示するには、このページのアクティビティ・グラフを使用します。デフォルトでは、待機クラスのワークロード・アクティビティのブレークダウンが表示されます。

5. システムに悪影響を与えているトップ・アクティビティ・セッションの詳細な統計を表示することにより、影響を調査します。
セッションの詳細な統計を表示する手順

a. グラフ内の最大スパイクか、グラフの横にある凡例内の対応する待機クラスを選択します。これにより、興味のある待機クラスを除くグラフ内のすべてがフィルタで除去されます。
たとえば、「並行性」待機クラスのスパイクが最大であったことがグラフに示されている場合は、「並行性」の凡例のグラフ領域を選択します。これにより、グラフがリフレッシュされ、「並行性」値のみが表示され、「フィルタ」バーに「待機クラス: 並行性」アイコンが表示されます。

ヒント:

フィルタの数は無制限に作成できます。

b. 「アクティビティ」セッションで、ディメンション・リストから「トップ・ディメンション」を選択します。選択内容に応じてグラフがリフレッシュされ、選択した特定のカテゴリの値が表示されます。
たとえば、前述のように「並行性」のフィルタを作成した後、リストから「トップ・ディメンション」を選択し、次に「ユーザー・セッション」を選択すると、グラフに「並行性」のユーザー・セッションのみが表示されます。

図4-18は、選択した「トップ・ディメンション」でのアクティビティ・リストを示します。

図4-18 アクティビティ・リスト

6. オプションとして、システム・アクティビティのグラフィカル・ビューを表示するには、ロード・マップを使用します。
ロード・マップは、選択した期間内でアクティビティの変更を時系列で確認しない場合に1次元または多次元レイアウトのアクティビティを表示する際に役立ちます。

図4-19は、待機クラスと待機イベントによるアクティビティのロード・マップを示しています。

図4-19 「ASH分析」ページのロード・マップ

7. オプションとして、「保存」をクリックし、オフライン参照用のHTMLファイルとして現在のページ・ビューを保存します。「保存」をクリックすると、「別名保存」ダイアログ・ボックスが表示され、レポートの保存場所を指定できます。このアクションにより、分析の一部として現在収集されているすべてのデータを網羅するEnterprise Managerアクティブ・レポートが作成されます。後でこれを使用して、たとえば、より綿密な事後分析を実行できます。Cloud Controlまたはデータベース接続を使用しないでレポートを表示できます。
「メール」をクリックして、添付ファイルとしてページを送信する電子メール・アドレスも指定できます。

「データベース・パフォーマンス」ページのカスタマイズ

要件に対応できるように、「パフォーマンス」ページをカスタマイズできます。「インスタンス・アクティビティの監視」で説明されているように、「パフォーマンス」ページにデフォルトで表示するグラフおよびグラフの表示方法を指定できます。「スループット」グラフおよび「サービス」グラフにベースライン値を含めるかどうかも決定できます。

Cloud Controlには、リポジトリ内の各ユーザーの永続カスタマイズ情報が格納されます。パフォーマンス・ページにアクセスして設定を変更するまで残りのブラウザ・セッションに対してカスタマイズ・データをキャッシュする場合は、Cloud Controlによりカスタマイズ・データが取得されます。

「パフォーマンス」ページのカスタマイズ手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。

3. 「設定」をクリックします。
「「パフォーマンス」ページの設定」ページが表示されます。

4. 「グラフの詳細設定」セクションで、インスタンス・アクティビティ・グラフの表示のデフォルトを選択します。次の手順を実行します。

a. 「デフォルトのビュー」で、「平均アクティブ・セッション」セクションにデフォルトで表示するインスタンス・アクティビティ・グラフを選択します。
「スループット」、「I/O」、「パラレル実行」および「サービス」の各グラフの説明は、「インスタンス・アクティビティの監視」を参照してください。

b. 「スループット・グラフの設定」で、「スループット」グラフに表示するデフォルトのインスタンスのスループットの割合として、「1秒当たり」または「1トランザクション当たり」を選択します。
「スループット」グラフの使用方法は、「スループットの監視」を参照してください。

c. 「I/Oグラフの設定」で、「I/O」グラフに表示するデフォルトのI/Oオプションを選択します。
「I/O」グラフの使用方法は、「I/Oの監視」を参照してください。

5. 「ベースライン表示」セクションで、パフォーマンス・グラフでのAWRベースラインの表示方法を選択します。次のいずれかの操作を行います。

- 「ベースライン値を表示しない」を選択してベースラインを表示させないようにします。

- 「システム変動ウィンドウ・ベースラインを使用して、99番目のパーセンタイル・ラインを表示します」を選択して、「スループット」グラフおよび「サービス」グラフの表示のパーセンタイルを指定します。

- 「計算された統計を持つ静的ベースラインを使用して、99番目のパーセンタイル・ラインを表示します」を選択し、「ベースライン名」リストからベースライン名を選択します。
「ベースラインのしきい値統計の計算」の説明に従って、スケジュール統計の計算を経たベースラインのみ選択できます。

6. 「OK」をクリックします。
「パフォーマンス」ページが表示されます。

カスタマイズ設定に従って、グラフが表示されます。

5 リアルタイムなデータベース操作の監視

この章では、Oracle Enterprise Manager Cloud Control (Cloud Control)での現在および最近のデータベース操作の監視方法について説明します。この章の内容は次のとおりです。

- データベース操作の監視について

- データベース操作の作成

- Cloud Controlでのデータベース操作の監視

参照:

- APIを使用したデータベース操作の監視の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください。

データベース操作の監視について

Cloud Controlの「SQL監視」ページには、データベース操作実行中のパフォーマンスの管理、最近完了した操作に使用された時間およびリソースの詳細の表示およびデータベース操作の追跡やレポートに使用できる情報が表示されます。データベース操作は、エンド・ユーザーまたはアプリケーション・コードによって定義される一連のデータベース・タスクで、SQL文、PL/SQLファンクション、バッチ・ジョブまたは抽出、変換およびロード(ETL)処理などです。データベース操作は、定義、監視およびレポートすることができます。

この項の内容は次のとおりです。

- データベース操作のタイプ

- データベース操作の監視の目的

- データベース操作の監視の有効化

- データベース操作の属性

参照:

- データベース操作の監視の詳細は、『Oracle Database SQLチューニング・ガイド』を参照

データベース操作のタイプ

データベース操作は、単一または複合のいずれかです。単純なデータベース操作には、単一のSQL文、PL/SQLのプロシージャまたはファンクションがあります。SQL文がパラレルで実行される場合、またはSQL文が1回の実行で5秒以上のCPUまたはI/O時間を消費している場合に、単一の操作の監視が自動的に開始されます。

複合データベース操作は、データベース・セッション内に定義された2つの時点の間のアクティビティです。「データベース操作の作成」で示すように、PL/SQLプロシージャを使用することで、複合操作を開始および終了します。1つのデータベース・セッションで同時に実行できるのは、1つの複合データベース操作のみです。

データベース操作の監視の目的

データベース操作監視は通常、次のユーザーにとって役に立ちます。

- コストの高い(応答時間が短い)SQL文とPL/SQLファンクションの識別を行うDBA

- データ・ウェアハウスまたはOLTPシステムでバッチ・ジョブを管理するDBA

- Data Pump操作など、特定の操作に関連するアクティビティの監視が必要なアプリケーションまたはデータベースの開発者

データベース操作の監視は次のタスクの実行に役に立ちます。

- 追跡およびレポート作成
追跡では、最初に複合データベース操作を定義する必要があります。操作が始まると、その操作の追跡対象はデータベース・インフラストラクチャで判断されます。たとえば、チューニング・タスクとして、バッチ・ジョブのかわりに実行するSQL文やその実行統計の以前の状態、その操作の実行中にデータベースで発生した事象などの特定が必要な場合もあります。Cloud Controlで、複合データベース操作と、その複合データベース操作を構成する単純なデータベース操作のレポートを表示することができます。レポートは、ディスクに保存できます。

- 実行の進捗状況の監視
このタスクでは、現在実行中のデータベース操作の監視が行われます。この情報は、操作の完了に時間がかかる理由を調査している場合に特に役立ちます。

- リソース使用率の監視
SQLの実行により過剰なCPUが使用されたり、過剰なI/Oが発行されたりするタイミング、およびSQLの実行に時間がかかるタイミングを検出することが必要な場合があります。Oracle Database Resource Manager (Resource Manager)を使用して、コンシューマ・グループごとに、そのグループにおけるすべてのSQL実行の最大リソース使用率を指定するしきい値を構成できます。SQL操作が指定されたしきい値に達したとき、Resource Managerでは、その操作をより優先順位の低いコンシューマ・グループに切り替えたり、セッションまたはコールを終了したり、イベントのログを記録できます。このようなSQL操作をCloud Controlで調べることができます。コンシューマ・グループの切替えの詳細は、『Oracle Database管理者ガイド』を参照してください。

- レスポンス時間のチューニング
データベース操作をチューニングする際、通常はレスポンス時間の改善が求められます。多くの場合に、データベース操作のパフォーマンスの問題は主にSQLパフォーマンスの問題と言えます。

データベース操作の監視の有効化

リアルタイムなデータベース操作管理は、STATISTICS_LEVEL初期化パラメータがTYPICAL(デフォルト値)またはALLに設定されている場合、デフォルトで有効になります。データベース操作の監視は、Oracle Database Tuning Packの機能であるため、CONTROL_MANAGEMENT_PACK_ACCESSパラメータをDIAGNOSTIC+TUNING (デフォルト値)に設定する必要があります。監視を無効化する方法については、『Oracle Database SQLチューニング・ガイド』を参照してください。

データベース操作の属性

データベース操作には、一意に識別する属性があります。このような属性には、次のものがあります。

- データベース操作名
これは、daily_sales_reportなど、ユーザーが作成する名前です。データベース操作の名前付けの例は、「データベース操作の作成」を参照してください。

- データベース操作実行ID
複数の同じデータベース操作を、それぞれ別のデータベース・セッションで、同じ名前の異なる実行IDで同時に実行することができます。この数値IDによって同じデータベース操作の異なる実行が一意に識別されます。

データベース操作を開始すると、データベースによって、自動的に実行IDが作成されます。また、自分で実行IDを指定することもできます。

データベース操作の作成

PL/SQLパッケージDBMS_SQL_MONITORのプロシージャを使用することで、複合データベース操作を作成できます。

参照:

- APIを使用したデータベース操作の監視の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください。

- DBMS_SQL_MONITORパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

例5-1では、DBOP_EXAMPLEという名前のデータベース操作を作成します。例では、データベース操作を開始します。顧客ごと、都市ごとに最大売上高を選択するPL/SQLプロシージャがあります。次に、2人以上の顧客がいる都市のすべての顧客の最大売上高を選択するSQL文があります。最後に、データベース操作を終了します。

例5-1 データベース操作の作成

VAR eid NUMBER
EXEC :eid := DBMS_SQL_MONITOR.BEGIN_OPERATION('DBOP_EXAMPLE');
declare
--
v1 number;
--
CURSOR c1 IS
SELECT cust_city
FROM (SELECT COUNT(*) cnt, cust_city
FROM sh.customers GROUP BY cust_city
ORDER BY 1 desc);
--
BEGIN
FOR i IN c1
LOOP
--
v1 := 0;
--
SELECT MAX(amount_sold)
INTO v1
FROM sh.sales
WHERE cust_id IN (select cust_id FROM sh.customers WHERE cust_city=i.cust_city);
--
DBMS_OUTPUT.PUT_LINE('Amount: '||v1);
--
END LOOP;
--
END;
/
SELECT MAX(asld) FROM
(SELECT MAX(amount_sold) asld, cust_id FROM sh.sales WHERE cust_id IN
(SELECT cust_id FROM sh.customers WHERE cust_city IN
(SELECT cust_city FROM
(SELECT count(*) cnt, cust_city FROM sh.customers
GROUP BY cust_city HAVING COUNT(*) > 1)
))
GROUP BY cust_id)
/

EXEC DBMS_SQL_MONITOR.END_OPERATION('DBOP_EXAMPLE',:eid);

Cloud Controlでのデータベース操作の監視

「監視されたSQL実行」ページには、現在実行中または完了したデータベース操作の表が表示されています。Top 100の「実行者」リストの選択肢で、「最終アクティブ時間」、「期間」または「CPU時間」などの操作の側面によって表の行を並べ替えることができます。「タイプ」リストの選択肢で、すべての操作を表示することまたは行をフィルタ処理してSQL、PL/SQLまたはデータベース操作のみを表示することができます。

表には、操作のステータスおよびタイプ、操作ID、消費したデータベース時間、SQLテキストなどの操作に関するデータが含まれています。一部の列の値は他のページへのリンクで、カーソルを合わせると情報が表示されるものもあります。たとえば、「ID」列の値は、「監視されたSQL実行の詳細」ページへのリンクです。他の例として、カーソルを「データベース時間」列の棒に合わせると、待機クラス、期間、データベース時間の割合などの情報を表示するコンテキスト・メッセージが表示されます。たとえば、「データベース時間」列の棒を指すと、CPU: 2.8m (92%)などのメッセージが表示されます。表から行を選択すると、表の上の「実行の詳細」、「SQLの詳細」および「セッションの詳細」制御がアクティブになります。

この項の内容は次のとおりです。

- 複合データベース操作のSQL実行の詳細の表示

- SQL文のSQL実行の詳細の表示

- PL/SQL文のSQL実行の詳細の表示

参照:

- 「監視されたSQL実行」の「詳細」ページの要素の説明は、Cloud Controlのオンライン・ヘルプを参照してください。

複合データベース操作のSQL実行の詳細の表示

この項では、複合データベース操作での実行の詳細を表示する方法について説明します。

複合データベース操作の実行の詳細を表示するには、次の手順を実行します。

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「SQL監視」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「監視されたSQL実行」ページが表示されます。

図5-1 「監視されたSQL実行」ページ

3. 表で、複合データベース操作のIDをクリックします。
たとえば、図5-1で、DBOP_EXAMPLEをクリックします。

操作の「監視されたSQL実行の詳細」ページが表示されます。「詳細」セクションでは、デフォルトで「アクティビティ」サブページが選択されます。「アクティビティ」グラフの領域を選択するかまたは凡例の対応するSQL ID値を選択すると、その文の「SQLの詳細」ページが表示されます。

4. 操作のメトリックを表示するには、「メトリック」タブをクリックします。
「メトリック」サブページが表示されます。

SQL文のSQL実行の詳細の表示

この項では、SQL文の実行の詳細を表示する方法を説明します。

SQL文の実行の詳細を表示するには、次の手順を実行します。

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「SQL監視」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「監視されたSQL実行」ページが表示されます。

3. 表でSQL文のIDをクリックします。
たとえば、図5-1では、75g0d6c4dh7r8をクリックします。

操作の「監視されたSQL実行の詳細」ページが表示されます。「詳細」セクションでは、デフォルトで「計画統計」サブページが選択されています。

PL/SQL文のSQL実行の詳細の表示

この項では、PL/SQL文の実行の詳細の表示について説明します。

PL/SQL文の実行の詳細を表示するには、次の手順を実行します。

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「SQL監視」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「監視されたSQL実行」ページが表示されます。

3. 表でPL/SQL文のIDをクリックします。
操作の「監視されたSQL実行の詳細」ページが表示されます。「詳細」セクションでは、デフォルトで「アクティビティ」サブページが選択されます。

6 パフォーマンス・アラートの監視

Oracle Databaseにはアラート・インフラストラクチャが組み込まれており、データベースの緊急性が高い問題はユーザーに通知されます。アラートはイベントのタイプで、イベントはインシデントで構成されます。問題は、インシデントの特殊なタイプです。

デフォルトでは、Oracle Databaseは次のようないくつかのアラートを有効にします。

- アーカイブ領域使用量

- 現在のオープン・カーソル数

- リカバリ領域空き領域

- 表領域使用率

これらのデフォルトのアラートの他に、Oracle Databaseがアラートを生成してユーザーが指定したデータベース・パフォーマンス条件を通知するため、メトリックしきい値を設定できます。

この章の内容は次のとおりです。

- パフォーマンス・アラートのメトリックしきい値の設定

- アラートへの対応

- アラートのクリア

参照:

- インシデントおよびその監視方法および管理方法に関する詳細は、『Oracle Database管理者ガイド』を参照してください。

パフォーマンス・アラートのメトリックしきい値の設定

メトリックは累積統計の変更率です。この率は、時間、トランザクション、データベース・コールなどの様々な単位で測定できます。たとえば、データベース・コール/秒はメトリックです。しきい値が渡されたときにアラートが生成されるように、メトリックにしきい値を設定できます。

パフォーマンス・アラートは、パフォーマンス関連のメトリックに基づいています。これらのアラートは、環境またはアプリケーションのいずれかに依存します。

環境依存のパフォーマンス・アラートはすべてのシステムでは使用できない場合があります。たとえば、ファイルを読み込む平均時間がメトリックしきい値を超えるとAVERAGE_FILE_READ_TIMEメトリックによりアラートが生成されます。このアラートはディスクが1台のみのシステムで役立つ場合があります。ただし、複数のディスクがある場合は、I/O処理がすべてのサブシステムに拡張されるため使用できない可能性があります。

アプリケーション依存のパフォーマンス・アラートは通常すべてのシステムに使用できます。たとえば、BLOCKED_USERSメトリックは特定のセッションによりブロックされるユーザーの数がメトリックしきい値を超えた場合にパフォーマンス・アラートを生成します。このアラートは環境がどのように構成されているかにかかわらず使用できます。

パフォーマンス・アラートから最も緊密な関連情報を取得するには、パフォーマンス・メトリックのしきい値をシステムにとって理想的な境界を表す値に設定する必要があります。これにより、パフォーマンス目標に達するかそれを超えるまでこれらの値をチューニングできます。

パフォーマンス・メトリックのしきい値の設定手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「Oracleデータベース」メニューから、「監視」を選択し、「メトリックと収集設定」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。メトリック設定ページが表示されます。

3. システムに関連した各パフォーマンス・メトリックで、「編集」アイコンをクリックします
「詳細設定の編集」ページが表示されます。

4. ウィザードの手順に従って、しきい値を設定します。

参照:

- 「ベースラインのメトリックしきい値の設定」

アラートへの対応

アラートがOracle Databaseによって生成されると、データベースのホームページの「インシデントと問題」セクションに表示されます。

図6-1は、データベースのホームページの「インシデントと問題」セクションを示しています。このセクションは、ページのデフォルトのレイアウトで、「SQL監視 - 過去1時間」セクションの下にあります。

図6-1 データベースのホームページの「インシデントと問題」セクション

Oracle Enterprise Manager Cloud Control (Cloud Control)により、アラートの電子メール、ページャまたはテキスト・メッセージによる送信を構成できます。

アラートへの対応手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「インシデントと問題」セクションの表で、調べるアラートを検索して、「サマリー」列のリンクをクリックします。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。アラートの詳細情報のある「インシデント・マネージャ」ページが表示されます。たとえば、図6-1の「サマリー」列の最初の行の値をクリックすると、図6-2に示すインシデント・マネージャの「問題の詳細」ページが表示されます。「一般」サブページが選択されます。

図6-2 インシデント・マネージャの「問題の詳細」ページ

3. 次のうち1つまたは両方の操作を実行します。

- 他のタブをクリックして、サブページの情報を表示します。

- 「一般」サブページの「トラッキング」セクションの1つ以上のアクションを実行します。

- 「ガイドされた解決」セクションで、「サポート・ワークベンチ: 問題の詳細」をクリックして、診断情報を表示します。診断データをパッケージ化してOracleサポートへアップロードするには、「サポート・ワークベンチ: パッケージ診断」をクリックします。

- 自動データベース診断モニター(ADDM)または他のアドバイザを実行して、システムまたはオブジェクトの動作の詳細な診断情報を確認します。

アラートのクリア

「CPU使用率」アラートなどのほとんどのアラートは、問題の原因が解決されると自動的にクリアされます。ただし、「一般的なアラート・ログ・エラー」アラート、「一般的なインシデント」アラートなどの一部のアラートは、確認の必要があります。

必要な是正措置を行った後、アラートをクリアできます。

アラートをクリアする手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「インシデントと問題」セクションで、表の「サマリー」列のリンクをクリックします。セクションのスクリーンショットは、図6-1を参照してください。
インシデント・マネージャ問題の詳細ページが表示されます。インシデントまたは問題が手動でクリアできる場合には、「トラッキング」セクションに「クリア」ボタンが表示されます。

「クリア」ボタンが表示されない場合の処理内容。問題をクリアする方法は?

3. 「トラッキング」セクションで、「クリア」をクリックします。

第III部 データベースの事後チューニング

第III部では、チューニングがすぐに必要なデータベースに関するパフォーマンスの問題がユーザーから報告されたときなど、報告された問題への対応としてOracle Databaseをチューニングする方法について説明します。

内容は次のとおりです。

- データベースのパフォーマンスの手動監視

- 一時的なパフォーマンスの問題の解決

- 時間の経過によるパフォーマンス低下の解決

7 データベースのパフォーマンスの手動監視

現在および過去のデータベースのパフォーマンスを手動監視する自動データベース診断モニター(ADDM)を実行できます。通常、データベースに関するパフォーマンスの問題を識別するには、ADDMの自動診断機能を使用する必要があります。 「データベースのパフォーマンスの自動監視」の説明に従って、デフォルトで1時間に1度ADDMを実行します。ADDMを構成して異なる時間間隔で実行できます。ただし、ADDMを手動で実行する必要がある場合があります。

ADDMは手動で実行して、一度のADDMの分析期間より長い時間間隔を分析することができます。たとえば、データベース・アクティビティを8時間連続して分析することによって、1日のデータベースのパフォーマンスを分析します。1日の個々のADDM期間を分析できますが、一部のADDM期間のみにパフォーマンスの問題が存在する場合は、分析が複雑になります。また、8時間に対応した自動ワークロード・リポジトリ(AWR)のスナップショットのペアを使用してADDMを手動で実行することもできます。この場合、ADDMによって全時間間隔における重大なパフォーマンスの問題のほとんどが識別されます。

この章の内容は次のとおりです。

- 現在のデータベースのパフォーマンスを分析するADDMの手動実行

- 過去のデータベースのパフォーマンスを分析するADDMの手動実行

- 前のADDM結果へのアクセス

現在のデータベースのパフォーマンスを分析するADDMの手動実行

デフォルトでは、1時間ごとにADDMが実行され、この期間中にAWRのスナップショットが分析されます。以前のADDM分析期間にはなかったパフォーマンスの診断、または 「データベースのパフォーマンスのリアルタイムの監視」 で説明されているように、パフォーマンス・ページのデータベース・アクティビティでの突然のスパイクが通知される場合があります。次のADDM分析が30分間実行されるようスケジュールされていない場合は、ADDMを手動で実行し、パフォーマンスの問題を識別して解決することができます。

ADDMを手動で実行する場合は、手動のAWRスナップショットが自動的に作成されます。これによりADDM実行サイクルに影響を及ぼす可能性があります。たとえば、ADDMを毎時ちょうどに1時間ごとに実行し、最終ADDM実行を午後8時にスケジュール設定した場合、午後8時30分にADDMを手動で実行すると、次の実行は午後9時ではなく午後9時30分にスケジュール設定されます。その後のADDM実行は、新規の実行サイクルで継続され、毎時ちょうどではなく毎時30分に実行されます。

ADDMを手動で実行して現在のデータベースのパフォーマンスを分析する手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

3. 「アドバイザ」で「ADDM」を選択します。「ADDMの実行」ページが表示されます。

この例では、待機イベントがある平均アクティブ・セッションが午前10時に開始し、午前10時50分にピークになっています。この数値は午前11時に低下し、午前11時10分に再度上昇し始めました。

4. 「現行のパフォーマンスを分析するには、ADDMを実行してください」を選択し、「OK」をクリックします。
「確認」ページが表示されます。

5. 「はい」をクリックします。
処理中: データベースが新しいAWRスナップショットを取得している間、「ADDMの即時実行」ページが表示されます。

ADDMの実行は、新しいスナップショットと以前のスナップショットの間に発生します。ADDMが分析を完了後、「自動データベース診断モニター(ADDM)」ページに結果が表示されます。

6. 「レポートの表示」をクリックします。
「レポートの表示」ページが表示されます。

7. オプションで、「ファイルに保存」をクリックして、後のアクセスのために、レポートのADDMタスクの結果を保存します。

参照:

- 「自動データベース診断モニターの分析の確認」

過去のデータベースのパフォーマンスを分析するADDMの手動実行

ADDMを手動で実行し、分析期間としてAWRスナップショットのペアまたは範囲を選択して過去のデータベースのパフォーマンスを分析できます。これは、データベースのパフォーマンスの低下が発生した過去の期間を識別した場合に役立ちます。

「パフォーマンス」ページで、「データの表示」リストの「履歴」を選択して、過去のデータベースのパフォーマンスを監視できます。「履歴」ビューでは、AWRの保存期間によって定義された期間までさかのぼってデータベースのパフォーマンスを監視できます。パフォーマンスの低下を発見した場合は、 「データベースのパフォーマンスのリアルタイムの監視」 の説明に従って、パフォーマンス・ページからドリルダウンし、過去のデータベースのパフォーマンスの問題を識別できます。問題を識別した後で、ADDMを手動で実行し特定期間の分析を行います。

ADDMを手動で実行して過去のデータベースのパフォーマンスを分析する手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

3. 「アドバイザ」で「ADDM」を選択します。「ADDMの実行」ページが表示されます。

4. 「過去のパフォーマンスを分析するには、ADDMを実行してください」を選択します。

5. AWRスナップショットのペアを選択して分析の期間を指定します。次の手順を実行します。

a. 「期間開始時間」を選択します。

b. 開始点のスナップショットのグラフの下で、開始時間に使用するスナップショットをクリックします。
スナップショット・アイコンにプレイ・アイコン(矢印で表示されます)が表示されます。

この例では、データベース・アクティビティのピークは午前10時から午前11時であり、午前10時に取得されたスナップショットが開始時間として選択されています。

c. 「期間終了時間」を選択します。

d. 最後のスナップショットのグラフの下で、終了時間に使用するスナップショットをクリックします。
スナップショット・アイコンに停止アイコン(四角で表示されます)が表示されます。

この例では、スナップショットの取得終了時間は午前11時です。

6. 「OK」をクリックします。
ADDMが分析を完了した後に、ADDMの実行結果を含む「自動データベース診断モニター(ADDM)」ページが表示されます。

図7-1 データベースのパフォーマンスの履歴の分析

7. 「レポートの表示」をクリックします。
「レポートの表示」ページが表示されます。

8. オプションで、「ファイルに保存」をクリックします。

参照:

- 「自動データベース診断モニターの分析の確認」

前のADDM結果へのアクセス

手動でADDMを実行し、現在または過去のデータベースのパフォーマンスを分析する場合、ADDM実行の完了後に結果が「自動データベース診断モニター(ADDM)」ページに表示されます。

後でADDMの結果にアクセスするか、前回の実行サイクルからADDMの結果にアクセスできます。

ADDMの結果へのアクセス手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

3. 次の手順を実行します。

a. 「アドバイザ・タスク」の下で、「アドバイザ・タイプ」リストから「ADDM」を選択します。

b. 適切な検索基準を選択します。
たとえば、「アドバイザ実行」リストで「すべて」を選択して、すべてのADDMタスクを表示できます。

c. 「実行」をクリックします。

ADDMタスクは「結果」の下に表示されます。

4. ADDMの結果を表示するには、目的のADDMタスクを選択して、「結果の表示」をクリックします。
選択したADDMタスクの結果は、「自動データベース診断モニター(ADDM)」ページに表示されます。

参照:

- 「自動データベース診断モニターの分析の確認」

8 一時的なパフォーマンスの問題の解決

一時的なパフォーマンスの問題は短期間のみ継続するため、通常、自動データベース診断モニター(ADDM)の分析には表示されません。ADDMによって分析期間中は、データベース時間(DB時間)に対する影響が最も重大なパフォーマンスの問題がレポートされます。問題が非常に短い期間のみ続いた場合、その問題の重大度は分析期間全体の他のパフォーマンスの問題によって、平均以下になるかまたは最小限に抑えられます。このため、その問題はADDMの検出結果に表示されません。パフォーマンスの問題がADDMによって取得されるかどうかは、自動ワークロード・リポジトリ(AWR)のスナップショット間の間隔とパフォーマンスの問題が発生した期間の比によって決定します。

スナップショット間で相当な時間続くパフォーマンスの問題の場合、ADDMにより取得されます。たとえば、スナップショット間隔が1時間の場合、30分間続くパフォーマンスの問題は、この期間がスナップショット間隔で相当な時間を占め、ADDMにより取得される可能性が高いため、一時的なパフォーマンスの問題と考えるのは不適切です。

一方、2分間続くパフォーマンスの問題は、発生期間がスナップショット間隔に占める割合が小さいためADDMの検出結果に現れにくく、一時的と言えます。たとえば、午後10時ちょうどから午後10時10分の間システムが遅くなったが、午後10時から午後11時の期間のADDM分析にはパフォーマンスの問題がなかった場合、10分間隔のレポートのうちわずか数分のみ一時的なパフォーマンスの問題が発生した可能性があります。

この章の内容は次のとおりです。

- アクティブ・セッション履歴の概要

- アクティブ・セッション履歴レポートの実行

- アクティブ・セッション履歴レポート

- リアルタイムの重大なパフォーマンスの問題の診断

アクティブ・セッション履歴の概要

データベース・アクティビティの詳細な履歴を取得するには、Oracle Databaseでは、アクティブ・セッション履歴(ASH)の検査員によってアクティブ・セッションが毎秒サンプリングされます。AWRのスナップショットの処理によってサンプリングされたデータがメモリーに収集され、永続記憶域に書き込まれます。ASHはOracle Databaseの自己管理フレームワークに不可欠であり、パフォーマンスの問題の診断に非常に役立ちます。

ASHでは、インスタンス・レベルではなくセッション・レベルでサンプル・データが収集されます。アクティブ・セッションのみに対する統計を取得すると、ASHでは管理しやすいデータのセットが収集されます。このデータのサイズは、データベース・インスタンス全体のサイズではなく実行されている作業に直接関連するサイズです。

ASHによって取得されたサンプル・データは、データのディメンションに基づいて集計できます。次のものが含まれます。

- SQL文のSQL識別子

- オブジェクト番号、ファイル番号およびブロック番号

- 待機イベント識別子およびパラメータ

- セッション識別子およびセッション・シリアル番号

- モジュールおよびアクション名

- セッションのクライアント識別子

- サービス・ハッシュ識別子

ASHレポートを実行して、特定の期間にのみ発生するデータベースの一時的なパフォーマンスの問題を分析できます。この手法は次のいずれかを試す場合に特に有効です。

- 特定のジョブまたはセッションが応答しないがインスタンスの他の部分は通常どおりに動作している場合など、発生期間が短い一時的なパフォーマンスの問題を解決する

- 時間、セッション、モジュール、アクション、SQL識別子など、様々なディメンションおよびその組合せで指定範囲または特定のターゲットのパフォーマンス分析を実行する

参照:

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

- ASHレポートの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

アクティブ・セッション履歴レポートの実行

この項では、Oracle Enterprise Manager Cloud Control (Cloud Control)を使用してASHレポートを生成する方法について説明します。

ASHレポートの実行手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。

3. 「平均アクティブ・セッション」で、「ASHレポートの実行」をクリックします。
「ASHレポートの実行」ページが表示されます。

4. 一時的なパフォーマンスの問題が発生した場合の期間の開始および終了の日時を入力します。
この例では、午後9時15分から午後9時20分までの間にデータベース・アクティビティが増えているため、この期間のASHレポートを作成する必要があります。

5. 「レポートを生成」をクリックします。
レポートの生成中に「処理中: レポートの表示」ページが表示されます。

レポートが生成されると、ASHレポートが「ASHレポートの実行」ページの「レポート結果」の下に表示されます。

参照:

一部のレポートの説明は、「アクティブ・セッション履歴レポート」を参照してください。

6. オプションで、「ファイルに保存」をクリックして、今後の分析のためにHTML形式でレポートを保存します。

アクティブ・セッション履歴レポート

ASHレポートを使用して一時的なパフォーマンスの問題の原因を識別できます。このレポートは、タイトルの付いた複数のセクションに分割されています。調査を開始する際に役立つASHレポートのセクションは、次のとおりです。

- 上位イベント

- ロード・プロファイル

- 上位SQL

- 上位セッション

- 上位DBオブジェクト/ファイル/ラッチ

- 一定時間のアクティビティ

参照:

- ASHレポートの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

上位イベント

レポートの「上位イベント」セクションにはユーザー、バックグラウンドおよび優先順位によって分類され、サンプリングされたセッション・アクティビティの上位の待機イベントが表示されます。この情報を使用して、一時的なパフォーマンスの問題の原因になっている可能性がある待機イベントを識別します。

「上位イベント」セクションには次のサブセクションが含まれます。

- 上位ユーザー・イベント

- 上位バックグラウンド・イベント

上位ユーザー・イベント

レポートの「上位ユーザー・イベント」サブセクションは、サンプリングされたセッション・アクティビティの最も高い割合を占める、クライアント・プロセスから上位の待機イベントをリストします。

図8-1は、ほとんどのデータベース・アクティビティがCPU + Wait for CPUイベントによって消費されていることを示しています。Wait for CPUは、オペレーティング・システムの実行キューでのプロセスによる経過時間です。%Event列には、このイベントで消費されるDB時間の割合が表示されます。この例では、30%を超えるDB時間が、CPUでまたは待機のために消費されています。「ロード・プロファイル」セクションを確認して、このCPU消費が発生しているアクティビティのタイプを判別する必要があります。

図8-1 上位ユーザー・イベント

上位バックグラウンド・イベント

「上位バックグラウンド・イベント」サブセクションは、サンプリングされたセッション・アクティビティの最も高い割合を占めるバックグラウンド・イベントから上位の待機イベントをリストします。

図8-2の例は、サンプリングされたセッション・アクティビティの22.81%がCPU + Wait for CPUイベントによって消費されていることを示しています。

図8-2 上位バックグラウンド・イベント

ロード・プロファイル

レポートの「ロード・プロファイル」セクションでは、サンプリングされたセッション・アクティビティで分析された負荷を説明します。このセクションの情報を使用して、一時的なパフォーマンスの問題の原因となるサービス、クライアントまたはSQLコマンド・タイプを識別します。

「上位サービス/モジュール」セクションには、サンプリングされたセッション・アクティビティの最も高い割合を占めるサービスおよびモジュールがリストされます。サービスは、共通の機能、品質要求、優先順位を共有する、関連するデータベース・タスクのグループです。サービスは、複数のアプリケーションを監視する場合に役立ちます。SYS$USERSおよびSYS$BACKGROUNDサービスは常に定義されています。

図8-3は、半数を超えるデータベース・アクティビティが、SQL*Plusモジュールを実行するSYS$USERSサービスによって消費されていることを示しています。この例では、図8-1に示されたパフォーマンスの問題の原因となっている高負荷のSQLをユーザーが実行していることがわかります。レポートの「上位SQL」セクションで分析して、特定のタイプのSQL文に負荷がかかっているかどうかを判別する必要があります。

図8-3 上位サービス/モジュール

参照:

- 「上位サービスの監視」

- 「上位モジュールの監視」

上位SQL

レポートの「上位SQL」セクションでは、サンプリングされたセッション・アクティビティの上位SQL文を説明します。この情報を使用して、一時的なパフォーマンスの問題の原因になっている可能性がある高負荷SQL文を識別します。「上位イベントのある上位SQL」サブセクションには、サンプリングされたセッション・アクティビティの最も高い割合を占めるSQL文がリストされます。「実行のサンプリング数」列に、特定のSQL文ごとに実行のサンプリング数が表示されます。SQL文のテキストを表示するには、「SQL ID」リンクをクリックします。

図8-4は、半分を超えるDB時間が、3つのDML文によって消費されていることを示しています。これらの文は、図8-3に示されたSQL*Plusモジュールで実行されています。「上位セッション」セクションを分析して、これらの文を実行するセッションを識別する必要があります。

図8-4 上位イベントのある上位SQL

参照:

- 「上位SQLの監視」

上位セッション

「上位セッション」セクションには、サンプリングされたセッション・アクティビティの最も高い割合を占める待機イベントを待機していたセッションが表示されます。この情報を使用して、パフォーマンスの問題の原因になっている可能性があるセッションを識別します。

「アクティブなサンプル数」列は、特定のイベントに対してセッションが待機しているASHサンプルの数を示します。この割合は、実時間に基づいて計算されます。

図8-5で、「アクティブなサンプル数」列は、ASHがデータベース・アクティビティをサンプリングした300回のうち、HRセッション(SID 123)によって、順次読取りが243回、フラッシュバック操作が36回実行されたことを示しています。したがって、HRは少なくとも93%の時間、アクティブであったことになります。SHセッションを含む他のセッションもアクティブであったため、このセッションは全アクティビティの27%(93%より大幅に少ないアクティビティ)を消費しました。

図8-4では、HRおよびSHセッションが高負荷SQL文を実行していることがわかります。このセッションを調査し、適切な操作が実行されているかどうか、また可能であればSQL文がチューニングされているかどうかを判別する必要があります。SQL文のチューニングができず、システムで許容できないパフォーマンスの問題が発生した場合は、セッションの終了を検討します。

図8-5 上位セッション

参照:

- 「上位セッションの監視」

- 「SQL文のチューニング」

上位DBオブジェクト/ファイル/ラッチ

「Top Objects/Files/Latches」セクションでは最も使用されるデータベース・リソースに関する詳細が提供されます。また、次のサブセクションが含まれます。

- 上位DBオブジェクト

- 上位DBファイル

- 上位ラッチ

上位DBオブジェクト

「上位DBオブジェクト」サブセクションには、サンプリングされたセッション・アクティビティの最も高い割合を占めるデータベース・オブジェクト(表や索引など)がリストされます。

図8-6の例は、hr.departmentsおよびhr.employees表がアクティビティの高い割合を占めていることを示しています。エンキュー待機は、ロックに対する待機です。この例では、TM(表)ロックに対する待機です。これらの待機は索引付けされていない外部キー制約を示す場合があります。バッファ・ビジー待機イベント・レコードは、バッファが利用可能になるまで待機します。これらの待機は、バッファ・キャッシュ内の同じバッファに対して、複数のプロセスが同時にアクセスを試みていることを示しています。

図8-6 上位DBオブジェクト

上位DBファイル

「上位DBファイル」サブセクションには、サンプリングされたセッション・アクティビティの最も高い割合を占めるデータベース・ファイルがリストされます。ここでは、クラスタ・イベントとI/Oイベントのみが対象になります。「%イベント」列では、イベント単位でアクティビティが分類されるため、表内に複数の行がある場合は、サンプリングされたアクティビティが複数のイベントに分割されます。

図8-7は、約11%のDB時間がUNDOTBS表領域の待機に関連していることを示しています。この情報は、複数のセッションによる多数のDMLアクティビティがあることを示す図8-4と一致しています。

図8-7 上位DBファイル

上位ラッチ

「上位ラッチ(Top Latches)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるラッチを示します。ラッチは、単純で低レベルなシリアライズ・メカニズムで、システム・グローバル領域(SGA)の共有データ構造を保護します。

一定時間のアクティビティ

ASHレポートの「一定時間のアクティビティ」セクションでは、分析期間中のアクティビティおよびワークロード・プロファイルの徹底した詳細が参照できるため、長い期間に特に役立ちます。「一定時間のアクティビティ」セクションはタイム・スロットに分割されています。期間が短いかデータがわずかである場合を除き、ASHのレポート期間は10のタイム・スロットに分割されます。

図8-8は、午後2時10分から午後2時40分までの期間のアクティビティ・レポートを示しています。このレポートは、サンプリングされたセッションの数が6番目の内部スロット(午後2時24分)で急激に増加し、高いまま保持されたことを示しています。この期間に、CPUアクティビティとロックのエンキュー待機が大幅に増大しています。

図8-8 一定時間のアクティビティ

表8-1に示すように、各タイム・スロットにはセッションと待機イベント・アクティビティが含まれています。

表8-1 一定時間のアクティビティ

列

説明

スロット時間(継続時間)

スロットの期間

スロット数

スロット内のサンプリングされたセッションの数

イベント

スロット内の上位3つの待機イベント

イベント数

待機イベントを待機中のASHサンプルの数

%イベント

分析期間全体での待機イベントを待機していたASHサンプルの割合

すべての内部スロットは、比較しやすいようにそれぞれ同じ分数になっています。最初と最後のスロットである外部スロットは、固定スロット時間を持たないため、サイズが異なります。

内部スロットを比較する場合は、スパイクを識別して偏りの分析を実行します。「スロット数」列のスパイクは、アクティブ・セッションの増加と、データベース・ワークロードの相対的な増加を示します。「イベント数」列のスパイクは、イベントを待機するサンプリングされたセッション数の増加を示します。通常、アクティブ・セッションのサンプルの数および待機イベントに関連付けられたセッションの数が増えた場合、スロットは一時的なパフォーマンスの問題の原因となる可能性があります。

リアルタイムの重大なパフォーマンスの問題の診断

次の手順は、発生した時点の重大なパフォーマンスの問題を診断する際に役立ちます。これにより、システムの再起動以外の問題の解決処置を見つけやすくなります。

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「緊急監視」を選択します。
緊急パフォーマンス・ページが表示され、収集されたASHデータが表示されます。また、このページの「ハング分析」表には、ブロックしている上位セッションが示されています。

このページに表示された情報が問題解決に役立たない場合は、次のステップに進みます。

3. 「パフォーマンス」メニューから、「リアルタイムADDM」を選択します。
リアルタイムADDM・ページが表示されます。

4. 「リアルタイムADDMの結果」セクションで、「開始」をクリックします。
ターゲット・データベースからパフォーマンス・データが収集され、問題の診断および解決のためにデータが分析され、分析の結果が表示されます。

5. 分析によって検出されたすべての結果に関する明確なインタラクティブ・サマリーが表示される「結果」タブをクリックして、実行可能な推奨事項を表示します。

6. オプションとして、「保存」をクリックし、オフライン参照用のHTMLファイルとして現在のページ・ビューを保存します。「保存」をクリックすると、「別名保存」ダイアログ・ボックスが表示され、レポートの保存場所を指定できます。このアクションにより、分析の一部として現在収集されているすべてのデータを網羅するEnterprise Managerアクティブ・レポートが作成されます。後でこれを使用して、より綿密な事後分析を実行できます。Cloud Controlまたはデータベース接続を使用しないでレポートを表示できます。
「メール」をクリックして、添付ファイルとしてレポートを送信する電子メール・アドレスも指定できます。

注意:

特定のデータベース・パフォーマンスの問題によって、リアルタイムADDM分析が起動されます。分析結果は、「パフォーマンス・ホーム」ページで、平均アクティブ・セッション・グラフの下にあるADDM実行のクリップボード・アイコンを選択することで表示できます。

参照:

リアルタイムADDM分析の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

問題の診断の例

1. 現在データベースに重大なパフォーマンスの問題が発生しているため、DBAはCloud Controlの「データベース・ホーム」ページを表示します。DBAは、「パフォーマンス」メニューから、「緊急監視」を選択します。

2. ASHとハング分析のいずれも原因を示しておらず、解決策が提示されないため、DBAは「パフォーマンス」メニューから「リアルタイムADDM」を選択します。

3. DBAによりリアルタイムADDMによって生成されたアクティブ・レポートが表示され、おそらくはメモリー・リークが原因で、セッションS1による過度のPGA消費のためにページングが行われていることが示されます。レポートはセッションをすぐに終了することを推奨しています。

4. DBAはセッションS1を終了してから、緊急パフォーマンス・ページに戻り、通常のシステム動作がリストアされたかどうかを確認します。

5. DBAにより、ページ上のアクティビティ・グラフからシステムの状態が良好に進展していることがわかります。

6. DBAは、「パフォーマンス」メニューから「パフォーマンス・ホーム」を選択し、データベース・パフォーマンスが改善されたことを確認します。

9 時間の経過によるパフォーマンス低下の解決

6か月前など、過去にデータベースが最適に動作した時点から、データベースのパフォーマンス低下が発生し、ユーザーが認識するまで徐々に低下していきます。自動ワークロード・リポジトリ(AWR)の期間の比較レポートによって、2つの期間のデータベース・パフォーマンスを比較できます。

AWRレポートが2つのスナップショット間(つまり2つの時点間)のAWRデータを表示するとき、AWR期間の比較レポートは2つの期間(つまり合計4つのスナップショットの2つのAWRレポート)の差異を表示します。AWR期間の比較レポートを使用して、パフォーマンス属性の詳細または2つの期間で異なる構成の設定を識別できます。AWR期間の比較レポートで選択した2つの期間は、異なる継続時間です。レポートは各期間のデータベースで費やした時間統計を正規化し、期間ごとの差異の大きい順に統計データを表示します。

たとえば、これまでメンテナンス・ウィンドウで午後10時から真夜中の間に完了していたバッチ・ワークロードが、現在は低いパフォーマンスを示し、午前2時に完了するとします。パフォーマンスが良好な日には午後10時から真夜中に、パフォーマンスが低い日には午前10時から午前2時に、AWR期間の比較レポートを生成できます。これらのレポートの比較には、構成の設定、ワークロード・プロファイルおよびこれらの2つの期間で異なった統計を識別する必要があります。識別の差異に基づいて、パフォーマンスの低下の原因を診断できます。

この章の内容は次のとおりです。

- ベースラインの管理

- AWR期間の比較レポートの実行

- AWR期間の比較レポートの使用

参照:

- 「自動ワークロード・リポジトリを使用したデータベース統計の収集」

ベースラインの管理

ベースラインはパフォーマンスの問題を診断する有効な方法です。AWRはスナップショットのペアまたは範囲をベースラインとして指定および保存することが可能で、ベースライン・データの取得をサポートします。ベースラインに含まれるスナップショットはAWRの自動消去プロセスから除外され、無期限に保持されます。

変動ウィンドウ・ベースラインは、AWRの保存期間内に存在するすべてのAWRデータに対応します。Oracle Databaseでは、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。ウィンドウのデフォルト・サイズは、現在のAWRの保存期間(デフォルトで8日)になります。

この項の内容は次のとおりです。

- ベースラインの作成

- ベースラインの削除

- ベースラインのしきい値統計の計算

- ベースラインのメトリックしきい値の設定

ベースラインの作成

ベースラインを作成する前に、ベースラインは最適なレベルのデータベース運用環境を表すため、ベースラインとして選択する時間間隔を慎重に考慮してください。将来は、これらのベースラインをパフォーマンスが低い期間に他のベースラインまたは取得されたスナップショットと比較することによって、その期間のパフォーマンス低下を分析できます。

次のタイプのベースラインを作成できます。

- 単一ベースラインの作成

- 繰返しベースラインの作成

単一ベースラインの作成

単一ベースラインは、単一の固定時間間隔で取得されるベースラインです。たとえば、2012年2月5日の午後5時から午後8時に取得されたベースラインは、単一ベースラインとなります。

将来のデータベース・アクティビティを取得するために、ベースラインを作成する将来の開始時間および終了時間を選択できます。開始と終了の両方が将来の時間である場合、ベースラインと同名のベースライン・テンプレートも作成されます。ベースライン・テンプレートは、Oracle Databaseで将来におけるベースラインを自動的に生成できるようにする仕様です。

単一ベースラインの作成手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「AWR」、「AWR管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。

3. 「Manage Snapshots and Baselines」で、「ベースライン」の横にある数値をクリックします。
「AWRベースライン」ページには、既存のベースラインのリストが表示されます。

4. 「作成」をクリックします。
ベースラインの作成(ベースライン間隔のタイプ)のページが表示されます。

5. 「単一」を選択します。

6. 「続行」をクリックします。
ベースラインの作成(単一ベースライン)のページが表示されます。

7. 「ベースライン名」フィールドにベースラインの名前を入力します。

8. 「ベースライン間隔」で、ベースラインに対してスナップショット範囲または時間範囲のどちらを使用するかを選択します。次のいずれかの操作を行います。

- 範囲を使用するには、「スナップショット範囲」を選択します。次の手順を実行します。

- 「期間の選択」で「期間開始時間」を選択してベースラインの開始時間を選択し、「アクティブ・セッション」グラフの下にある目的の開始時間と対応するスナップショット・アイコンを選択します。

- 「期間終了時間」を選択してベースラインの終了時間を選択し、「アクティブ・セッション」グラフの下にある目的の終了時間と対応するスナップショット・アイコンを選択します。

- オプションで、「アクティブ・セッション」グラフに表示されない、以前のスナップショットを表示するには、「グラフの期間の変更」を開きます。次に、「グラフの開始日」フィールドに目的の開始日を、「グラフの終了日」フィールドに目的の終了日を入力して、「実行」をクリックします。

この例では、2012年2月7日午前10時50分から午前11時20分までのスナップショット範囲が選択されています。

- 時間範囲を使用するには、「時間範囲」を選択します。次の手順を実行します。

- 「開始時間」フィールドで、ベースラインの開始時間を選択します。

- 「終了時間」フィールドで、ベースラインの終了時間を選択します。

次の例では、2012年2月7日午後12時20分から午後12時35分までの時間範囲が選択されています。

9. 「終了」をクリックします。
「AWRベースライン」ページに、新しく作成されたベースラインが再表示されます。

繰返しベースラインの作成

繰返しベースラインは特定期間における時間間隔を繰り返すベースラインです。たとえば、2012年の2月7日から2013年の2月7日まで、毎週月曜の午後1時から午後3時まで繰り返すベースラインは、繰返しベースラインとなります。

繰返しベースラインの作成手順:

1. 「AWRベースライン」ページにアクセスします(「単一ベースラインの作成」を参照)。

2. 「作成」をクリックします。
ベースラインの作成(ベースライン間隔のタイプ)のページが表示されます。

3. 「繰返し」を選択して、「続行」をクリックします。
ベースラインの作成(ベースライン・テンプレートの繰返し)のページが表示されます。

4. 「ベースライン名の接頭辞」フィールドにベースライン名の接頭辞を入力します。

5. 「ベースライン期間」で、ベースラインがAWRのデータ収集を開始する時刻と、ベースライン収集の期間を指定します。

6. 「頻度」で、次のいずれかの操作を行います。

- 毎日ベースラインを繰り返す場合、「毎日」を選択します。

- 毎週ベースラインを繰り返す場合、「週」を選択して、ベースラインを繰り返す曜日を選択します。

7. 「ベースラインの作成間隔」の下で、次の手順を実行します。

a. 「開始時間」フィールドで、データ収集を開始する必要があるとき、将来の日と時間を選択します。

b. 「終了時間」フィールドで、データ収集を終了する必要があるとき、将来の日と時間を選択します。

8. 「ポリシーのパージ」で取得されたベースラインの保持日数を入力します。

9. 「終了」をクリックします。
ベースライン名の接頭辞と同じ名前のベースライン・テンプレートが作成されます。ベースライン・テンプレートは、Oracle Databaseで将来におけるベースラインを自動的に生成できるようにする仕様です。

この例では、2009年の2月6日から2010年の2月6日まで、毎週月曜の午前8時から午前10時まで繰り返すベースラインを作成します。取得された各ベースラインは30日後に期限切れになります。

ベースラインの削除

記憶域を節約するには、データベースに保存されている未使用のベースラインを定期的に削除する必要があります。

ベースラインの削除手順:

1. 「AWRベースライン」ページにアクセスします(「単一ベースラインの作成」を参照)。

2. ベースラインを選択して、「削除」を選択します。
「確認」ページが表示されます。

3. ベースラインに関連した基礎データを削除するか選択します。
基礎データには、ベースラインに保持した個別のスナップショットおよびベースラインで計算した統計を含みます。次のいずれかの操作を行います。

- 基礎データを削除するには、「ベースライン関連の基礎データをパージする」を選択します。

- 基礎データを保持するには、「ベースライン関連の基礎データをパージしない」を選択します。

4. 「はい」をクリックします。
「AWRベースライン」ページが再表示されます。ベースラインが正常に削除されたことがメッセージで通知されます。

ベースラインのしきい値統計の計算

ベースラインのしきい値の統計を計算すると、計算した統計を「パフォーマンス」ページのグラフに表示できます。

ベースラインのしきい値の計算手順:

1. 「AWRベースライン」ページにアクセスします(「単一ベースラインの作成」を参照)。

2. 統計を計算するベースラインを選択します。
計算されていないベースラインを選択します。これらのベースラインは、「計算された統計」列の「いいえ」で識別されます。

3. 「アクション」リストで、「スケジュール統計の計算」を選択し、「実行」をクリックします。
「しきい値統計の計算」ページが表示されます。

この例では、ベースラインBASELINE_TUE_1120の統計を計算しています。

4. 「名前」フィールドに、タスク名を入力します。
または、システムで生成された名前を選択して使用できます。

5. 「説明」フィールドに、タスクの説明を入力します。
または、システムで生成された説明を選択して使用できます。

6. 「開始」で、次のいずれかの操作を行います。

- タスクの送信後、「即時」を選択して、すぐにタスクを実行できます。

- 「後で」を選択して、「日付」、および「時間」フィールドで指定した時間を使用してタスクを実行します。

この計算はリソース集中型であるため、オフピーク時に実行するようにスケジュールすることができます。

7. 「発行」をクリックします。
「AWRベースライン」ページが表示されます。選択したベースラインに対してスケジュールされたことがメッセージで通知されます。

参照:

- 計算された統計を「パフォーマンス」ページで表示する方法については、「「データベース・パフォーマンス」ページのカスタマイズ」を参照

ベースラインのメトリックしきい値の設定

「パフォーマンス・アラートのメトリックしきい値の設定」で説明されているように、メトリックは累積統計の変更率です。特定のメトリックしきい値を超えると、アラートによって通知されます。メトリックしきい値を超えた場合、システムは望ましい状態ではありません。この場合は、ベースライン・メトリックのしきい値の設定を編集できます。

次のタイプのベースラインを作成できます。

- デフォルトの変動ベースラインのメトリックしきい値の設定

- 選択したベースラインのメトリックしきい値の設定

デフォルトの変動ベースラインのメトリックしきい値の設定

この項では、デフォルトの変動ベースラインのメトリックしきい値を設定する最も簡単な方法について説明します。共通データベースのワークロード・プロファイルに基づいた基本的なメトリックしきい値設定のグループ(OLTP、データ・ウェアハウス、および夜間のバッチ・ジョブを伴うOLTP)を選択します。ワークロード・プロファイルを選択した後、必要に応じてしきい値を拡張または変更できます。

デフォルトの変動ベースラインのメトリックしきい値を設定する手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「適応しきい値」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。

「ベースライン・メトリックしきい値」ページの「しきい値構成」タブが表示されます。

3. 「クイック構成」をクリックします。
「クイック構成: ベースライン・メトリックしきい値」ページが表示されます。

4. 「ワークロード・プロファイル」で、データベースの使用状況に応じて次のいずれかのオプションを選択します。

- 主としてOLTP(トランザクション処理のみ、24時間)

- 主としてデータ・ウェアハウス(問合せとロード集中型)

- 代替(日中はOLTP、夜間はバッチ)

この例では、主としてOLTPが選択されました。

5. 「続行」をクリックします。
「クイック構成: OLTPのしきい値設定の確認」ページが表示されます。

6. メトリックしきい値の設定を確認し、「終了」をクリックします。
「しきい値構成」タブが選択されている「ベースライン・メトリックしきい値」ページに戻ります。メトリックしきい値の設定が表示されます。

選択したベースラインのメトリックしきい値の設定

この項では、ベースラインを選択し、そのしきい値を編集する方法について説明します。しきい値のタイプ(たとえば、しきい値の基準を重大レベルにするか、最大値の割合にするか、または固定値にするか)を構成できます。データベースでクリティカルなアラートまたは警告が生成されるタイミングを決定する、しきい値のレベルを構成することもできます。

デフォルトの変動ベースラインまたは「AWRベースライン」ページで作成したベースラインのしきい値を編集できます。「AWRベースライン」ページから統計の計算をスケジューリングし、統計が静的ベースラインにおける計算を終了した後に、「しきい値の編集」ページでベースラインを選択できます。

選択した変動ベースラインのメトリックしきい値を設定する手順:

1. 「ベースライン・メトリックしきい値」ページにアクセスします(「デフォルトの移動ベースラインのメトリックしきい値の設定」を参照)。

2. 「表示」リストで、「基本メトリック」を選択します。
「ベースライン・メトリックしきい値」ページが表示されます。

3. 「カテゴリ/名前」列で、しきい値を選択または変更するメトリックのリンクをクリックします。
たとえば、「トランザクション数/秒」をクリックします。

「しきい値の編集: トランザクション数/秒」が表示されます。

このページのグラフでは、24時間のメトリック・アクティビティの簡単な表示および詳細な表示が示されます。一番上の簡単なグラフで、24時間に対して示されるメトリック値を表示する日をクリックします。

4. 「AWRベースライン」の「名前」リストで、デフォルトのSYSTEM_MOVING_WINDOWまたは「AWRベースライン」ページで作成したベースラインの名前のいずれかを選択します。
「AWRベースライン」ページから統計の計算をスケジューリングし、統計が静的ベースラインにおける計算を終了した後、「AWRベースライン」リストにベースラインが表示されます。

この例では、BASELINE_TUE_1120が選択されています。

ページがリフレッシュされ、選択したベースラインのグラフが表示されます。

5. 「しきい値の設定」セクションで次の手順を実行して設定を変更します。

a. 「しきい値のタイプ」リストで、タイプを選択します。

b. 「クリティカル」リストで、レベルを選択します。

c. 「警告」リストで、値を選択します。

d. 「発生」リストで、値を選択します。

6. 「しきい値の適用」をクリックします。
ベースライン・メトリックしきい値ページが再表示されます。ページには、変更後のメトリックしきい値設定が表示されます。

AWR期間の比較レポートの実行

この項では、Enterprise Manager Cloud Control (Cloud Control)を使用してAWR期間の比較レポートを実行する方法について説明します。

次の方法を使用して、AWR期間比較レポートを使用して、2つの期間でのデータベースのパフォーマンスを比較できます。

- ベースラインと他のベースラインの比較またはスナップショットのペアの比較

- 現在のシステム・パフォーマンスのベースライン期間との比較

- スナップショットの2つのペアの比較

ベースラインと他のベースラインの比較またはスナップショットのペアの比較

時間の経過とともにデータベースのパフォーマンスが低下した場合、AWR期間の比較レポートを実行して、新しいベースラインまたはスナップショットのペアとして取得された、低下したパフォーマンスと既存のベースラインを比較する必要があります。この場合、最適なレベルで動作するシステムを表すベースラインが必要です。既存のベースラインが使用できない場合、「スナップショットの2つのペアの比較」の説明に従って、スナップショットの任意のペアを2つ使用し、2つの期間のデータベースのパフォーマンスを比較できます。

ベースラインを別のベースラインと比較する手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「AWR」、「AWR管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「自動ワークロード・リポジトリ」ページが表示されます。

3. 「スナップショットとベースラインの管理」で、「ベースライン」の横にあるリンクをクリックします。
「AWRベースライン」ページが表示されます。

4. 次の手順を実行します。

a. ベースラインを選択して、レポートに使用します。
少なくとも1つのベースラインを使用する必要があります。

b. 「アクション」リストで「期間の比較」を選択し、「実行」をクリックします。

「期間の比較: 第2期間開始」ページが表示されます。「第1期間」に選択したベースラインが表示されます。

この例では、ベースラインBASELINE_TUE_1120が選択されています。

5. 最初の期間で選択されたベースラインを他のベースラインまたはスナップショットのペアと比較します。次のいずれかの操作を行います。

- 他のベースラインと比較するには、「ベースラインの選択」を選択して2番目の期間で使用するベースラインを選択し、「次へ」をクリックします。
「期間の比較: 確認」ページが表示されます。手順7に進みます。

- スナップショットのペアを比較するには、「最初のスナップショットの選択」を選択して2番目の期間で使用する最初のスナップショットを選択し、「次へ」をクリックします。
この例では、2012年2月7日午後1:00時点のスナップショット18が選択されています。

「期間の比較: 第2期間終了」が表示されます。次の手順に進みます。

6. レポートに含めるスナップショット期間の最後のスナップショットを選択し、「次」をクリックします。
この例では、2009年2月7日午後12:50時点のスナップショット1500が選択されています。

「期間の比較: 確認」ページが表示されます。

7. レポートに含まれる期間を確認して、「終了」をクリックします。

「期間の比較: 結果」ページが表示されます。

選択した期間からのデータが「一般」サブページに表示されます。「データの表示」リストからオプションを選択して、1秒または1トランザクションごとにデータを表示できます。

注意:

期間が異なる場合は、異なる期間を比較できるように、データをデータベース時間で正規化してから差異が計算されます。

この例は、ほとんどすべてのメトリックにおいて、第1期間で多くのリソースが消費されていることを示しています。棒グラフは、2つの期間にわたる値の比率を示しています。棒グラフがない場合は値が同一であることを示しています。この例のレポートでは、最初の期間の1秒当たりのデータベース・ブロックの変更と解析時間が、2番目の期間よりも大幅に多くなっています。

8. 「レポート」をクリックして、レポートを表示します。
レポートの生成中に「処理中: レポートの表示」ページが表示されます。これが完了するとレポートが表示されます。

9. オプションで、次の操作を行います。

- 期間を変更するには「期間の変更」をクリックします。

- レポートをHTMLファイルで保存するには、「ファイルに保存」をクリックします。

参照:

- 「ベースラインの作成」

- 「AWR期間の比較レポートの使用」

現在のシステム・パフォーマンスのベースライン期間との比較

本番システムのパフォーマンスの変動があったためその理由を調べる、あるいは本番システムに変更を加え、それによる並行性の待機の増加などの影響を調べる必要があるとします。

期間比較ADDMでは2つの期間のデータベース・サーバーのパフォーマンスを比較し、パフォーマンスの変化およびその根本的な原因を示すレポートを返します。このアドバイザでは、Cloud Controlによって監視されているバージョン10.2.0.4以上のOracle RDBMSを分析できます。次の手順では、期間比較ADDMからレポートを開始する方法について説明します。

1. 「パフォーマンス」メニューから「AWR」を選択し、次に期間比較ADDMを選択します。

2. 期間比較ADDMの実行・ページで、必要な比較および基本期間を指定します。

- 比較期間 — 一般的に適切に機能していない期間を表します。ただし、アドバイザを使用してパフォーマンスが以前と比べて向上した理由を調べることもできます。

- 基本期間 — データベースが適切に機能している既知(ベースラインまたは参照)の期間を示します。パフォーマンスが許容範囲であり、ワークロードが類似するか可能なかぎり同じ基本期間を選択してください。

3. 「実行」をクリックしてデータベース期間比較レポートを表示します。

4. レポートの各セクションを調べ、2つの期間の間のパフォーマンス変化とその変化の原因を把握します。

- 概要
レポートのこの部分に、両方の期間に共通するSQL文の平均的なリソース消費に基づいて基本期間および比較期間を比較できるSQLの共通性が表示されます。

100%の共通性とは、両方の期間でのワークロードの署名が同一であることを示します。0%の値は、特定のワークロード・ディメンションについて2つの期間に共通するものがないことを示します。

共通性は入力タイプ(つまり実行されているSQL)と、実行中のSQL文の負荷に基づいています。つまり、ある期間でのみ実行されるが、時間がかからないSQL文は共通性に影響を与えません。そのため、一部のSQL文が2つの期間のいずれかでのみ実行されている場合でも、それらのSQL文が多くのリソースを消費していない条件で2つのワークロードの100%の共通性を確保できます。

- 構成
表示される情報には、インスタンス、ホストおよびデータベース別に分類された各種パラメータのベース期間と比較期間の値が含まれます。

- 結果
結果にパフォーマンスの向上が示され、システム変更による主なパフォーマンスの差異を識別できる可能性があります。原因を把握してこれを解決すると、マイナスの結果が解消されます。

基本期間および比較期間に表示される値は、データベース時間に関するパフォーマンスを表します。

「影響の変更」の値は、ある期間から別の期間のパフォーマンスの変化の規模の測定値を表します。これは、それぞれの期間で消費したデータベースの合計時間によって測定した問題またはアイテムに適用できます。絶対値は降順でソートされます。

値がプラスの場合は増加、マイナスの場合は減少を示します。たとえば、影響の変化が200%の場合は、期間2が期間1より3倍低速であることを意味します。

ADDMおよびSQLチューニング・アドバイザなどのパフォーマンス・チューニング・ツールを実行して、比較期間の問題を修正し、全体的なシステム・パフォーマンスを向上させることができます。

- リソース
ここに表示される情報は、両方の期間のデータベース時間分割のサマリーと、CPU、メモリー、I/Oおよび相互接続のリソース使用率を示します(Oracle RACのみ)。

5. 監視に基づいて、パフォーマンスの低下を解消する方法を決定し、アクション・プランを実行します。

スナップショットの2つのペアの比較

既存のベースラインが使用不可になった場合、任意の2つのスナップショットのペアを使用してデータベースのパフォーマンスを比較できます。この組合せの1つはデータベースが正常に実行しているときに作成されたもので、もう1つはデータベースのパフォーマンスが悪いときに作成されたものです。少なくとも4つのスナップショットが使用可能である必要があります。

2通りのスナップショットのペアを使用してパフォーマンスを比較する手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「AWR」、「期間比較レポート」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。期間比較レポートの実行・ページが表示されます。

3. 「第1期間」で、「スナップショット別」を選択します。

4. 「スナップショットの開始」で、拡大鏡アイコンをクリックします。
検索と選択: スナップショット・ページが表示されます。

5. レポートに含める最初のスナップショット期間の開始点を選択し、「選択」をクリックします。
期間比較レポートの実行・ページに戻ります。

6. 「スナップショットの終了」で、拡大鏡アイコンをクリックします。
検索と選択: スナップショット・ページが表示されます。

7. レポートに含める最初のスナップショット期間の終了点を選択し、「選択」をクリックします。

期間比較レポートの実行・ページに戻ります。

8. 「第2期間」で、手順3から手順7を繰り返します。

9. 「レポートを生成」をクリックします。

「レポート結果」セクションは、「期間比較レポートの実行」ページに表示されます。セクションには、ワークロード・リポジトリの期間比較レポートが含まれます。

10. オプションで、次の操作を行います。

- 期間を変更するには、手順3から手順9を繰り返します。

- レポートをHTMLファイルで保存するには、「ファイルに保存」をクリックします。

AWR期間の比較レポートの使用

AWR期間の比較レポートが比較する期間で生成された後、このレポートを使用して、パフォーマンスの低下を分析できます。レポートの作成方法の詳細は、「AWR期間の比較レポートの実行」を参照してください。

図9-1はAWR期間の比較レポートの一部を示しています。

図9-1 AWR期間の比較レポート

AWR期間の比較レポートは、次のセクションに分かれています。

- AWR期間の比較レポートのサマリー

- AWR期間の比較レポートの詳細

- AWR期間の比較レポートの補足情報

AWR期間の比較レポートのサマリー

レポート・サマリーはAWR期間の比較レポートの一部で、スナップショット・セットおよびレポートで使用される負荷に関する情報を示します。レポート・サマリーは次のセクションで構成されています。

- スナップショット・セット

- ホスト構成の比較

- キャッシュ・サイズ

- ロード・プロファイル

- 上位タイム・イベント

スナップショット・セット

スナップショット・セットに関するセクションに、インスタンス、ホストおよびスナップショットの詳細などのこのレポートに使用されたスナップショット・セットに関連する情報が表示されます。

図9-1に示す例では、1番目のスナップショット期間は、2月7日の10:50から11:20までにパフォーマンスが安定していた時間に対応しています。2番目のスナップショット期間は、同じ日の12:50から13:00にパフォーマンスの低下が発生した時間に対応しています。

ホスト構成の比較

「ホスト構成の比較」セクションでは2つのスナップショット・セットで使用したホスト構成を比較します。たとえば、前述のレポートでは物理メモリーとCPUの数を比較します。構成の差異は、「%Diff」列に割合として数値化されます。

キャッシュ・サイズ

「キャッシュ・サイズ」セクションでは、2つのスナップショット・セットで使用したデータベース構成を比較します。たとえば、前述のレポートでは、SGAとログ・バッファのサイズを比較します。構成の差異は、「%Diff」列に割合として数値化されます。

ロード・プロファイル

「ロード・プロファイル」セクションでは、2つのスナップショット・セットで使用された負荷が比較されます。負荷の差異は、「%Diff」列に割合として数値化されます。

この例では、1番目の期間の1秒当たりのデータベース時間が100%高くなっています。1秒当たりのCPU時間は100%高くなっています。

上位タイム・イベント

上位の時間消費イベント・セクションは、レポートで最も役に立つセクションのひとつです。このセクションには、各スナップショット・セットで総DB時間を最も高い割合で消費する5つのイベントまたは操作が表示されます。

この例では、1番目のCPU時間およびデータベース・ファイルの順次読取りの待機数が2番目の期間より大幅に多くなっています。

AWR期間の比較レポートの詳細

「レポートの詳細」セクションは、AWR期間の比較レポートのサマリーに続くセクションで、レポートに使用されたスナップショット・セットと負荷に関する統計が表示されます。たとえば、このセクションには時間モデル統計、待機イベント、SQL実行時間、インスタンス・アクティビティなどの統計が含まれます。

AWR期間の比較レポートの補足情報

補足情報は、AWR期間の比較レポートの最後にあり、初期化パラメータおよびSQL文に関する追加情報を提供します。「init.oraパラメータ」セクションには、最初のスナップショット・セットのすべての初期化パラメータ値がリストされています。「SQLテキストの完全なリスト」セクションには、SQL IDごとに各文がリストされ、SQL文のテキストが表示されます。

10 自動ワークロード・リポジトリ・ウェアハウスを使用したパフォーマンス・レポートの生成

Enterprise Manager AWRウェアハウスでは、重要なOracleデータベースの自動ワークロード・リポジトリから詳細なパフォーマンス・データを統合して保存できます。この統合されたAWRウェアハウスを使用することにより、DBAおよび開発者は、ソース・データベースのAWR保存期間を超えて履歴パフォーマンス・データを表示および分析できます。Enterprise Managerでは、自動ワークロード・リポジトリ(AWR)のデータを1つ以上のソース・データベース・ターゲットから抽出し、ソース・データベースから独立して管理されているAWRウェアハウスに転送します。AWRウェアハウスでは、選択したEnterprise Managerデータベース・ターゲットのAWRデータの長期履歴を保持できます(そのように構成されている場合)。これにより、ソース・データベース・ターゲットにパフォーマンスや領域の影響を与えずに、データベース間でAWRデータの長期分析を行うことができます。

そのため、一元管理されたAWRウェアハウスにAWRデータをアップロードすることで、本番システムの領域を解放して、パフォーマンスを向上させることができます。

AWRウェアハウスを構成するには、Enterprise Manager管理者が既存のEnterprise Managerデータベース・ターゲットをAWRウェアハウスとして指定する必要があります。ウェアハウスは、SYSAUX表領域を使用してSYSスキーマに構築されます。ウェアハウス・ターゲット・データベースは、バージョン12.1.0.2以上、または適切なパッチを適用済のバージョン11.2.0.4である必要があります。また、対応するソース・データベースのデータベース・バージョン以上である必要があります。

この機能を使用するには、まず、Enterprise Managerで使用可能なOracleデータベースをAWRウェアハウスとして設定する必要があります。ウェアハウス・データベースを設定したら、リポジトリを抽出してウェアハウスにアップロードする対象のソース・データベースを指定できます。

「AWRウェアハウス」ページにアクセスする手順:

1. 「ターゲット」メニューから「データベース」を選択します。

2. 「データベース」ページで、「パフォーマンス」をクリックし、「AWRウェアハウス」を選択します。

初期設定(ウェアハウスの設定前)では、ページの左側に機能のワークフローが、右側に構成アクセスが表示されます。

設定後は、ページの右側にウェアハウス構成の概要がまとめられ、使用可能な領域の使用率(%)がグラフで表示されます。このビューで、ウェアハウスを構成できます。

初期設定後、ホーム・ページがダッシュボードとなって、次のタスクを実行できるようになります。

- ソース・データベースの追加および削除。

- スナップショットのアップロードの有効化および無効化。

- スナップショットのオンデマンド・アップロード。

- ウェアハウスに格納されているAWRデータへのアクセス権を管理者へ付与。

- インシデントおよびエラーの監視と調査。

- ウェアハウスでのパフォーマンス・レポートおよび分析の実行(ローカルのAWRと同様)。

この項では、AWRウェアハウスに関する次の内容について説明します。

- AWRウェアハウスの設定

- ソース・データベースの操作

- AWRウェアハウスへのスナップショットのアップロード

- AWRウェアハウスでの「パフォーマンス」ページの使用

- インシデントおよびエラーの監視と調査

AWRウェアハウスの設定

データベースをAWRウェアハウスに指定する前に、これらの前提条件を満たしていることを確認してください。

- ターゲット・データベースが、既存のバージョン12.1.0.2以上または適切なパッチ・レベルを適用済の11.2.0.4で、Enterprise Manager Cloud Controlの管理対象ターゲットであること。選択したデータベースが他のアプリケーションで使用されないようにすること、およびEnterprise Manager Cloud Controlリポジトリがウェアハウスとして使用されないようにすることをお薦めします。

- アップロードされるデータを収容できる十分な領域(1ソース・データベース1日当たりの倍数)があること。1データベース1日当たりの目安は4-10MBの範囲です。

- AWRウェアハウスを構成するには、スーパー管理者権限を有していること。

1. 「ターゲット」メニューから「データベース」を選択します。

2. 「データベース」ページで、「パフォーマンス」をクリックし、「AWRウェアハウス」を選択します。

3. ワークフロー・ダイアグラムの右側のペインで、「構成」をクリックします。第1構成ページ(リポジトリ)が表示されます。

4. 検索アイコンをクリックして、AWRウェアハウスとして機能するデータベースを選択します。

5. ターゲット・データベース用に設定された優先資格証明または名前付き資格証明を選択します。資格証明を新たに指定することもできます。

6. ターゲット・データベース・ホスト用に設定された優先資格証明または名前付き資格証明を選択します。資格証明を新たに指定することもできます。

7. 「次へ」をクリックします。第2構成ページ(AWRスナップショットの管理)が表示されます。

8. 保存期間を年数に設定します。オプションで、データを無期限に保持する選択も可能です。

9. スナップショット・アップロード間隔を設定します。デフォルトは24時間、最小間隔は1時間です。スナップショットをオンデマンドでアップロードすることもできます。

10. エクスポートされたダンプ・ファイルを保存するウェアハウス・データベース・ホスト上の場所を選択します。単一インスタンス・データベースでは、エージェントの状態ディレクトリがデフォルトの場所になります。クラスタ・データベースでは、すべてのノードがアクセス可能な場所を指定する必要があります。

11. 「発行」をクリックします。これにより、接頭辞CAW_LOAD_SETUP_の付いたジョブが発行されます。ジョブが正常に完了すると、ウェアハウスにソース・データベースを追加できるようになります。

ソース・データベースの操作

ダッシュボードを使用して、AWRウェアハウスを構成するソース・データベースを管理します(これには次のアクティビティを含みます)。

- ソース・データベースの追加および削除。

- スナップショットのアップロードの有効化および無効化。

- スナップショットのオンデマンド・アップロード。

- 一元的に保存されたAWRデータの表示アクセス権の付与。

ソース・データベースの追加および削除

AWRデータをウェアハウスにアップロードする対象のソース・データベースは、ウェアハウス・データベースのバージョン以前(10.2.0.4まで)である必要があります。ソース・データベースを追加および削除するには、sys.dbms_swrf_internalパッケージの実行権限とDBAロールを保持し、データベース・ターゲットおよびデータベース資格証明にアクセスできる必要があります。

ツールバーの「追加」ボタンをクリックして、AWRウェアハウスに追加するソース・データベースを選択します。削除する場合は、ダッシュボードでソース・データベースを選択し、「削除」ボタンをクリックします。データベースを削除しても、そのデータを消去するジョブが実行されるまでの間、データは残っています。データを保持する場合は、データベースを削除するかわりに、スナップショットのアップロードを無効化します。

スナップショットのアップロードの有効化および無効化

ソース・データベースを追加する場合、そのスナップショットのアップロードはデフォルトで有効になっています。ソース・データベースのスナップショットのアップロードを無効化(および再度有効化)するには、所有者またはプロキシである必要があります。アップロードを無効化する場合、処理中のジョブはアップロードの停止前に完了できます。再度有効化した場合、アップロードは次回のスケジュール済アップロードで再開されます。

スナップショットのオンデマンド・アップロード

スナップショットをオンデマンドでアップロードすることもできます。ダッシュボードでソース・データベースを選択し、「アクション」メニューから「スナップショットをただちにアップロード」を選択します。

AWRスナップショットの表示アクセス権の付与

ソース・データベースの所有者は、他のEnterprise Manager管理者に対して、AWRウェアハウスに保存されているAWRスナップショットの表示アクセス権を付与できます。

1. ダッシュボード表のソース・データベースを選択し、ツールバーの「権限」ボタンをクリックします。

2. 表示されたダイアログで、管理者の名前を「使用可能」リストから「選択済」リストに移動します。

3. 「OK」をクリックすると、選択した名前に表示アクセス権が付与されます。

AWRウェアハウスへのスナップショットのアップロード

ソース・データベースからのAWRスナップショット・データのアップロードは、ETLプロセス(抽出、転送、ロードといったETL処理を実行する一連のジョブ)として行われます。

AWRデータの抽出

収集プロセスの一環として、DBMSジョブを一定の間隔で実行し、AWRスナップショットを収集して、ターゲット・ホスト上のステージング領域にダンプを作成します。このジョブでは、初回時に既存のAWRデータを収集し、以降は最新のスナップショットを増分方式で収集します。初回時に収集するデータが多すぎる場合、ジョブは時間をずらして収集プロセスを実行し、ソース・データベースに負荷がかからないようにします。

AWRデータの転送

Enterprise Managerジョブをそれぞれのホスト上で一定の間隔で実行し、ソース・データベースのAWRデータをウェアハウス・ホスト上のステージング領域に転送して、後続の処理に備えます。このジョブでは、エージェント間のファイル転送メカニズムを使用してダンプ・ファイルをコピーします。ウェアハウスへのアップロードが正常に完了すると、ダンプ・ファイルはホストのステージング領域から削除されます。

転送済データのAWRウェアハウスへのロード

DBMSジョブを一定の間隔で実行し、複数のソース・データベースのダンプ・ファイルを処理して、それらをウェアハウス・スキーマにインポートします。これは、インポート済のスナップショットが重複しないように、増分方式で行われます。インポート・プロセスの一環として、ジョブではDB IDをマップして、一意性を確保します。この情報を別の表で管理して、重複したDB IDを処理し、マルチテナント・シナリオ(たとえば、1つのAWRデータベースに複数の顧客データが保存され、データベース名が重複している場合など)に対応します。AWRデータは、構成可能な保存期間まではウェアハウスに保持され、その後でパージされます。

注意:

スナップショットをオンデマンドでアップロードすることもできます。ダッシュボードでソース・データベースを選択し、「アクション」メニューから「スナップショットをただちにアップロード」を選択します。

AWRウェアハウスでの「パフォーマンス」ページの使用

構成済のAWRウェアハウスから履歴データ、グラフおよびレポートを表示するには、次の手順に従って、ソース・データベースのそれぞれのパフォーマンス・ページ上で「データの表示」モードを「AWRウェアハウス」に切り替えます。

「パフォーマンス・ホーム」ページ

AWRウェアハウスで「パフォーマンス・ホーム」ページを使用するには、次の手順を実行します。

1. ダッシュボードでソース・データベースを選択します。

2. ツールバーの「パフォーマンス・ホーム」ボタンをクリックします。
「パフォーマンス・ホーム」ページが、履歴 - AWRウェアハウス・モードで表示されます。このページを表示するためにソース・データベースにログインする必要はありません。

「パフォーマンス・ホーム」ページにはデータベースのホーム・ページからもアクセスできます。「パフォーマンス・ホーム」ページで、「データの表示」ドロップダウン・メニューから 「履歴 - AWRウェアハウス」を選択します。AWRウェアハウスの選択肢は、ソース・データベースとして追加されているデータベースのみを対象とし、アクセス権を付与されているユーザーのみが使用できます。

参照:

「パフォーマンス・ホーム」ページの詳細は、「ユーザー・アクティビティの監視」を参照してください。

「ASH分析」ページ

AWRウェアハウスで「ASH分析」ページを使用するには、次の手順を実行します。

1. ダッシュボードでソース・データベースを選択します。

2. ツールバーの「ASH分析」ボタンをクリックします。
「ASH分析」ページが、履歴 - AWRウェアハウス・モードで表示されます。このページを表示するためにソース・データベースにログインする必要はありません。

「ASH分析」ページには、選択したデータベースのホーム・ページからもアクセスできます。「パフォーマンス」メニューから「ASH分析」を選択します。「ASH分析」ページで、「AWRデータ・ソース」ドロップダウン・メニューから「履歴 - AWRウェアハウス」を選択します。

参照:

ASH分析の詳細は、「データベース・アクティビティのスパイクの原因の確認」を参照してください。

「AWRレポート」ページ

AWRウェアハウスで「AWRレポート」ページを使用するには、次の手順を実行します。

1. ダッシュボードでソース・データベースを選択します。

2. ツールバーの「AWRレポート」ボタンをクリックします。
「AWRレポート」ページが、履歴 - AWRウェアハウス・モードで表示されます。このページを表示するためにソース・データベースにログインする必要はありません。

3. 「レポートを生成」をクリックします。

「AWRレポート」ページには、選択したデータベースのホーム・ページからもアクセスできます。「パフォーマンス」メニューから、「AWR」、「AWRレポート」の順に選択します。「AWRレポート」ページで、「AWRデータ・ソース」ドロップダウン・メニューから「履歴 - AWRウェアハウス」を選択します。

参照:

AWRレポートの詳細は、「時間の経過によるパフォーマンス低下の解決」を参照してください。

「期間比較ADDM」ページ

AWRウェアハウスで「期間比較ADDM」ページを使用するには、次の手順を実行します。

1. ダッシュボードでソース・データベースを選択します。

2. 「期間の比較」ドロップダウン・メニューから「期間比較ADDM」を選択します。
「期間比較ADDM」ページが、履歴 - AWRウェアハウス・モードで表示されます。このページを表示するためにソース・データベースにログインする必要はありません。

3. 手順1および2を完了します。手順2のデータベースの選択肢には、ウェアハウス内のAWRデータが保存されている、アクセス可能なすべてのデータベースが表示されます。

4. 「実行」をクリックして、比較を実行します。

「期間比較ADDM」ページには、選択したデータベースのホーム・ページからもアクセスできます。「パフォーマンス」メニューから、「AWR」、「期間比較ADDM」の順に選択します。「期間比較ADDM」ページで、「AWRデータ・ソース」ドロップダウン・メニューから「履歴 - AWRウェアハウス」を選択します。期間比較ADDMの実行の詳細は、ここをクリックしてください。

参照:

期間比較ADDMの詳細は、「現在のシステム・パフォーマンスのベースライン期間との比較」を参照してください。

期間比較レポート

AWRウェアハウスで「期間比較レポート」ページを使用するには、次の手順を実行します。

1. ダッシュボードでソース・データベースを選択します。

2. 「期間の比較」ドロップダウン・メニューから「期間比較レポート」を選択します。
「期間比較レポート」ページが、履歴 - AWRウェアハウス・モードで表示されます。このページを表示するためにソース・データベースにログインする必要はありません。

3. 「第1期間」および「第2期間」を完了します。2つの期間の選択肢は、ウェアハウス内のデータから導出されます。第2期間では、ウェアハウス内のアクセス可能な任意のデータベースを選択できます。

4. 「レポートを生成」をクリックします。

「期間比較レポート」ページには、選択したデータベースのホーム・ページからもアクセスできます。「パフォーマンス」メニューから、「AWR」、「期間比較レポート」の順に選択します。「期間比較レポート」ページで、「AWRデータ・ソース」ドロップダウン・メニューから「履歴 - AWRウェアハウス」を選択します。

参照:

期間比較レポートの詳細は、「AWR期間の比較レポートの実行」を参照してください。

インシデントおよびエラーの監視と調査

データを定期的に移動すると、アップロード・プロセスの様々な段階で問題が発生することがあります。ダッシュボードにはインシデントおよびエラーのレポートが表示されるので、問題をトレースして解決できます。Enterprise Managerのベスト・プラクティスに従い、既存のフレームワークを使用してインシデントの管理や通知の構成などを行うことができます。

ダッシュボードのグラフ領域には、ウェアハウスのアップロード・アクティビティ全般で発生した問題の一覧が表示されます。インシデントが発生すると、「インシデントの表示」リンクが表示され、それをクリックするとインシデント・マネージャに直接リンクされるので、ドリルダウンして詳細を調べることができます。「ガイドされた解決」セクションには、レポートされたウェアハウス・エラーを表示するリンクやAWRウェアハウスのダッシュボードに戻るリンクが用意されています。

特定のデータベース・ソースに関するエラーを表示するには、ダッシュボードでデータベース行を選択し、ツールバーの「エラーの表示」をクリックします。

通常、エラーはアクティビティ別(AWRウェアハウスのロード、ソース・データベースの抽出、転送)に分類されます。よくあるエラーおよび推奨される解決策の一部を次に示します。

AWRウェアハウスのロード・エラー

AWRウェアハウスのSYSAUX表領域が不十分で、AWRスナップショットのインポートに対応できない場合、インポートは次のエラーにより失敗します。

ORA-20115: Data Pump import encountered error:
ORA-31626: job does not exist
ORA-31633: unable to create master table "SYS.SYS_IMPORT_FULL_27"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT", line 1048
ORA-01658: unable to create INITIAL extent for segment in tablespace SYSAUX
ORA-31626: job does not exist

この問題を解決するには、SYSAUX表領域を増やしてください。

ロード・ジョブでは、データ・ポンプを使用してAWRスナップショット・ダンプをインポートします。データ・ポンプ・ジョブでは、マスター表を使用してジョブの進捗を追跡します。インポート中にエラーが発生すると、マスター表はそのまま残ります。エラーが累積するに従ってマスター表も増え、最終的に次のエラーが発生します。

ORA-20115: Data Pump import encountered error:
ORA-31634: job already exists
ORA-31664: unable to construct unique job name when defaulted
ORA-31634: job already exists

これを解決するには、以前に失敗したジョブのマスター表を削除します。次のようにして、NOT RUNNING状態のジョブを対象としたdba_datapump_jobsビューの問合せを行います。

SELECT job_name
FROM dba_datapump_jobs
WHERE owner_name='SYS'
AND operation='IMPORT'
AND job_mode='FULL'
AND job_name like 'SYS_IMPORT_%'
AND state='NOT RUNNING';

注意:

問合せが戻したジョブ名がアクティブなデータ・ポンプ・ジョブによって使用されている場合があります。データ・ポンプのマスター表を誤って削除しないように、アクティブなデータ・ポンプ・ジョブがないことを確認してください。

AWRウェアハウスの機能を有効にするパッチには、レガシー・マスター表の修正が含まれているので、パッチ適用後にこの問題が発生することはありません。

アクティブなデータ・ポンプ・ジョブが正常に終了しないと(ジョブの異常終了、データベースの停止など)、後続のジョブは次のエラーにより失敗します。

ORA-39097: Data Pump job encountered unexpected error -56935
ORA-39065: unexpected master process exception in DISPATCH
ORA-56935: existing datapump jobs are using a different version of time zone data file

この問題を解決するには、データベース・プロパティでデータベースの起動に関する特定の値をチェックし、次のように適切なアクションを実行します。

SELECT property_name, property_value
FROM sys.database_properties
WHERE property_name in ('DST_UPGRADE_STATE', 'DST_SECONDARY_TT_VERSION');

指定したプロパティに対して、問合せから'DATAPUMP'および '<> 0'がそれぞれ戻された場合は、次を実行します。

exec dbms_dst.unload_secondary();

注意:

このデータ・ポンプ・エラーは、ソース・データベースの抽出時にも発生する場合があります。

ソース・データベースのタイムゾーンがAWRウェアハウスのタイムゾーンよりも進んでいると、最新のスナップショット・ダンプのインポート時に次のエラーが発生します。

ORA-20105: Unable to move AWR data to SYS
ORA-06512: at "SYS.DBMS_SWRF_INTERNAL", line 4773
ORA-13555: Message 13555 not found;  product=RDBMS; facility=ORA;
arguments: [end_time is greater than SYSDATE]

処置は必要ありません。この問題は、AWRウェアハウスのSYSDATEがポンプ・ファイルの日付を過ぎると自動的に修正されます。

ソース・データベースの抽出エラー

ソース・データベースのSYSAUX表領域が不十分で、AWRスナップショットの抽出に対応できない場合、抽出は次のエラーにより失敗します。

ORA-20115: Data Pump export encountered error:
ORA-31626: job does not exist
ORA-31633: unable to create master table "SYS.SYS_EXPORT_TABLE_08"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT", line 1048
ORA-01658: unable to create INITIAL extent for segment in tablespace SYSAUX
ORA-06512: at "SYS.DBMS_SWRF_INTERNAL", line 2159
ORA-31626: job does not exist

この問題を解決するには、SYSAUX表領域を増やしてください。

抽出ジョブでは、データ・ポンプを使用してAWRスナップショット・ダンプをエクスポートします。データ・ポンプ・ジョブでは、マスター表を使用してジョブの進捗を追跡します。エクスポート中にエラーが発生すると、マスター表はそのまま残ります。エラーが累積するに従ってマスター表も増え、最終的に次のエラーが発生します。

ORA-20115: Data Pump import encountered error:
ORA-31634: job already exists
ORA-31664: unable to construct unique job name when defaulted
ORA-31634: job already exists

これを解決するには、以前に失敗したジョブのマスター表を削除します。次のようにして、NOT RUNNING状態のジョブを対象としたdba_datapump_jobsビューの問合せを行います。

SELECT job_name
FROM dba_datapump_jobs
WHERE owner_name='SYS'
AND operation='EXPORT'
AND job_mode='TABLE'
AND job_name like 'SYS_EXPORT_%'
AND state='NOT RUNNING';

注意:

問合せが戻したジョブ名がアクティブなデータ・ポンプ・ジョブによって使用されている場合があります。データ・ポンプのマスター表を誤って削除しないように、アクティブなデータ・ポンプ・ジョブがないことを確認してください。

AWRウェアハウスの機能を有効にするパッチには、レガシー・マスター表の修正が含まれているので、パッチ適用後にこの問題が発生することはありません。

ソース・データベースの抽出時に発生する可能性のあるその他のエラーは、「AWRウェアハウスのロード・エラー」のデータ・ポンプ・エラーも参照してください。

転送エラー

1つのソース・データベースにAWRウェアハウスへのロードを待機しているダンプ・ファイルが多数あり、それぞれのサイズを合計するとしきい値(1GB)を超える場合は、次のエラーが発生します。

The total size of dump files from the source database exceeds threshold value (size: xxx MB, threshold: xxx MB)

AWRウェアハウスへのダンプ・ファイルのロードに根本的な問題があって、ダンプ・ファイルのバックログが生成されている可能性があります。未処理のロード・エラーがないかチェックし、ある場合はそのエラーを解決して、インポートを再開できるようにします。

AWRウェアハウスへのロードを待機しているすべてのソース・データベースのダンプ・ファイルの合計サイズがしきい値(30GB)を超える場合、次のエラーが発生します。

The total size of dump files on AWR Warehouse exceeds threshold value (size: xxx MB, threshold: xxx MB)

ロード・キューに保留中のダンプ・ファイルのバックログが存在する理由を特定します。バックログの問題を解決すると、ロードを再開できるようになります。

AWRウェアハウスのベスト・プラクティス

Oracleでは、ウェアハウス・マネージャとEnterprise Managerの両方の視点からのベスト・プラクティスを推奨しています。

データベースのベスト・プラクティス

ウェアハウス・データベースの視点からのベスト・プラクティスには、次の領域が関連します。

- メモリー管理

- 記憶域要件

- バックアップ

- REDOログ・サイズ

- 統計収集

- job_queue_processesパラメータ

- アクセス制御

メモリー管理

ウェアハウス・データベースでの管理および必要な場合の調整には、自動メモリー管理を使用することをお薦めします。このためには、ターゲット・メモリー・サイズ初期化パラメータ(MEMORY_TARGET)と、オプションの最大メモリー・サイズ初期化パラメータ(MEMORY_MAX_TARGET)を設定します。ターゲット・メモリーの量はウェアハウスのユーザー数に依存します。2GB以上に設定し、負荷やその他の要件に応じて変更します。

手動メモリー管理を使用する場合は、SGAおよびインスタンスPGAのサイズを十分高い値(2GB以上)に設定します。手動共有メモリー管理の場合は、個別SGAコンポーネントのサイズ(特にバッファ・キャッシュ・サイズおよび共有プール・サイズなど)を十分高い値に設定します。

記憶域要件

デフォルトでは、Oracle Databaseは1時間おきにスナップショットを取得しますが、スナップショット・サイズはデータベースのロードによって異なります。同時アクティブ・セッションが平均10セッションの一般的なシステムでは、スナップショットごとに1MBから2MBを使用します。このため、デフォルトの1時間のスナップショット間隔で、1日およそ24MBから48MBが必要です。

AWRデータはSYSAUX表領域に格納されます。必要な表領域はソース・データベースの数に依存します。ソース・データベースの一般的なロードでデフォルト設定を使用する場合、ソース・データベースごとに1日およそ24MBから48MBが必要です。

必要な領域をさらに正確に読み取るには、ORACLE_HOME/rdbms/adminディレクトリにあるawrinfo.sqlスクリプトを実行します。具体的には、「Size estimates for AWR snapshots」セクションの「AWR size/day」と「AWR size/wk」の値を参照してください。ソース・データベースでは、これらの値はデータベース上に生成されるAWRデータの平均サイズを表します。AWRウェアハウス・データベースでは、これらの値はすべてのソース・データベースからインポートされるAWRデータの平均サイズを表します。これらの値を使用してウェアハウス領域要件を見積ります。通常は、ウェアハウスにソース・データベースが追加されると、AWRデータの格納に必要な領域も増加します。

冗長性の高いディスク・グループで、「同期単一ブロック読取りの平均待機時間」が40ミリ秒未満の場合に自動ストレージ管理(ASM)を使用します。これは記憶域とI/Oに関連するその他のメトリックとあわせてDBA_HIST_SYSMETRIC_SUMMARYビューに表示されます。

また、ソース・データベースから受信したAWRデータを含むダンプ・ファイルをウェアハウス・データベースにロードするまで格納するために、ウェアハウス・ホストに十分な空きディスク領域(約50GB)があることを確認してください。

バックアップ

データ損失の予防手段として、AWRウェアハウスを定期的にバックアップすることをお薦めします。Data GuardをRMANと併用すると、高可用性とデータ保護が保たれます。

REDOログ・サイズ

REDOログのサイズを正しく設定することが重要です。REDOサイズが小さいと、ログ・スイッチが頻繁に起こり、データベースのパフォーマンスに影響します。AWRウェアハウスで生成されるREDOの量は、AWRデータをウェアハウスに移動しているソース・データベースの数に依存します。REDOログ・サイズは最低でも1GBに指定してください。

統計収集

SYSおよびDBSNMPスキーマについて、1日1回以上定期的に統計を収集し、統計が正確であることを確認します。

job_queue_processesパラメータ

JOB_QUEUE_PROCESSESを0を超える値に設定します。Oracle SchedulerジョブがAWRデータのインポートを実行します。パラメータを設定すると、ジョブ・スレーブが作成され、スケジューラ・ジョブが実行されます。

アクセス制御

ウェアハウス・データベースへの直接アクセスはEnterprise Managerセキュリティ・モデルを迂回するため、ユーザーがこの権限を持っていないことを確認します。Enterprise ManagerのAWRウェアハウス・コンソールには、AWRウェアハウスで誰がどのソース・データベースのデータを参照できるかを制御するアクセス制御メカニズムがあります。

Enterprise Managerのベスト・プラクティス

Enterprise Managerの視点からのベスト・プラクティスには、次の領域が関連します。

- AWRウェアハウス資格証明

- ソース・データベース資格証明

- AWRウェアハウスのステージングの場所

- ネットワーク待機時間

AWRウェアハウス資格証明

Enterprise ManagerターゲットをAWRウェアハウス・リポジトリとして設定する場合、2つの資格証明を選択します。

- データベース資格証明 - AWRウェアハウスでは、SYSDBA資格証明が必要です。

- データベース・ホスト資格証明 - ダンプ・ファイルのステージングの場所への書込み権限のある資格証明を選択します。デフォルトのステージングの場所は、エージェント・ユーザーが必要な権限を持つエージェントの状態ディレクトリです。

ソース・データベース資格証明

ソース・データベース・ターゲットをAWRウェアハウス・リポジトリに追加するには、それぞれのソース・データベースとそのホストに優先資格証明を設定します(通常の資格証明で十分です)。これにより、複数のソース・データベースを一括して追加できます(複数のデータベースは「検索と選択: データベース」ダイアログで選択します)。

- データベース資格証明 - データベース・ユーザーには次のものが必要です。

- DBAロール

- SYS.DBMS_SWRF_INTERNALパッケージに対する実行権限

- データベース・ホスト資格証明 – ユーザーはエージェント・ユーザーと同じである必要があります。

AWRウェアハウスのステージングの場所

ソース・データベースのAWRデータは、ウェアハウス・データベース・ホストのステージングの場所にダンプ・ファイルとして移動されます。ステージングの場所はAWRウェアハウスを設定するときに構成できます。単一インスタンス・データベースでは、エージェントの状態ディレクトリがデフォルトの場所になります。クラスタ・データベースでは、すべてのノードがアクセス可能な場所を指定する必要があります。

ネットワーク待機時間

AWRウェアハウスでは、ソース・データベースからウェアハウス・データベース・ホストへのダンプ・ファイルの移動に、エージェント間のファイル転送方法を使用します。ソース・エージェント・ホストとウェアハウス・エージェント・ホストの間の接続では、転送中の遅延や問題を回避するため、ネットワーク待機時間を短くする必要があります。

第IV部 SQLチューニング

第IV部では、SQL文を効率的にチューニングする方法について説明します。内容は次のとおりです。

- 高負荷のSQL文の識別

- SQL文のチューニング

- データ・アクセス・パスの最適化

11 高負荷のSQL文の識別

高負荷SQL文は不均衡な量のシステム・リソースを消費します。これらのSQL文はデータベースのパフォーマンスに多大な影響を与える頻度が高く、パフォーマンスおよびリソース使用量を最適化するためにチューニングする必要があります。データベースが正常にチューニングされた場合でも、非効率的なSQLがパフォーマンスを著しく低下させることがあります。

高負荷SQL文の識別は定期的に実行する必要がある重要なSQLチューニング・アクティビティです。自動データベース診断モニター(ADDM)により、事前に潜在的な高負荷SQL文を識別することで、このタスクが自動化されます。また、Oracle Enterprise Manager Cloud Control (Cloud Control)を使用して、詳細な調査を必要とする高負荷SQL文を識別できます。高負荷SQL文を識別した後、SQLチューニング・アドバイザおよびSQLアクセス・アドバイザを使用してこれらをチューニングできます。

この章では高負荷SQL文の識別方法を説明しています。次の項で構成されています。

- ADDMの検出結果に基づく高負荷SQL文の識別

- 上位SQLに基づく高負荷SQL文の識別

ADDMの検出結果に基づく高負荷SQL文の識別

デフォルトで、ADDMが1時間に1回事前に実行されます。これにより自動ワークロード・リポジトリ(AWR)によって最近1時間に収集された主要統計が分析され、高負荷SQL文を含むあらゆるパフォーマンスの問題を識別します。パフォーマンスの問題が見つかった場合は、それらの問題がADDMの結果として自動データベース診断モニター(ADDM)ページに表示されます

ADDMにより、各ADDM結果と推奨事項が提供されます。高負荷SQL文が識別されると、SQL文でのSQLチューニング・アドバイザの実行などの推奨事項がADDMにより提供されます。「SQL文のチューニング」 の説明に従って、SQL文のチューニングを開始できます。

参照:

- 「自動データベース診断モニターの概要」

- 「自動データベース診断モニターの結果の説明」

- 「自動データベース診断モニターの推奨事項の実装」

上位SQLに基づく高負荷SQL文の識別

ADDMはシステム規模のパフォーマンス低下を引き起こす可能性のある高負荷SQL文を自動的に識別します。通常の状況では、高負荷SQL文の手動による識別は不要です。ただし、場合によってはより大まかなレベルでSQL文を監視することがあります。Cloud Controlのトップ・アクティビティ・ページの「上位SQL」セクションにより高負荷SQL文を5分間隔で識別できます。

図11-1は、「トップ・アクティビティ」ページの例を示しています。このページには、データベースで実行される上位アクティビティの1時間の時間軸が表示されます。データベース・アクティビティの高い割合を使用するSQL文は、「上位SQL」セクションの下にリストされ、5分間隔で表示されます。

図11-1 「トップ・アクティビティ」ページ

「トップ・アクティビティ」ページへのアクセス手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「トップ・アクティビティ」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「トップ・アクティビティ」ページが表示されます。

3. 5分間隔を移動するには、影付きボックスを目的の時間にドラッグします。
「上位SQL」セクションに含まれる情報は自動的に更新され、選択した時間間隔を反映します。

4. 1時間より長い期間でSQL文を監視するには、「データの表示」リストから「履歴」を選択します。
「履歴」ビューで、AWRの保存期間で定義された期間での上位SQL文を表示できます。

この項の内容は次のとおりです。

- SQL文の待機クラスごとの表示

- SQL文の詳細の表示

SQL文の待機クラスごとの表示

「トップ・アクティビティ」ページの「上位SQL」セクションに表示されるSQL文は、「トップ・アクティビティ」グラフの凡例に従って対応するクラスに基づいて様々な待機クラスに分類されます。

特定の待機クラスのSQL文を表示するには、次のステップを実行します。

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「トップ・アクティビティ」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「トップ・アクティビティ」ページが表示されます。

3. 「トップ・アクティビティ」グラフで、待機クラスのグラフのカラー・ブロックまたは凡例で対応する待機クラスをクリックします。
選択されている待機クラスの実行中のアクティブ・セッション・ページが表示されます。「上位SQL」セクションは、指定されている待機クラスのSQL文のみを表示するように自動的に更新されます。

参照:

- 実行中のアクティブ・セッション・ページの使用方法については、「ユーザー・アクティビティの監視」を参照してください。

SQL文の詳細の表示

「トップ・アクティビティ」ページの「上位SQL」セクションには、選択した5分間隔内で実行されたSQL文がリソース使用量に基づいて降順で表示されます。この表の上部にあるSQL文は、この期間に最もリソースが集中したSQL文を表し、次に2番目に集中したSQL文が続きます。

SQL文の詳細の表示手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「トップ・アクティビティ」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「トップ・アクティビティ」ページが表示されます。

3. 「上位SQL」セクションで、SQL文の「SQL ID」リンクをクリックします。
選択したSQL文に対して「SQLの詳細」ページが表示されます。

4. より長い期間のSQLの詳細を表示するには、「データの表示」リストから「履歴」を選択します。

AWRの保存期間で定義された期間に応じて過去のSQLの詳細を表示できます。

5. 「テキスト」セクションで、SQL文のSQLテキストを確認します。
「テキスト」セクションには選択したSQL文に対するSQLテキストが含まれます。SQL文の一部が表示されると、プラス記号(+)のアイコンが「テキスト」ヘッダーの横に表示されることに注意してください。SQL文全体のテキストを表示するには、プラス記号(+)のアイコンをクリックします。

図11-1では、SQL文ddthrb7j9a63fのテキストは次のとおりです。

SELECT E.LAST_NAME, J.JOB_TITLE, D.DEPARTMENT_NAME
FROM   HR.EMPLOYEES E, HR.DEPARTMENTS D, HR.JOBS J
WHERE  E.DEPARTMENT_ID = D.DEPARTMENT_ID
AND    E.JOB_ID = J.JOB_ID
AND    E.LAST_NAME LIKE 'A%'

6. 「詳細」セクションの「計画ハッシュ値」リストで、次のいずれかの操作を行います。

- SQL文に複数の計画がある場合は、「すべて」を選択して、すべての計画のSQLの詳細を表示します。

- 特定の計画を選択して、その計画のみのSQLの詳細を表示します。

7. 次の項の説明に従って、「SQLの詳細」ページの使用可能なサブページにアクセスし、SQL文に関するより多くの情報を表示します。

- SQL統計の表示

- セッション・アクティビティの表示

- SQL実行計画の表示

- 計画管理の表示

- チューニング履歴の表示

8. SQL文が高負荷SQL文である場合は、「SQL文のチューニング」 の説明に従って、チューニングします。

SQL統計の表示

「SQLの詳細」ページの「統計」サブページには、SQL文の統計情報が表示されます。

SQL文の統計の表示手順:

1. 「SQLの詳細」ページにアクセスします(「SQL文の詳細の表示」を参照)。

2. 「詳細」で、「統計」をクリックします。
統計サブページが表示されます。

3. 次の項の説明に従って、SQL文の統計を表示します。

- SQL統計のサマリー

- 一般的なSQL統計

- 待機ごとのアクティビティの統計および時間ごとのアクティビティの統計

- 経過時間ブレークダウンの統計

- 共有カーソル統計および実行統計

- その他のSQL統計

SQL統計のサマリー

「サマリー」セクションにはグラフのSQL統計およびSQLアクティビティが表示されます。

「実行時間」ビューで、「アクティブ・セッション」グラフに過去1時間にSQL文を実行したアクティブ・セッションの平均数が表示されます。SQL文に複数の計画があり、「計画ハッシュ値」リストで「すべて」が選択されている場合、グラフには異なる色で各計画が表示されます。これにより、計画が変更されたかどうか、またこれがパフォーマンスの低下の原因かどうかを簡単に見分けられます。また、特定の計画を選択してその計画のみを表示することもできます。

「履歴」ビューでは、グラフに異なるディメンションで実行統計が表示されます。実行統計を表示するには、「表示」リストから該当するディメンションを選択します。

- 1実行当たりの経過時間

- 1時間当たりの実行数

- 1実行当たりのディスク読取り

- 1実行当たりのバッファ読取り

この操作により、異なるディメンションを使用したSQL文のレスポンス時間の追跡が可能になります。SQL文のパフォーマンスの低下が、選択されたディメンションに起因しているかどうかを決定できます。

特定の期間に対するSQL文の統計を表示するには、グラフの下のスナップショット・アイコンをクリックします。矢印を使用してスクロールすると、目的のスナップショットの位置に移動できます。

一般的なSQL統計

「一般」セクションでは次の情報がリストされ、SQL文の起点を識別できます。

- モジュール(DBMS_APPLICATION_INFOパッケージの使用を指定した場合)

- アクション(DBMS_APPLICATION_INFOパッケージの使用を指定した場合)

- SQL文の実行に使用された解析スキーマ、またはデータベース・アカウント

- PL/SQLソース(SQL文がPL/SQLプログラムの一部だった場合はそのコード行)

待機ごとのアクティビティの統計および時間ごとのアクティビティの統計

「待機ごとのアクティビティ」セクションおよび「時間ごとのアクティビティ」セクションでは、SQL文が時間の大部分をどのように費やしたかを識別できます。「待機ごとのアクティビティ」セクションでは、CPUおよび残っている待機によって消費される経過時間の量がグラフィカルに表示されます。「時間ごとのアクティビティ」セクションでは、経過時間の合計がCPU時間および待機時間に毎秒分割されます。

経過時間ブレークダウンの統計

「経過時間ブレークダウン」セクションでは、SQL文自体が時間を大量に消費しているかどうか、または発信元プログラムやアプリケーションがPL/SQLまたはJavaエンジンを使用した時間のために経過時間の合計が長くなったのかどうかを識別できます。PL/SQL時間またはJava時間が経過時間の大部分を占める場合、SQLのチューニングでは大きな改善はできない可能性があります。かわりに、アプリケーションを調査して、PL/SQL時間またはJava時間を削減できるかどうかを判別する必要があります。

共有カーソル統計および実行統計

「共有カーソル統計」セクションおよび「実行統計」セクションではSQL実行プロセスの様々なステージの効率性に関連する情報を提供します。

その他のSQL統計

「その他統計」セクションでは、平均の永続メモリーおよびランタイム・メモリーなど、SQL文の詳細が表示されます。

セッション・アクティビティの表示

「アクティビティ」サブページにはセッション・アクティビティがグラフィカルに表示されています。

SQL文のセッション・アクティビティの表示手順:

1. 「SQLの詳細」ページにアクセスします(「SQL文の詳細の表示」を参照)。

2. 「詳細」で、「アクティビティ」をクリックします。
「SQLの詳細」ページが表示され、「アクティビティ」サブページが表示されます。

「アクティビティ」サブページにはSQL文を実行する各種セッションの詳細が表示されます。「アクティブ・セッション」グラフには、一定期間のアクティブ・セッション数の平均が表示されます。

3. 影付きのボックスをドラッグして5分間隔を選択することもできます。
「選択した5分間隔の詳細」セクションには、選択した5分間隔の間にSQL文が実行されたセッションがリストされています。「アクティビティ%」列にある複数色の棒は、SQL文の実行中に各セッションに分割されたデータベース時間の割当てを表しています。

4. オプションで、表示するセッションの「SID」列のリンクをクリックして「セッションの詳細」ページを表示します。

参照:

- セッション・アクティビティおよび詳細の監視方法については、「上位セッションの監視」を参照してください。

SQL実行計画の表示

SQL文の実行計画は、文を実行するためにOracle Databaseで行われる操作の順序です。「プラン」サブページに、SQL文に対する実行計画がグラフ・ビューおよび表ビューで表示されます。

SQL文の実行計画の表示手順:

1. 「SQLの詳細」ページにアクセスします(「SQL文の詳細の表示」を参照)。

2. 「詳細」で、「プラン」をクリックします。
「SQLの詳細」ページが表示され、「プラン」サブページが表示されます。

3. グラフ・ビューでSQL実行を表示するには、「グラフィカル」をクリックします。

4. オプションで、グラフにある操作を選択して、実行計画に表示される操作の詳細を表示します。
「選択の詳細」セクションをリフレッシュすると、選択した操作の詳細が表示されます。

5. 選択した操作が表などの特定のデータベース・オブジェクト上にある場合、「オブジェクト」リンクをクリックすると、データベース・オブジェクトのより詳細な情報を表示できます。

6. 表ビューでSQL実行を表示するには、「表」をクリックします。
「プラン」サブページがリフレッシュされ、実行計画が表で表示されます。

クエリー・リライトは、マスター表について記述されたユーザー要求を、マテリアライズド・ビューを含む同等の要求に変換する最適化手法です。データベースではリライト付きとリライトなしの問合せのコストを比較し、費用の少ない方を選択します。リライトが必要な場合、クエリー・リライトおよびそのコスト・ベネフィットが「リライトの説明」セクションに表示されます。

参照:

- 実行計画および問合せオプティマイザについては、「SQL文のチューニング」を参照してください。

計画管理の表示

「計画管理」サブページには、次の項目に関する情報が表示されます。

- SQLプロファイル
SQLプロファイルにはSQL文の追加統計が含まれます。オプティマイザはこれらの統計を使用して、文に対するより適切な実行計画を生成します。

- SQLパッチ
SQLパッチは、単一のSQL文のエラーまたはパフォーマンスの問題を修正するために、自動的に生成されます。

- SQL計画ベースライン
SQL計画ベースラインは、指定されたSQL文について許容可能なパフォーマンスを持つことが実証された実行計画です。

計画管理に関する情報の表示手順:

1. 「SQLの詳細」ページにアクセスします(「SQL文の詳細の表示」を参照)。

2. 「詳細」で、「計画管理」をクリックします。
「SQLの詳細」ページが表示され、「計画管理」サブページが表示されます。

3. 計画に関連する情報を確認します。
次の例では、オプティマイザで、SQL文についてSTMT01というSQL計画ベースラインが使用されています。

参照:

- SQLチューニング・アドバイザおよびSQLプロファイルについては、「SQL文のチューニング」を参照してください。

- 「SQLプロファイルの管理」

- SQLアクセス・アドバイザについては、「データ・アクセス・パスの最適化」を参照してください。

チューニング履歴の表示

「SQLチューニング履歴」セクションにSQLチューニング・アドバイザまたはSQLアクセス・アドバイザのタスクの履歴が表示されます。

SQLチューニング履歴の表示手順:

1. 「SQLの詳細」ページにアクセスします(「SQL文の詳細の表示」を参照)。

2. 「詳細」で、「チューニング履歴」をクリックします。
「SQLの詳細」ページが表示され、「チューニング履歴」サブページが表示されます。

3. チューニング履歴に関する情報を確認します。
「SQLチューニング履歴」セクションにSQLチューニング・アドバイザまたはSQLアクセス・アドバイザのタスクの履歴が表示されます。

「このSQLの履歴期間中のADDM結果」セクションに、SQL文に関連付けられたADDM結果の発生数が表示されます。

次の例は、SQLチューニング・タスクがユーザーDBA1によって2012年2月9日に実行されたことを示しています。

参照:

- SQLチューニング・アドバイザおよびSQLプロファイルについては、「SQL文のチューニング」を参照してください。

- 「SQLプロファイルの管理」

- SQLアクセス・アドバイザについては、「データ・アクセス・パスの最適化」を参照してください。

12 SQL文のチューニング

SQL文はOracle Databaseで取得するデータを指定します。たとえば、SQL文を使用して部門の従業員の名前を取得できます。Oracle DatabaseによってSQL文が実行される場合は、問合せオプティマイザ(オプティマイザとも呼ばれる)によって、結果を取得する最適で効率的な方法が最初に判断されます。

オプティマイザでは、全表スキャンと呼ばれる表のすべてのデータの読取りか、索引を使用するかどちらがより効率的なのかを判断します。すべての可能なアプローチのコストを比較し、最もコストの少ないアプローチが選択されます。SQL文を物理的に実行するアクセス方法は、実行計画と呼ばれ、オプティマイザにより生成されます。実行計画の決定は、SQL文の処理において重要な手順で、実行時間に非常に影響します。

問合せオプティマイザはSQL文のチューニングにも役立ちます。SQLチューニング・アドバイザおよびSQLアクセス・アドバイザを使用すると、SQL文またはSQL文のセットを調べるアドバイス・モードで問合せオプティマイザを実行でき、SQL文の効率を向上させる方法が判断されます。SQLチューニング・アドバイザおよびSQLアクセス・アドバイザは、次のような各種の推奨を実行できます。

- SQLプロファイルの作成

- SQL文の再構築

- 追加の索引またはマテリアライズド・ビューの作成

- オプティマイザ統計のリフレッシュ

また、Oracle Enterprise Manager Cloud Control (Cloud Control)により、簡単に多くのこれらの推奨事項を受け入れて実装できます。

SQLアクセス・アドバイザは、主に索引およびマテリアライズド・ビューの追加および削除などのスキーマ変更の推奨事項を作成する場合に使用します。SQLチューニング・アドバイザは、SQLプロファイルの作成、SQL文の再構築などの他のタイプの推奨事項の作成に使用します。新しい索引を作成するとパフォーマンスが大幅に向上できる場合、SQLチューニング・アドバイザは索引の作成を推奨する可能性があります。ただし、これらの推奨事項は、典型的なSQL文のセットを含んだSQLワークロードを使用してSQLアクセス・アドバイザを実行し、検証する必要があります。

この章ではSQLチューニング・アドバイザを使用するSQL文のチューニング方法を説明しています。次の項で構成されています。

- SQLチューニング・アドバイザを使用したSQL文のチューニング

- SQLチューニング・セットの管理

- SQLプロファイルの管理

- SQL計画ベースラインの管理

参照:

- 「高負荷のSQL文の識別」

- SQLアクセス・アドバイザについては、「データ・アクセス・パスの最適化」を参照してください。

SQLチューニング・アドバイザを使用したSQL文のチューニング

SQLチューニング・アドバイザを使用して、単一または複数のSQL文をチューニングできます。複数のSQL文をチューニングする場合、SQLチューニング・アドバイザはSQL文間の相互依存を認識しません。SQLチューニング・アドバイザを多数のSQL文に対して実行すると、チューニング・アドバイスを取得できます。

Oracle Databaseでは、SQLチューニング・レポートが自動的に生成されます。自動SQLチューニングは自動メンテナンス・タスクとしてシステム・メンテナンス・ウィンドウで実行され、高負荷のSQL文の実行計画を改善する方法を調べます。メンテナンス・ウィンドウは、自動化メンテナンス・タスクが実行される連続的な時間間隔です。

SQLチューニング・アドバイザを使用したSQLの手動チューニング

「高負荷SQL文の識別」 で説明されているとおり、自動データベース診断モニター(ADDM)は自動的に高負荷SQL文を識別します。ADDMがこのような文を識別した場合は、「推奨事項の詳細」ページの「SQLチューニング・アドバイザのスケジュール」または「SQLチューニング・アドバイザの実行」をクリックして、SQLチューニング・アドバイザを実行します。

SQLチューニング・アドバイザを使用したSQL文のチューニング手順:

1. 「データベース・ホーム」ページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

3. 「アドバイザ」セクションで、「SQLアドバイザ」をクリックします。「SQLアドバイザ」ページが表示されます。

4. 「SQLチューニング・アドバイザ」セクションで、「SQLチューニング・アドバイザ」をクリックします。
「SQLチューニング・アドバイザのスケジュール」ページが表示されます。

5. 「名前」フィールドに、SQLチューニング・タスクの名前を入力します。
指定がない場合、SQLチューニング・アドバイザはシステムで生成された名前を使用します。

6. 次のいずれかの操作を行います。

- 単一または複数の高負荷SQL文に対してSQLチューニング・タスクを実行する場合は、「概要」で、「トップ・アクティビティ」をクリックします。
「トップ・アクティビティ」ページが表示されます。

「上位SQL」の下で、チューニングするSQL文を選択します。

「アクション」リストで、「SQLチューニング・アドバイザのスケジュール」を選択して、「実行」をクリックします。

参照:

「トップ・アクティビティ」ページを使用した高負荷SQL文の識別の詳細は、「上位SQLに基づく高負荷SQL文の識別」を参照してください。

- 自動ワークロード・リポジトリ(AWR)から履歴のSQL文に対するSQLチューニング・タスクを実行するには、「概要」で、「履歴SQL(AWR)」をクリックします。
「履歴SQL(AWR)」ページが表示されます。

「履歴SQL(AWR)」で、グラフの下の範囲をクリックし、データベースで実行されたSQL文を表示する時間に対して24時間間隔を選択します。「選択した24時間間隔の詳細」で、チューニングするSQL文を選択し、「SQLチューニング・アドバイザのスケジュール」をクリックします。

- SQLチューニング・セットのSQLチューニング・タスクを実行するには、「概要」で、「SQLチューニング・セット」をクリックします。
「SQLチューニング・セット」ページが表示されます。

チューニングするSQL文を含んだSQLチューニング・セットを選択し、「SQLチューニング・アドバイザのスケジュール」をクリックします。

参照:

SQLチューニング・セットの作成の詳細は、「SQLチューニング・セットの作成」を参照してください。

「SQLチューニング・アドバイザのスケジュール」ページが再表示されます。

7. 選択した文のSQLテキストを表示するには、「SQL文」を開きます。

8. 「有効範囲」で、チューニングを実行する有効範囲を選択します。次のいずれかの操作を行います。

- 「制限」を選択します。
有効範囲を制限すると、約1秒で各SQL文がチューニングされますが、SQLプロファイルは推奨されません。

- 「包括」を選択し、「文ごとの時間制限」に各SQL文に対する時間制限(分単位)を設定し、また「合計時間の制限」に合計の時間制限(分単位)を設定します。設定した時間制限が少なすぎると推奨事項の質に影響を及ぼすことに注意してください。
包括モードでは、単一のSQL文のチューニングに数分かかります。各問合せをハード解析する必要があるため、このモードは時間集中型であり、またリソース集中型でもあります。システム全体に重大な影響のある高負荷SQL文に対してのみ包括的な有効範囲を使用します。

参照:

SQLプロファイルの詳細は、「SQLプロファイルの管理」を参照してください。

9. 「スケジュール」で、次のいずれかの操作を行います。

- SQLチューニング・タスクをすぐに実行するには、「即時」を選択して「発行」をクリックします。
「処理中: SQLチューニング・アドバイザのタスク」ページが表示されます。

- 「後で」を選択して未来の特定の時間をスケジュールし、「OK」をクリックします。

10. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「アドバイザ・セントラル」ページが表示されます。

「アドバイザ・タスク」の「結果」セクションに、アドバイザの実行結果がリストされます。

11. 表からSQLチューニング・アドバイザ・タイプ結果を選択して、「結果の表示」をクリックします。
「SQL IDの推奨」ページが表示されます。

SQLチューニング・セットを使用した場合、複数の推奨事項が表示されます。推奨事項を実装するかどうか判断しやすくするため、「ベネフィット(%)」列に推奨事項の実装の予測される利点が表示されます。「論理」列には、推奨事項が作成される理由の説明が表示されます。

12. 推奨事項を実装するには、次のいずれかの操作を行います。

- 自動ソリューションが推奨されている場合は、「実装」をクリックします。
確認ページが表示されます。「はい」をクリックして変更を確定します。

- 手動のソリューションが推奨されている場合は、推奨事項の実装を検討します。

自動SQLチューニング結果の表示

自動ワークロード・リポジトリ(AWR)内のデータを分析することにより、データベースでルーチン・メンテナンス・タスクが識別されます。自動化メンテナンス・タスクのインフラストラクチャ(AutoTaskと呼ばれる)により、これらのタスクがメンテナンス・ウィンドウで実行されるようにスケジュールされます。

メンテナンス・ウィンドウは、MAINTENANCE_WINDOW_GROUPというウィンドウ・グループに属するOracle Schedulerの時間間隔です。デフォルトでは、1つのウィンドウが週の各曜日にスケジュールされます。これらのメンテナンス・ウィンドウの属性(開始と終了の時間、頻度および曜日を含む)をカスタマイズできます。

デフォルトでは、AutoTaskによって、すべてのメンテナンス・ウィンドウで次の自動化メンテナンス・タスクが実行されます。

- オプティマイザ統計の収集

- セグメント・アドバイザ

- SQLチューニング・アドバイザ

監視された高負荷SQL文におけるSQLチューニング・アドバイザの自動実行の結果を表示できます。

自動SQLチューニング結果の表示手順:

1. 「データベース・ホーム」ページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」ページから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

3. 「アドバイザ」で、「SQLアドバイザ」をクリックします。
「SQLアドバイザ」ページが表示されます。

4. 「SQLチューニング・アドバイザ」で、「自動SQLチューニングの結果」をクリックします。
「自動SQLチューニング結果のサマリー」ページが表示されます。

ページの上部半分には、SQLチューニング・タスクのステータスおよびアクティビティのサマリーのセクションがあります。

5. 「時間間隔」リストで「すべて」を選択して、「実行」をクリックします。
「全体タスク統計」セクションと「プロファイル影響統計」セクションがリフレッシュされます。

6. オプションで、「タスク・ステータス」セクションで「構成」をクリックし、自動SQLチューニング・タスクの属性を変更します。
「自動化メンテナンス・タスク構成」ページが表示されます。

このページで、自動SQLチューニング・タスクを有効または無効にでき、実行日を指定できます。「適用」または「元に戻す」をクリックして前のページに戻ります。

7. 「タスク・アクティビティ・サマリー」セクションで、「時間間隔」に対して「すべて」が選択されたままにして、「レポートの表示」をクリックします。
「自動SQLチューニング結果の詳細」ページが表示されます。

このページには、SQLチューニングの候補としてデータベースにより自動的に選択されたSQL文がリストされます。

8. 「推奨」で、SQL文を選択して「推奨の表示」をクリックします。
「SQL IDの推奨」ページが表示されます。

このページには、SQLプロファイルおよび索引に対する推奨事項を含めることができます。

参照:

SQLチューニング・アドバイザにより作成された推奨事項の実装方法については、「SQLチューニング・アドバイザを使用したSQLの手動チューニング」を参照してください。

SQLチューニング・セットの管理

SQLチューニング・セットは、1つ以上のSQL文、実行統計および実行コンテキストを含むデータベース・オブジェクトです。SQLチューニング・アドバイザ、SQLアクセス・アドバイザ、SQLパフォーマンス・アナライザなどのアドバイザに対する入力として使用できます。AWR、カーソル・キャッシュ、指定した高負荷SQL文など異なるSQLソースからSQLチューニング・セットへSQL文をロードできます。

SQLチューニング・セットの内容は次のとおりです。

- SQL文のセット

- 関連する実行コンテキストには、次のようなものがあります。

- ユーザー・スキーマ

- アプリケーション・モジュール名とアクション

- バインド値のリスト

- カーソル・コンパイル環境

- 関連する基本実行統計には、次のようなものがあります。

- 経過時間およびCPU時間

- バッファ読取り

- ディスク読取り

- 処理された行

- カーソル・フェッチ

- 実行数および完了した実行数

- オプティマイザ・コスト

- コマンド・タイプ

- 各SQL文に関連する実行計画および行ソースの統計(オプション)

アプリケーション・モジュール名とアクションまたは実行統計のいずれかを使用してSQL文にフィルタを適用できます。また、SQL文は実行統計の組合せに基づいてランク付けできます。

SQLチューニング・セットは転送可能で、SQLワークロードはリモート・パフォーマンス診断およびチューニングのためデータベース間で転送できます。高負荷SQL文が本番システムで識別された場合、本番システムでの直接の調査およびチューニング・アクティビティの実行はお薦めしません。この機能によって、高負荷SQL文を、安全に分析およびチューニングが可能なテスト・システムに転送できます。SQLチューニング・セットの転送の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください。

Cloud Controlを使用して、次の方法でSQLチューニング・セットを管理できます。

- SQLチューニング・セットの作成

- SQLチューニング・セットの削除

- SQLチューニング・セットの転送

SQLチューニング・セットの作成

この項では、Cloud Controlを使用してSQLチューニング・セットを作成する方法について説明します。

SQLチューニング・セットの作成手順:

1. SQLチューニング・セットに対する初期オプションを指定します(「SQLチューニング・セットの作成: オプション」を参照)。

2. SQLチューニング・セットにSQL文を収集してロードするために使用するロード・メソッドを選択します(「SQLチューニング・セットの作成: ロード・メソッド」を参照)。

3. SQLチューニング・セットに対するフィルタ・オプションを指定します(「SQLチューニング・セットの作成: フィルタ・オプション」を参照)。

4. SQL文を収集してSQLチューニング・セットにロードするために、ジョブをスケジュールおよび発行します(「SQLチューニング・セットの作成: スケジュール」を参照)。

SQLチューニング・セットの作成: オプション

SQLチューニング・セットを作成する最初の手順として、名前、所有者、説明などのセットのオプションを指定します。

SQLチューニング・セット作成のオプションの指定手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから「SQL」を選択し、さらに「SQLチューニング・セット」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「SQLチューニング・セット」ページが表示されます。

3. 「作成」をクリックします。
「SQLチューニング・セットの作成: オプション」ページが表示されます。

4. 次の詳細を入力します。

- 「SQLチューニング・セット名」に、SQLチューニング・セットの名前を入力します。

- 「所有者」に、SQLチューニング・セットの所有者を入力します。

- 「説明」に、SQLチューニング・セットの説明を入力します。

5. 空のSQLチューニング・セットを作成して後でSQL文を追加する場合は、オプションで、次の手順を完了します。

a. 「空のSQLチューニング・セットの作成」を選択します。

b. 「次へ」をクリックします。
「SQLチューニング・セットの作成: 確認」ページが表示されます。

c. 選択したSQLチューニング・セット・オプションを確認して、「発行」をクリックします。
空のSQLチューニング・セットが作成されます。後でSQL文を追加できます。

6. 「次へ」をクリックします。
「SQLチューニング・セットの作成: ロード・メソッド」ページが表示されます。

7. 次の手順に進みます(「SQLチューニング・セットの作成: ロード・メソッド」を参照)。

SQLチューニング・セットの作成: ロード・メソッド

SQLチューニング・セットに対するオプションを指定した後で、次の項で説明されているとおり、SQLチューニング・セットにSQL文を収集してロードするために使用するロード・メソッドを選択します。

- カーソル・キャッシュからの増分的なアクティブなSQL文のロード

- カーソル・キャッシュからのSQL文のロード

- AWRスナップショットからのSQL文のロード

- AWRベースラインからのSQL文のロード

- ユーザー定義のワークロードからのSQL文のロード

カーソル・キャッシュからの増分的なアクティブなSQL文のロード

カーソル・キャッシュからSQLチューニング・セットに指定した期間中にアクティブなSQL文を増分的にロードできます。この方法により、SQLキャッシュに格納されている現在および最近のSQL文を収集できるだけでなく、将来の指定した期間中に実行されるSQL文も収集できるようになります。

アクティブなSQL文をカーソル・キャッシュから増分的にロードする手順:

1. 「SQLチューニング・セットの作成: ロード・メソッド」ページにアクセスします(「SQLチューニング・セットの作成: オプション」を参照)。

2. 「一定期間、カーソル・キャッシュからアクティブなSQL文を取得して追加」を選択します。

3. 「期間」フィールドで、アクティブなSQL文を取得する期間を指定します。

4. 「頻度」フィールドで、指定した期間中にアクティブなSQL文を取得する頻度を指定します。

5. 「次へ」をクリックします。
「SQLチューニング・セットの作成: フィルタ・オプション」ページが表示されます。

6. 次の手順に進みます(「SQLチューニング・セットの作成: フィルタ・オプション」を参照)。

カーソル・キャッシュからのSQL文のロード

カーソル・キャッシュからSQLチューニング・セットにSQL文をロードできます。ただし、SQLキャッシュに格納されているのは現在および最近のSQL文のみであるため、これらのSQL文を1回のみ収集すると、SQLチューニング・セットがデータベースのワークロード全体を表さない場合があります。

カーソル・キャッシュからのSQL文のロード手順:

1. 「SQLチューニング・セットの作成: ロード・メソッド」ページにアクセスします(「SQLチューニング・セットの作成: オプション」を参照)。

2. 「SQL文を1度だけロード」を選択します。

3. 「データソース」リストから「カーソル・キャッシュ」を選択します。

4. 「次へ」をクリックします。
「SQLチューニング・セットの作成: フィルタ・オプション」ページが表示されます。

5. 次の手順に進みます(「SQLチューニング・セットの作成: フィルタ・オプション」を参照)。

AWRスナップショットからのSQL文のロード

AWRスナップショットで取得されたSQL文をロードできます。これは、後で比較またはチューニングに使用するために、目的の期間の指定したスナップショットに対するSQL文を収集するときに役立ちます。

AWRスナップショットからのSQL文のロード手順:

1. 「SQLチューニング・セットの作成: ロード・メソッド」ページにアクセスします(「SQLチューニング・セットの作成: オプション」を参照)。

2. 「SQL文を1度だけロード」を選択します。

3. 「データソース」リストで、「AWRスナップショット」を選択します。

4. 「AWRスナップショット」フィールドで、含めるスナップショットを選択します。次のいずれかの操作を行います。

- 「すべて」か、「過去24時間」などの時間間隔を選択して、手順6に進みます。
指定した時間内にAWRに取得および格納されたスナップショットのみが含まれます。

- 「カスタマイズ」を選択し、手順5に進みます。
ユーザーが指定したカスタマイズ済の期間内にAWRに取得および格納されたスナップショットのみ含まれます。

5. スナップショットのカスタマイズ済の期間を選択する手順:

a. 「カスタマイズ」を選択して、「実行」をクリックします。
期間の選択ウィンドウが開きます。

b. 開始スナップショットに「期間開始時間」を選択し、目的の開始時間に対応する「アクティブ・セッション」グラフの下のスナップショット・アイコンをクリックします。

c. 最後のスナップショットに「期間終了時間」を選択し、目的の終了時間に対応する「アクティブ・セッション」グラフの下のスナップショット・アイコンをクリックします。

d. 「選択」をクリックします。

この例では、開始時間として2011年12月27日午後9時の時点のスナップショットが選択され、終了時間として2011年12月27日午前11時の時点のスナップショットが選択されています。

6. 「次へ」をクリックします。

「SQLチューニング・セットの作成: フィルタ・オプション」ページが表示されます。

7. 次の手順に進みます(「SQLチューニング・セットの作成: フィルタ・オプション」を参照)。

AWRベースラインからのSQL文のロード

AWRベースラインに取得されたSQL文をロードできます。これは、後で比較またはチューニングに使用できる設定済のパフォーマンス・レベルの期間を表すSQL文を収集するときに役立ちます。

AWRベースラインからのSQL文のロード手順:

1. 「SQLチューニング・セットの作成: ロード・メソッド」ページにアクセスします(「SQLチューニング・セットの作成: オプション」を参照)。

2. 「SQL文を1度だけロード」を選択します。

3. 「データソース」フィールドで「AWRベースライン」を選択します。

4. 「AWRベースライン」フィールドで、含めるベースラインを選択します。

5. 「次へ」をクリックします。
「SQLチューニング・セットの作成: フィルタ・オプション」ページが表示されます。

6. 次の手順に進みます(「SQLチューニング・セットの作成: フィルタ・オプション」を参照)。

ユーザー定義のワークロードからのSQL文のロード

SQL文は、表またはビューからインポートすることでロードできます。これは、分析するワークロードが現在データベースで実行中ではない場合、または既存のAWRスナップショットまたはAWRベースラインに取得されている場合に役立ちます。

ユーザーが定義する表の名前または表の数に関して、どのスキーマにワークロードが存在するかに関する制約はありません。ただし、表形式はUSER_WORKLOAD表の形式に一致する必要があります。

ユーザー定義ワークロードからのSQL文のロード手順:

1. 「SQLチューニング・セットの作成: ロード・メソッド」ページにアクセスします(「SQLチューニング・セットの作成: オプション」を参照)。

2. 「SQL文を1度だけロード」を選択します。

3. 「データソース」フィールドで「ユーザー定義ワークロード」を選択します。

4. 「ユーザー定義ワークロード」フィールドで、含める表またはビューを選択します。

5. 「次へ」をクリックします。
「SQLチューニング・セットの作成: フィルタ・オプション」ページが表示されます。

6. 次の手順に進みます(「SQLチューニング・セットの作成: フィルタ・オプション」を参照)。

SQLチューニング・セットの作成: フィルタ・オプション

ロード・メソッドを選択したら、フィルタを適用しSQLチューニング・セットで検出されたSQL文の範囲を削減できます。フィルタの使用はオプションですが、次の利点があります。

- フィルタを使用することにより、ワークロード・ソースとしてのSQLチューニング・セットを使用する各種アドバイザ(SQLチューニング・アドバイザ、SQLアクセス・アドバイザ、SQLパフォーマンス・アナライザなど)がワークロードからのSQL文の特定のサブセットに基づいて推奨事項を生成するため、よりよい推奨事項を生成できる可能性があります。

- 各種アドバイザに対してワークロード・ソースが使用されている場合、ワークロードから不要なSQL文を削除するフィルタを使用して、処理時間を大幅に削減できます。

SQLチューニング・セットのフィルタ・オプションの指定手順:

1. SQLチューニング・セットを作成し、初期オプションを指定します(「SQLチューニング・セットの作成: オプション」を参照)。

2. ロード・メソッドを選択します(「SQLチューニング・セットの作成: ロード・メソッド」を参照)。

3. 「SQLチューニング・セットの作成: フィルタ・オプション」ページで、検索に使用するフィルタ条件の値を「値」列に指定し、「演算子」列に演算子および条件を指定します。
指定したフィルタ条件すべてに一致するSQL文のみSQLチューニング・セットに追加されます。指定していないフィルタ値は検索にフィルタ条件として含まれません。

デフォルトでは、次のフィルタ条件が表示されます。

- スキーマ名の解析

- SQLテキスト

- SQL ID

- 経過時間

4. フィルタ条件を追加するには、「フィルタ条件」で追加するフィルタ条件を選択し、「フィルタまたは列の追加」をクリックします。
目的のフィルタ条件が追加されたら、「値」列で値を指定し、「演算子」列で演算子または条件を指定します。

5. 使用していないフィルタ条件を削除するには、削除するフィルタ条件に対応する「削除」列にあるアイコンをクリックします。

6. 「次へ」をクリックします。
「SQLチューニング・セットの作成: スケジュール」ページが表示されます。

7. 次の手順に進みます(「SQLチューニング・セットの作成: スケジュール」を参照)。

SQLチューニング・セットの作成: スケジュール

SQLチューニング・セットに対してフィルタ・オプションを指定したら、ジョブをスケジュールおよび発行してSQL文を収集し、SQLチューニング・セットにロードできます。

ジョブをスケジュールおよび発行してSQLチューニング・セットを作成する手順:

1. SQLチューニング・セットを作成し、初期オプションを指定します(「SQLチューニング・セットの作成: オプション」を参照)。

2. ロード・メソッドを選択します(「SQLチューニング・セットの作成: ロード・メソッド」を参照)。

3. フィルタ・オプションを指定します(「SQLチューニングセットの作成: フィルタ・オプション」を参照)。

4. システムで生成されたジョブ名を使用しない場合は、「SQLチューニング・セットの作成: スケジュール」ページの「ジョブ・パラメータ」で、「ジョブ名」フィールドに名前を入力します。

5. 「説明」フィールドに、ジョブの説明を入力します。

6. 「スケジュール」で、次のいずれかの操作を行います。

- 即時: 発行直後すぐにジョブを実行する場合

- 後で:「タイムゾーン」、「日付」および「時間」フィールドで指定した時間を使用してジョブを実行する場合

7. 「次へ」をクリックします。
「SQLチューニング・セットの作成: 確認」ページが表示されます。

8. 選択したSQLチューニング・セット・オプションを確認します。
ジョブが使用するSQL文を表示するには、「SQL表示」を拡張します。

9. 「発行」をクリックします。
「SQLチューニング・セット」ページが表示されます。

ジョブがすぐに実行するようにスケジュールされている場合、メッセージが表示され、ジョブおよびSQLチューニング・セットが正常に作成されたことが通知されます。ジョブを後で実行するようスケジュールされた場合、メッセージが表示され、ジョブが正常に作成されたことが通知されます。

10. 操作のステータスなどジョブの詳細を表示するには、「ジョブ詳細を表示」をクリックします。
「ジョブの表示」ページが表示され、ジョブの詳細が表示されます。

SQLチューニング・セットの削除

この項では、SQLチューニング・セットを削除する方法について説明します。記憶域を保持するには、データベースに格納されている未使用のSQLチューニング・セットを定期的に削除します。

SQLチューニング・セットの削除手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから「SQL」を選択し、さらに「SQLチューニング・セット」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「SQLチューニング・セット」ページが表示されます。

3. 削除するSQLチューニング・セットを選択し、「削除」をクリックします。
「確認」ページが表示され、選択したSQLチューニング・セットを削除するかどうかの確認を求められます。

4. 「はい」をクリックします。
「SQLチューニング・セット」ページが表示されます。

SQLチューニング・セットが正常に削除されたことを示す確認メッセージが表示されます。

SQLチューニング・セットの転送

最初にSQLチューニング・セットを特定のデータベースからエクスポートした後で他のデータベースにインポートすることで、SQLチューニング・セットを特定のシステムから他のシステムに転送できます。

この項の内容は次のとおりです。

- SQLチューニング・セットのエクスポート

- SQLチューニング・セットのインポート

SQLチューニング・セットのエクスポート

この項では、別のシステムに転送できるようにSQLチューニング・セットをエクスポートする方法について説明します。

SQLチューニング・セットのエクスポート手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから「SQL」を選択し、さらに「SQLチューニング・セット」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「SQLチューニング・セット」ページが表示されます。

3. エクスポートするSQLチューニング・セットを選択し、「ファイルにエクスポート」をクリックします。
「SQLチューニング・セットのエクスポート」ページが表示されます。

4. 「ディレクトリ・オブジェクト」フィールドで、エクスポート・ファイルを作成するディレクトリを選択します。
たとえば、Oracle Data Pumpディレクトリを使用して、DATA_PUMP_DIRを選択します。「ディレクトリ名」フィールドで自動的にリフレッシュされ、選択したディレクトリが表示されます。

5. 「エクスポート・ファイル」フィールドに、ファイルの名前を入力します。
または、データベースによって生成される名前を使用することもできます。

6. 「ログ・ファイル」フィールドにエクスポート操作のログ・ファイルの名前を入力します。
または、データベースによって生成される名前を使用することもできます。

7. 表領域を選択して、エクスポート操作のデータを一時的に格納します。
デフォルトでは、SYSAUXが使用されます。

8. 「ジョブ・パラメータ」の下の「ジョブ名」フィールドにジョブの名前を入力します。
または、データベースによって生成される名前を使用することもできます。

オプションで、「説明」フィールドに、チューニング・セットの説明を入力します。

9. 「スケジュール」で、次のいずれかの操作を行います。

- 「即時」を選択し、発行直後にジョブを実行します。

- 「後で」を選択し、「タイムゾーン」、「日付」および「時間」フィールドで値を選択するか入力して、指定した時間にジョブを実行します。

10. 「OK」をクリックします。
「SQLチューニング・セット」ページが表示されます。

ジョブが正常に作成されたことを示す確認メッセージが表示されます。

11. 任意のメカニズム(Oracle Data Pumpやデータベース・リンクなど)を使用して、別のシステムにエクスポート・ファイルを転送します。

SQLチューニング・セットのインポート

SQLチューニング・セットをインポートする前に、SQLチューニング・セットを別のシステムからエクスポートし、それを現在のシステムに転送する必要があります。

参照:

詳細は、「SQLチューニング・セットのエクスポート」を参照してください。

SQLチューニング・セットのインポート手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから「SQL」を選択し、さらに「SQLチューニング・セット」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「SQLチューニング・セット」ページが表示されます。

3. 「ファイルからインポート」をクリックします。
「SQLチューニング・セットのインポート」ページが表示されます。

4. 「ディレクトリ・オブジェクト」で、インポートするファイルを含むディレクトリを選択します。
ディレクトリには、現在のシステムに転送したエクスポート・ファイルが含まれます。たとえば、ファイルがデータ・ポンプ・ディレクトリに存在する場合、DATA_PUMP_DIRを選択します。「ディレクトリ名」フィールドで自動的にリフレッシュされ、選択したディレクトリが表示されます。

5. 「インポート・ファイル」フィールドにインポートするダンプ・ファイルの名前を入力します。

6. 「ログ・ファイル」フィールドにインポート操作のログ・ファイルの名前を入力します。

7. 既存のSQLチューニング・セットをインポート中のSQLチューニング・セットと置き換えるには、「既存のSQLチューニング・セットと置き換えてください(存在する場合)。」を選択します。

8. 表領域を選択して、インポート操作のデータを一時的に格納します。
デフォルトでは、SYSAUXが使用されます。

9. 「ジョブ・パラメータ」の下の「ジョブ名」フィールドにジョブの名前を入力します。
または、システムによって生成される名前を使用することもできます。

オプションで、「説明」フィールドに、チューニング・セットの説明を入力します。

10. 「スケジュール」で、次のいずれかの操作を行います。

- 「即時」を選択し、発行直後にジョブを実行します。

- 「後で」を選択し、「タイムゾーン」、「日付」および「時間」フィールドで値を選択するか入力して、指定した時間にジョブを実行します。

11. 「OK」をクリックします。
「SQLチューニング・セット」ページが表示されます。

ジョブが正常に作成されたことを示す確認メッセージが表示されます。ジョブがすぐに実行するようにスケジュールされている場合、インポートしたSQLチューニング・セットがこのページに表示されます。SQLチューニング・セットが表示されるようリフレッシュする必要がある場合があります。

SQLプロファイルの管理

SQLプロファイルは、SQL文の自動チューニング中に構築された補助情報のセットです。SQLプロファイルとSQL文の関係は、統計と表の関係と同様です。

制限された有効範囲でSQLチューニング・アドバイザのタスクを実行する場合には、オプティマイザがカーディナリティや選択性、コストを予測しますが、これには大幅な誤差があることがあり、実行計画が不十分になります。この問題に対処するには、包括的な有効範囲でSQLチューニング・アドバイザのタスクを実行し、サンプリングとSQLプロファイルの部分実行を利用して追加の情報を収集することを検討してください。データベースはプロファイルを使用してオプティマイザの予測を検証し、必要に応じて調整します。

SQLプロファイル時に、オプティマイザはSQL文に関する実行履歴を使用し、オプティマイザ・パラメータに適切な設定を行います。SQLプロファイルが完了すると、オプティマイザはSQLプロファイルに格納されている情報と通常のデータベース統計を使用し、実行計画を生成します。追加情報によって、対応するSQL文に対して適切にチューニングされた計画を生成できるようになります。

全範囲でSQLチューニング・アドバイザのタスクを実行した後に、SQLプロファイルが推奨される場合があります。推奨事項を受け入れると、データベースによってSQLプロファイルが作成され、SQL文で使用できるようになります。

場合によってはSQLプロファイルを無効にすることがあります。たとえば、SQLプロファイルが実際に効果を発揮しているかどうかを判別する際に、SQLプロファイルを使用せずにSQL文のパフォーマンスをテストする場合があります。SQLプロファイルを無効にした後でSQL文のパフォーマンスが低下した場合、パフォーマンスが低下しないように再度有効にする必要があります。SQLプロファイルを無効にした後でもSQL文のパフォーマンスが最適である場合は、データベースからSQLプロファイルを削除できます。

SQLプロファイルの有効化、無効化または削除手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「トップ・アクティビティ」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「トップ・アクティビティ」ページが表示されます。

3. 「上位SQL」で、SQLプロファイルを使用中のSQL文の「SQL ID」リンクをクリックします。
「SQLの詳細」ページが表示されます。

4. 「計画管理」タブをクリックします。
SQLプロファイルのリストが「SQLプロファイル」および「アウトライン」の下に表示されます。

5. 管理するSQLプロファイルを選択します。次のいずれかの操作を行います。

- 無効になっているSQLプロファイルを有効化するには、「有効化/無効化」をクリックします。

- 有効になっているSQLプロファイルを無効化するには、「有効化/無効化」をクリックします。

- SQLプロファイルを削除する場合は、「削除」をクリックします。

確認ページが表示されます。

6. 「はい」をクリックして続行するか、「いいえ」をクリックしてアクションを取り消します。

参照:

APIを使用してSQLプロファイルを管理する方法については、『Oracle Database SQLチューニング・ガイド』を参照してください。

SQL計画ベースラインの管理

SQL計画管理は、データベースで既知の計画または確認済の計画のみが使用されるようにオプティマイザで実行計画を自動的に管理する予防的なメカニズムです。このコンテキストでは、計画には、オプティマイザが実行計画を再生成する必要のあるすべての計画に関連する情報が含まれています。

SQL計画管理は、SQL計画ベースラインを使用します。SQL計画ベースラインは、SQL文に対してオプティマイザを使用できる一連の確定済の計画です。通常のユースケースの場合、データベースが計画の正常な実行を検証した後のみ、計画がSQL計画ベースラインに確定されます。

SQL計画管理は、計画の変更によって発生するSQLパフォーマンスの低下を回避します。新しいオプティマイザ統計、初期化パラメータの変更、データベースのアップグレードなどのイベントによって、実行計画に変更が発生する場合があります。これらの変更によって、SQLのパフォーマンスが低下する可能性があり、このようなパフォーマンスの低下を手動で修正することは困難であり、時間もかかります。SQL計画ベースラインによって、データベースで発生する変更に関係なく、SQL文のパフォーマンスが保持されます。SQL計画管理は、パフォーマンスを向上する計画の変更のみを検証および確定して、そのような変更に適応します。

SQL計画の自動的な取得または計画の手動のロードにより、SQL計画管理で計画を認識します。計画の展開は、オプティマイザが新しい計画を検証して既存のSQL計画ベースラインに追加するプロセスです。この項の内容は次のとおりです。

- SQL計画ベースラインの自動的な取得

- SQL計画ベースラインの手動のロード

- SQL計画の展開

参照:

- SQL計画管理およびAPIを使用したその制御の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください。

SQL計画ベースラインの自動的な取得

Oracle DatabaseによるSQL計画ベースラインの自動的な取得を指定できます。

自動的にSQL計画ベースラインを取得するには:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」→「SQL」→「SQL計画管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「SQL計画管理」ページの「SQLプロファイル」サブページが表示されます。

3. 「SQL計画ベースライン」をクリックします。
「SQL計画ベースライン」サブページが表示されます。

4. 「設定」で、「SQL計画ベースラインの取得」の隣にあるリンクをクリックします。
「初期化パラメータ」ページが表示されます。

5. 表の「値」列で、「TRUE」を選択して「OK」をクリックします。
「SQL計画ベースライン」サブページに戻ります。 「SQL計画ベースラインの取得」は「TRUE」に設定されています。

ベースラインを自動的に取得するよう構成したため、データベースによって、1回以上実行されたすべてのSQL文にSQL計画ベースラインが作成され、1番目承認済計画としてSQLベースラインに文の現在の実行計画が追加されます。

SQL計画ベースラインの手動のロード

既存の計画をSQL計画ベースラインに手動でロードできます。SQLチューニング・セット(STS)から計画をロードしたり、カーソル・キャッシュから選択した計画をロードできます。

SQL実行計画を手動でロードするには、SQLベースラインの取得の設定を「FALSE」にする必要があります。

手動でSQL実行計画をロードするには:

1. データベース・ホームページにアクセスします。

2. 「パフォーマンス」→「SQL」→「SQL計画管理」を選択します。
「SQL計画管理」ページの「SQLプロファイル」サブページが表示されます。

3. 「SQL計画ベースライン」をクリックします。
「SQL計画ベースライン」サブページが表示されます。

4. 「ロード」をクリックします。
「SQL計画管理」ページが表示されます。

5. ロードするSQL計画ベースラインを選択します。次の手順を実行します。

a. 「SQL計画ベースラインのロード」で、「SQLチューニング・セット(STS)からの計画のロード」を選択します。
この例では、「SQLチューニング・セットの作成」で作成したSQLチューニング・セットから計画をロードします。

b. 「ジョブ名」で、ジョブの名前を入力します。たとえば、SPM_LOAD_TESTと入力します。

c. 「スケジュール」で「即時」を選択します。

d. 「OK」をクリックします。

SQL計画管理ページが再表示されます。

表には、SQL計画ベースラインとして格納されるSQL計画のリストが表示されます。

6. オプションで、データベースが別のSQL計画ベースラインを使用しないようにベースラインの実行計画を修正します。次の手順を実行します。

a. 未修正のSQL計画ベースラインを選択します。

b. ベースライン表の前にあるリストから「修正済 - はい」を選択します。

c. 「実行」をクリックします。

表がリフレッシュされ、「固定」列の値がYESのSQL実行計画が表示されます。

参照:

- SQL計画ベースライン・サブページの他のオプションの詳細は、Cloud Control状況依存オンライン・ヘルプを参照してください。

SQL計画の展開

通常、SQL文のSQL計画ベースラインは、単一の確定済の計画から開始します。ただし、様々な条件の異なる計画とともに実行されると、SQL文の実行が良くなる場合があります。たとえば、値が異なる選択性になるバインド変数を使用したSQL文は、いくつかの優れた計画を持つ場合があります。マテリアライズド・ビューまたは索引の作成あるいは表の再パーティション化により、現在の計画が他の計画よりコストが高くなる場合があります。

新しい計画がSQL計画ベースラインに一度も追加されなかった場合、一部のSQL文のパフォーマンスが低下する可能性があります。したがって、新しく検出された計画を展開し、SQL計画ベースラインを追加する必要があるかどうかを確認する必要があります。計画の展開は、SQL計画ベースラインに含める前に新しい計画のパフォーマンスを検証して、パフォーマンスの低下を防止します。

計画の展開は、次の個別のステップで構成されます。

1. 確定されていない計画がSQL計画ベースラインの確定済の計画と少なくとも同じパフォーマンスであることを確認します。

2. 以前の確定済の計画と同じパフォーマンスであることが証明された場合、計画履歴の確定されていない計画を確定済の計画として計画ベースラインに追加します。

手動で計画を展開するか、SQL計画管理(SPM)展開アドバイザを使用できます。

デフォルトでは、SPM展開アドバイザは、スケジュールされているメンテナンス・ウィンドウで毎日実行されます。すべての確定されていない計画をランク付けし、ウィンドウの実行中にできるだけ多くの計画のテスト実行を行います。展開アドバイザは、SQL計画ベースラインの最もコストの低い承認済計画を選択し、確定されていない各計画と比較します。計画が既存の確定済の計画よりもパフォーマンスが高い場合、データベースが自動的に確定します。

参照:

- SPM展開アドバイザの構成およびAPIを使用した手動の実行の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください。

計画を手動で展開するには、次のステップを実行します。

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」→「SQL」→「SQL計画管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「SQL計画管理」ページの「SQLプロファイル」サブページが表示されます。

3. 「SQL計画ベースライン」をクリックします。
「SQL計画ベースライン」サブページが表示されます。

4. 表で、「確定済」列に「いいえ」がある1つ以上のSQL計画を選択し、「展開」をクリックします。
SQL計画ベースラインの展開ページが表示されます。

5. 実行するオプションを指定します。

- 「パフォーマンスの検証」で、次のいずれかを選択します。

- データベースで計画が現在のベースライン計画と同じまたはそれ以上のパフォーマンスであるかを検証するには、「はい」を選択します。

- 実行方法に関係なく計画を自動的に展開するには、「いいえ」を選択します。

- 「時間制限」で、次のいずれかを選択します。

- データベースで確定されていない計画のパフォーマンスを検証する期間を決定する「自動」。

- 実行時間に関係なく完了まで検証を実行する「無制限」。

- 検証プロセスの時間制限を指定する「指定」。関連するフィールドに分単位の値を入力します。

- 「アクション」で、次のいずれかを選択します。

- データベースで計画を確定してレポートを作成する「レポートして承認」。

- データベースでレポートを作成して計画を確定しない「レポートのみ」。

オプションを実装するには、「OK」をクリックします。

レポートが表示されます。レポートを表示した後、「戻る」をクリックしてSQL計画ベースライン・サブページに戻ります。

13 データ・アクセス・パスの最適化

データ集中型問合せで最適なパフォーマンスを実現するには、SQL文に対するマテリアライズド・ビューおよび索引が重要です。ただし、これらのオブジェクトの実装にはコストがかかります。これらのオブジェクトの作成およびメンテナンスには時間がかかります。また、多くの領域が必要になります。SQLアクセス・アドバイザを使用すると、特定のワークロードに対してマテリアライズド・ビューとビュー・ログ、索引、SQLプロファイルおよびパーティションが推奨され、問合せアクセス・パスを最適化できます。

マテリアライズド・ビューにより問合せの結果を別々のスキーマ・オブジェクトに格納することで表データにアクセスできます。記憶領域を占有せず、データが含まれない通常のビューとは異なり、マテリアライズド・ビューには1つ以上の実表またはビューの問合せの行が含まれます。マテリアライズド・ビュー・ログは、マスター表で定義されたマテリアライズド・ビューを増分的にリフレッシュするため、マスター表のデータに変更を記録するスキーマ・オブジェクトです。SQLアクセス・アドバイザにより、マテリアライズド・ビューを迅速にリフレッシュし、クエリー・リライト機能を使用するためには、マテリアライズド・ビューをどのように最適化すればよいかが推奨されます。

SQLアクセス・アドバイザの推奨事項にはビットマップ索引、ファンクション・ベース索引およびBツリー索引も含まれます。ビットマップ索引では、他の索引の方法と比較すると、多くのタイプの非定型問合せでレスポンス時間を削減し、記憶域要件が減少します。ファンクション索引では、1つ以上の列を含むファンクションや式の値が計算され、索引に格納されます。Bツリー索引は、通常、一意キーまたはほぼ一意なキーの索引付けに使用されます。

SQLアクセス・アドバイザの使用には、次のタスクが含まれます。

- SQLアクセス・アドバイザの実行

- SQLアクセス・アドバイザ推奨事項の確認

- SQLアクセス・アドバイザ推奨事項の実装

参照:

- 「高負荷のSQL文の識別」

- SQLチューニング・アドバイザについては、「SQL文のチューニング」を参照してください。

- マテリアライズド・ビューについては、『Oracle Database概要』を参照してください。

- 索引の詳細は、『Oracle Database概要』を参照してください。

SQLアクセス・アドバイザの実行

この項ではSQLワークロードの推奨事項を作成するSQLアクセス・アドバイザを実行する方法について説明します。

SQLアクセス・アドバイザの実行手順:

1. 初期オプションを選択します(「初期オプションの選択」を参照)。

2. 分析に使用するワークロード・ソースを選択します(「ワークロード・ソースの選択」を参照)。

3. フィルタ・オプションを定義します(「フィルタ・オプションの適用」を参照)。

4. 推奨事項のタイプを選択します(「推奨オプションの指定」を参照)。

5. SQLアクセス・アドバイザのタスクのスケジュールを調整します(「タスクおよびスケジュール・オプションの指定」を参照)。

初期オプションの選択

SQLアクセス・アドバイザを実行するには、最初に「SQLアクセス・アドバイザ: 初期オプション」ページの初期オプションを選択します。

初期オプションの選択手順:

1. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

2. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

3. 「SQLアドバイザ」をクリックします。
「SQLアドバイザ」ページが表示されます。

4. 「SQLアクセス・アドバイザ」をクリックします。
「SQLアクセス・アドバイザ: 初期オプション」ページが表示されます。

5. 次のいずれかの操作を行います。

- 「アクセス構造(索引、マテリアライズド・ビュー、パーティショニングなど)のみの使用の検証」を選択して既存の構造を検証します。

- 「新規アクセス構造の推奨」を選択して、Oracle Enterprise Manager Cloud Control (Cloud Control)デフォルト・テンプレートで定義された推奨オプションを使用します。
このオプションを選択する場合は、オプションで次の手順を完了します。

- 「保存済のタスクまたはテンプレートからの継承オプション」を選択して既存のSQLアクセス・アドバイザ・タスクまたはその他のテンプレートで定義されたオプションを使用します。

- 「タスクとテンプレート」で、使用するタスクまたはテンプレートを選択します。

この例では、「新規アクセス構造の推奨」が選択されています。

6. 「続行」をクリックします。
「SQLアクセス・アドバイザ: ワークロード・ソース」ページが表示されます。

7. 次の手順に進みます(「ワークロード・ソースの選択」を参照)。

ワークロード・ソースの選択

初期オプションがSQLアクセス・アドバイザで指定された後、次の項の説明に従って、分析に使用するワークロード・ソースを選択します。

- キャッシュからのSQL文の使用

- 既存のSQLチューニング・セットの使用

- 仮説ワークロードの使用

キャッシュからのSQL文の使用

ワークロード・ソースとしてキャッシュのSQL文を使用できます。ただし、SQLキャッシュ内には現在および最近のSQL文しか格納されていないため、このワークロード・ソースはデータベースのワークロード全体とは異なる場合があります。

キャッシュからのSQL文をワークロード・ソースとして使用する手順:

1. 初期オプションを選択します(「初期オプションの選択」を参照)。

2. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページで、「現在と最近のSQLアクティビティ」を選択します。

3. 次の手順に進みます(「フィルタ・オプションの適用」を参照)。

既存のSQLチューニング・セットの使用

SQLチューニング・セットをワークロード・ソースとして使用できます。SQLアクセス・アドバイザおよびSQLチューニング・アドバイザのワークロード・ソースとしてSQLチューニング・セットを繰り返し使用できるので、このオプションは便利です。

SQLチューニング・セットをワークロード・ソースとして使用する手順:

1. 初期オプションを選択します(「初期オプションの選択」を参照)。

2. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページで、「既存のSQLチューニング・セットを使用します。」を選択します。

3. 「SQLチューニング・セット」検索アイコンをクリックして、既存のSQLチューニング・セットを使用します。
「検索と選択: SQLチューニング・セット」ダイアログ・ボックスが表示されます。

4. 「スキーマ」フィールドで、使用するSQLチューニング・セットを含むスキーマ名を入力し、「実行」をクリックします。
選択したスキーマに含まれるSQLチューニング・セットのリストが表示されます。

5. ワークロード・ソースに使用されるSQLチューニング・セットを選択して「選択」をクリックします。
「検索と選択: SQLチューニング・セット」ダイアログ・ボックスが閉じ、選択したSQLチューニング・セットが「SQLチューニング・セット」フィールドに表示されます。

6. 次の手順に進みます(「フィルタ・オプションの適用」を参照)。

参照:

- 「SQLチューニング・セットの管理」

仮説ワークロードの使用

ディメンション表では、スター・スキーマまたはスノーフレーク・スキーマに、論理ディメンションのすべての値または一部の値を格納します。主キーまたは外部キー制約を含むディメンション表から仮説ワークロードを作成できます。これは、分析するワークロードが存在しない場合に役立ちます。この場合、SQLアクセス・アドバイザでは現行の論理的なスキーマ設計が調査され、表間で定義された関係に基づいて推奨事項が提供されます。

仮説ワークロードをワークロード・ソースとして使用する手順:

1. 初期オプションを選択します(「初期オプションの選択」を参照)。

2. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページで、「次のスキーマと表から仮想ワークロードを作成」を選択します。

3. 「スキーマと表」を空のままにし、「追加」をクリックして表を検索します。
「ワークロード・ソース: スキーマおよび表の検索と選択」ページが表示されます。

4. 「表」セクションで、「スキーマ」フィールドにスキーマ名を入力して「検索」をクリックします。
選択したスキーマの表のリストが表示されます。

5. 仮想ワークロードの作成に使用する表を選択し、「表の追加」をクリックします。
「スキーマと表」フィールドに選択した表が表示されます。

6. 「OK」をクリックします。
選択した表とともに「SQLアクセス・アドバイザ: ワークロード・ソース」ページが表示されます。

7. 次の手順に進みます(「フィルタ・オプションの適用」を参照)。

参照:

- マテリアライズド・ビューの概要については、『Oracle Database概要』を参照してください。

フィルタ・オプションの適用

ワークロード・ソースを選択したら、オプションで、フィルタを適用しワークロードで検出されたSQL文の範囲を削減できます。フィルタには次の利点があります。

- フィルタを使用することによりSQLアクセス・アドバイザがワークロードからのSQL文の特定のサブセットに基づいて推奨事項を生成するため、よりよい推奨事項を生成できる可能性があります。

- ワークロードから不要なSQL文を削除するフィルタを使用して、処理時間を大幅に削減できます。

ワークロード・ソースへのフィルタの適用手順:

1. 初期オプションを選択します(「初期オプションの選択」を参照)。

2. ワークロード・ソースを選択します(「ワークロード・ソースの選択」を参照)。

3. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページで、「フィルタ・オプション」をクリックします。
「フィルタ・オプション」セクションを開きます。

4. 「これらのオプションに基づいてワークロードをフィルタ処理します。」を選択します。
「フィルタ・オプション」セクションを有効にします。

5. 次の項の説明に従って、適用するフィルタを定義します。

- リソース使用量のフィルタの定義

- ユーザーのフィルタの定義

- 表のフィルタの定義

- SQLテキストのフィルタの定義

- モジュールのフィルタの定義

- アクションのフィルタの定義

6. 「次へ」をクリックします。
「推奨オプション」ページが表示されます。

7. 次の手順に進みます(「推奨オプションの指定」を参照)。

リソース使用量のフィルタの定義

リソース使用量のフィルタでは、指定した数の高負荷SQL文のみが含まれるようにワークロードを制限します。

リソース使用量のフィルタの定義手順:

1. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページのユーザーのリソース使用量の下で、「文の数」フィールドに高負荷SQL文の数を入力します。

2. 「ソート順」リストから、SQL文を順序付ける方法を1つ選択します。

ユーザーのフィルタの定義

ユーザー・フィルタで、指定したユーザーによって実行されたSQL文を含めるか除外してワークロードを制限します。

ユーザーのフィルタの定義手順:

1. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページの「ユーザー」の下で、「これらのユーザーによって実行されるSQL文のみを含める」または「これらのユーザーによって実行されるすべてのSQL文を除外する」を選択します。

2. 使用可能なユーザーを検索するには、「ユーザー」検索アイコンをクリックします。
「検索と選択: ユーザー」ダイアログ・ボックスが表示されます。

3. ユーザーを選択し、「選択」をクリックします。選択したユーザーのSQL文が含まれるか除外されます。
「検索と選択: ユーザー」ダイアログ・ボックスが閉じ、選択した表が「ユーザー」フィールドに表示されます。

この例では、ユーザーSHが実行したSQL文のみを含むようにフィルタが定義されています。

表のフィルタの定義

表のフィルタによって、指定する表のリストにアクセスするSQL文を含めたり除外したりするためにワークロードが制限されます。「仮説ワークロードの使用」に説明されているとおり、「次のスキーマと表から仮想ワークロードを作成」オプションを選択した場合は、表のフィルタは許可されません。

表のフィルタの定義手順:

1. 表の特定のリストにアクセスするSQL文のみを含むようにするには、「次のいずれかの表にアクセスするSQL文のみを含める」フィールドに表名を入力します。

2. 表の特定のリストにアクセスするすべてのSQL文を除外するには、「これらの表のいずれかにアクセスするすべてのSQL文を除外する」フィールドに表名を入力します。

3. 使用可能な表を検索するには、「表」検索アイコンをクリックします。
「検索と選択: スキーマと表」ダイアログ・ボックスが表示されます。

4. 表を選択し、「選択」をクリックします。選択した表のSQL文が含まれるか除外されます。
「検索と選択: スキーマと表」ダイアログ・ボックスが閉じ、選択した表が対応する「表」フィールドに表示されます。

SQLテキストのフィルタの定義

SQLテキスト・フィルタで、指定したSQLテキストのサブストリングのあるSQL文を含めるか除外してワークロードを制限します。

SQLテキストのフィルタの定義手順:

1. 特定のSQLテキストが含まれているSQL文のみを含むようにするには、「これらのSQLテキスト・サブストリングを含むSQL文のみを含める」フィールドに挿入するSQLテキストを入力します。

2. 特定のSQLテキストを含むすべてのSQL文を除外するには、除外するSQLテキストを「これらのSQLテキスト・サブストリングを含むすべてのSQL文を除外する」フィールドに入力します。

モジュールのフィルタの定義

指定したモジュールに関連するSQL文を含めるか除外するためにモジュールのフィルタによりワークロードが制限されます。

モジュールIDのフィルタの定義手順:

1. 次のいずれかの操作を行います。

- ワークロード内の特定のモジュールIDに関連するSQL文のみを含めるには、「これらのモジュールに関連付けられたSQL文のみを含める」を選択します。

- ワークロードからの特定のモジュールIDに関連するすべてのSQL文を除外するには、「これらのモジュールに関連付けられているすべてのSQL文を除外する」を選択します。

2. 「モジュール」フィールドに関連するSQL文が含まれるか除外されるモジュールの名前を入力します。

アクションのフィルタの定義

アクション・フィルタで、指定したアクションに関連するSQL文を含めるか除外してワークロードを制限します。

アクションのフィルタの定義手順:

1. 次のいずれかの操作を行います。

- ワークロードの特定のアクションに関連するSQL文のみを含めるには、「これらのアクションに関連付けられているSQL文のみを含める」を選択します。

- ワークロードの特定のアクションに関連するすべてのSQL文を除外するには、「これらの操作に関連付けられているすべてのSQL文を除外する」を選択します。

2. 「アクション」フィールドでアクションを入力します。このアクションに関連するSQL文が含まれるか除外されます。

推奨オプションの指定

ワークロードに対してオプティマイザにより選択された基礎となるデータ・アクセス・メソッドを改善するために、SQLアクセス・アドバイザにより索引、マテリアライズド・ビューおよびパーティションに対する推奨事項が提供されます。これらのアクセス構造を使用すると、データベースからのデータの読取りに要する時間が削減され、ワークロードのパフォーマンスを大幅に改善できます。ただし、これらのアクセス構造を使用する利点とこれらを維持するコストのバランスを考慮する必要があります。

推奨オプションの指定手順:

1. 初期オプションを選択します(「初期オプションの選択」を参照)。

2. ワークロード・ソースを選択します(「ワークロード・ソースの選択」を参照)。

3. フィルタ・オプションを定義します(「フィルタ・オプションの適用」を参照)。

4. 「SQLアクセス・アドバイザ: 推奨オプション」ページの「推奨するアクセス構造」の下で、SQLアクセス・アドバイザにより推奨されたアクセス構造のタイプを選択します。

- 索引

- マテリアライズド・ビュー

- パーティション化

この例では、前述のすべてのアクセス・タイプが選択されています。

5. 「有効範囲」で、SQLアクセス・アドバイザを実行するモードを選択します。次のいずれかの操作を行います。

- 「制限」を選択します。
制限モードでは、SQLアクセス・アドバイザはワークロードで最もコストの高いSQL文に焦点を当てます。分析は早いですが、推奨事項は制限されます。

- 「包括」を選択します。
包括モードではSQLアクセス・アドバイザによりワークロードのすべてのSQL文が分析されます。分析には時間がかかりますが詳細な推奨事項が提示されます。

この例では、「制限モード」が選択されています。

6. オプションで、「拡張オプション」をクリックします。
「拡張オプション」セクションを開きます。このセクションには次のサブセクションが含まれます。

- ワークロードの分類
このセクションでは、推奨事項が必要なワークロードのタイプを指定できます。次のカテゴリが使用可能です。

- ワークロードの不安定性
データ・ウェアハウスのように、主に読取り専用操作がワークロードに含まれる場合は、「問合せのみを考慮」を選択します。不安定なデータは、INSERT、UPDATEおよびDELETEの各操作のパフォーマンスが重要であるオンライン・トランザクション処理(OLTP)システムで役立ちます。

- ワークロード有効範囲
ワークロードがすべてのアクセス構造のユースケースを表す場合は、「未使用のアクセス構造の削除を推奨」を選択します。

- 領域制限
索引およびマテリアライズド・ビューにより領域を多く使用するパフォーマンスが増加します。次のいずれかの操作を行います。

- 「いいえ、すべての推奨を表示してください(領域制限なし)」を選択して領域制限をなくします。領域制限のない状態でSQLアクセス・アドバイザが起動されると、最善の可能なパフォーマンス推奨事項が作成されます。

- 「はい、追加領域を次の値に制限します」を選択し、次に領域制限をMB、GBまたはTB単位で入力します。領域制限のない状態でSQLアクセス・アドバイザが起動されると、指定された制限を超えない領域要件のある推奨事項のみが作成されます。

- チューニングの優先度付け
このセクションにより、SQL文をチューニングする方法を指定できます。次の手順を実行します。

- 「SQL文のチューニングを優先させる条件」リストから、SQL文をチューニングする方法を選択し、「追加」をクリックします。

- オプションで、「アクセス構造の作成コスト推奨の考慮」を選択し、頻度に対するアクセス構造の作成コストとSQL文の実行時間における改善の可能性を比較します。それ以外の場合は、作成コストは無視されます。頻繁に実行されるSQL文のために生成された特定の推奨事項が必要な場合は、このオプションを選択する必要があります。

- デフォルトの記憶域の場所
このセクションを使用してスキーマおよび表領域の場所が定義されたデフォルトの設定を上書きします。デフォルトでは、索引は参照する表のスキーマおよび表領域に置かれています。マテリアライズド・ビューは問合せで参照する最初の表のスキーマおよび表領域に置かれています。マテリアライズド・ビュー・ログは参照する表のスキーマのデフォルト表領域に置かれています。

7. 「次へ」をクリックします。
「SQLアクセス・アドバイザ: スケジュール」ページが表示されます。

8. 次の手順に進みます(「タスクおよびスケジュール・オプションの指定」を参照)。

タスクおよびスケジュール・オプションの指定

SQLアクセス・アドバイザをスケジュールするページを使用して、SQLアクセス・アドバイザ・タスクのスケジュール・パラメータを設定または変更します。

図13-1 SQLアクセス・アドバイザ・タスクのスケジュール

SQLアクセス・アドバイザ・タスクのスケジュール手順:

1. 初期オプションを選択します(「初期オプションの選択」を参照)。

2. ワークロード・ソースを選択します(「ワークロード・ソースの選択」を参照)。

3. フィルタ・オプションを定義します(「フィルタ・オプションの適用」を参照)。

4. 推奨オプションを指定します(「推奨オプションの指定」を参照)。

5. システムで生成されたタスク名を使用しない場合は、「SQLアクセス・アドバイザ: スケジュール」ページの「アドバイザ・タスク情報」で、「タスク名」フィールドに名前を入力します。
図13-1の例では、SQLACCESS8895797が入力されています。

6. 「タスクの説明」フィールドに、タスクの説明を入力します。
図13-1の例では、SQL Access Advisorが入力されています。

7. 「ジャーナル・レベル」リストで、タスクのジャーナル・レベルを選択します。
ジャーナル・レベルにより、タスク実行時にSQLアクセス・アドバイザのジャーナルに記録される情報量が制御されます。タスクの結果を表示する場合、この情報は「詳細」サブページに表示されます。

図13-1の例では、「基本」が選択されています。

8. 「タスクの有効期限(日)」フィールドに、タスクを削除する前にデータベース内で保持する日数を入力します。
図13-1の例では、30が入力されています。

9. 「合計時間の制限(分)」フィールドに、ジョブの実行が許可される最大の分数を入力します。
このフィールドには、デフォルトを使用するかわりに時間を入力する必要があります。

10. 「スケジュール・オプション」の下の「スケジュール・タイプ」リストで、タスクのスケジュール・タイプおよびタスクを実行するメンテナンス・ウィンドウを選択します。次のいずれかの操作を行います。

- 「標準」をクリックします。
このスケジュール・タイプにより、タスクの繰返し間隔および開始時間を選択できます。次の手順を実行します。

- 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

- 「繰返し」リストで、「繰返しなし」を選択してタスクを1回のみ実行するか、または時間の単位を選択して「間隔」フィールドに単位数を入力します。

- 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

- 「事前定義されたスケジュールの使用」をクリックします。
このスケジュール・タイプにより、既存のスケジュールを選択できます。次のいずれかの操作を行います。

- 「スケジュール」フィールドに、タスクに使用されるスケジュールの名前を入力します。

- スケジュールを検索するには、検索のアイコンをクリックします。
「検索と選択: スケジュール」ダイアログ・ボックスが表示されます。

必要なスケジュールを選択し、「選択」をクリックします。「スケジュール」フィールドに選択したスケジュールが表示されます。

- 「繰返し間隔にPL/SQLを使用する標準」をクリックします。
このスケジュール・タイプにより、タスクの繰返し間隔および実行期間(ウィンドウ)を選択できます。次の手順を実行します。

- 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

- 「開始可能時間」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

- 「繰返し間隔」フィールドに、SYSDATE+1などのPL/SQLのスケジュール式を入力します。

- 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日なし」を選択するか、または「指定された終了日」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

- 「事前定義されたウィンドウの使用」をクリックします。
このスケジュール・タイプにより、既存のウィンドウを選択できます。「ウィンドウを閉じる際の停止」を選択してウィンドウを閉じるときにジョブを停止します。次のいずれかの操作を行います。

- 「ウィンドウ」フィールドに、タスクに使用されるウィンドウの名前を入力します。

- ウィンドウを検索するには、検索のアイコンをクリックします。
「検索と選択: ウィンドウとウィンドウ・グループ」ダイアログ・ボックスが表示されます。

目的のウィンドウを選択し、「選択」をクリックします。「スケジュール」フィールドに選択したウィンドウが表示されます。

- 「イベント」をクリックします。
次の手順を実行します。

- 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

- 「イベント・パラメータ」で、「キュー名」および「条件」に値を入力します。

- 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

- 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日指定なし」を選択するか、または「終了日指定」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

- 「カレンダ」をクリックします。
次の手順を実行します。

- 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

- 「カレンダ式」に、カレンダ式を入力します。

- 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

- 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日なし」を選択するか、または「指定された終了日」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

図13-1の例では、スケジュール・タイプに「標準」が選択されています。このタスクは繰り返されず、すぐに開始するようにスケジュールされます。

11. 「次へ」をクリックします。
「SQLアクセス・アドバイザ: 確認」ページが表示されます。

「オプション」の下に、SQLアクセス・アドバイザ・タスクの変更済のオプションのリストがあります。変更済および未変更の両方のオプションを表示するには、「すべてのオプションの表示」をクリックします。タスクのSQLテキストを表示するには、「SQL表示」をクリックします。

12. 「発行」をクリックします。
「アドバイザ・セントラル」ページが表示されます。メッセージでタスクが正常に作成されたことが通知されます。

SQLアクセス・アドバイザ推奨事項の確認

SQLアクセス・アドバイザには推奨事項がグラフィカルに表示され、リンクが示されるので、推奨事項によって改善されるSQL文を簡単に確認することができます。SQLアクセス・アドバイザによって作成された各推奨事項は、その利点を得るSQL文にリンクされます。

SQLアクセス・アドバイザの推奨事項の確認手順:

1. SQLアクセス・アドバイザを実行して推奨事項を作成します(「SQLアクセス・アドバイザの実行」を参照)。

2. データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。

3. 「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。

4. 確認するSQLアクセス・アドバイザ・タスクを選択し、「結果の表示」をクリックします。

タスクが表示されない場合、画面をリフレッシュする必要がある場合があります。「タスクの結果」ページが表示されます。

5. 「サマリー」サブページを確認します。このページには、SQLアクセス・アドバイザの分析結果の概要が表示されます(「SQLアクセス・アドバイザ推奨事項の確認: サマリー」を参照)。

6. 「推奨」サブページを確認します。このページには、コスト改善の順に推奨事項が表示されます(「SQLアクセス・アドバイザ推奨事項の確認: 推奨事項」を参照)。

7. ワークロードで分析されたSQL文を確認します(「SQLアクセス・アドバイザ推奨事項の確認: SQL文」を参照)。

8. ワークロード、タスク・オプションおよびSQLアクセス・アドバイザ・タスクの詳細を確認します(「SQLアクセス・アドバイザ推奨事項の確認: 詳細」を参照)。

SQLアクセス・アドバイザ推奨事項の確認: サマリー

「サマリー」サブページにはSQLアクセス・アドバイザによる分析の概要が表示されます。

サマリーの詳細の確認手順:

1. 「タスクの結果」ページにアクセスします。(「SQLアクセス・アドバイザ推奨事項の確認」を参照)。

2. 「サマリー」をクリックします。
「タスクの結果」ページの「サマリー」サブページが表示されます。

この例では「制限モード」が選択されているため、SQLアクセス・アドバイザは、すべてのSQL文ではなく最もコストの大きいSQL文を分析します。

3. 「ワークロードの全体的なパフォーマンス」で、推奨事項の実装における向上の可能性を評価します。

4. 「ワークロードのI/Oコスト」グラフを使用して元のワークロードのI/Oコストを新しいコストと比較します。
この例では、推奨事項の実装によりワークロードのI/Oコストが1億710万から4310万に削減されました。

5. 「問合せ実行時間の向上」グラフを使用して問合せ実行時間の向上を比較します。
このグラフには、ワークロード内で推奨事項の使用により実行時間が短縮されるSQL文の割合が表示されます。SQL文は反映される向上の係数によりグラフの横軸(1倍から10倍)に沿って分類されます。反映される向上の係数に対して、向上するSQL文の割合は縦軸(0%から100%)に沿って計算されます。

この例では、ワークロード内の約62%のSQL文では、実行時間は改善されませんが、残りの約25%では4倍以上の改善の可能性があります。

6. 「推奨」で、「推奨操作の数を表示」をクリックします。
次の例では、索引を2つ、マテリアライズド・ビューを4つ、マテリアライズド・ビュー・ログを4つ作成することを推奨しています。

7. 「SQL文」で、「文の数を表示」をクリックしてSQL文のタイプを表示します。
次の例では、25のSELECT文が分析されています。

SQLアクセス・アドバイザ推奨事項の確認: 推奨事項

「推奨」サブページはコストの改善幅順によりSQLアクセス・アドバイザの推奨事項をランク付けします。各推奨事項の詳細も確認できます。

推奨事項の詳細の確認手順:

1. 「タスクの結果」ページにアクセスします。(「SQLアクセス・アドバイザ推奨事項の確認」を参照)。

2. 「推奨」をクリックします。
「推奨」サブページが表示されます。

3. 「コスト改善順の推奨事項」グラフを使用してコストの改善幅順に推奨事項を表示します。
「実装用の推奨の選択」で、実装ステータス、推奨事項ID、コスト改善、領域消費および各推奨事項の影響を受けたSQL文の数とともに各推奨事項がリストされます。上位推奨事項の実装により、ワークロードのパフォーマンス全体に最大限の利点が与えられます。

4. 特定の推奨事項の詳細を表示するには、推奨事項を選択して「推奨事項の詳細」をクリックします。
「推奨事項の詳細」ページが表示されます。スペースの都合のため、次のスクリーンショットは「アクション」表の右端の列を表示していません。表示されない列は、「表領域」および「推定使用済領域(MB)」です。

「推奨事項の詳細」ページには特定の推奨事項に対するすべてのアクションが表示されます。

「アクション」の下で、すべてのアクションのスキーマまたは表領域の指定を選択できます。一部のアクションで、オブジェクト名、表領域およびスキーマを変更できます。アクションのSQLテキストを表示するには、指定されたアクションの「アクション」列のリンクをクリックします。

「推奨の影響を受けるSQL」で、SQL文のSQLテキストおよびコスト改善情報が表示されます。

5. 「OK」をクリックします。
「推奨」サブページが表示されます。

6. 推奨事項のSQLテキストを表示するには、推奨事項を選択し「SQL表示」をクリックします。
選択した推奨事項で「SQL表示」ページが表示されます。

SQLアクセス・アドバイザ推奨事項の確認: SQL文

「SQL文」サブページはコストの改善幅順によりワークロードにあるSQL文をランク付けします。このページを使用して、ワークロードで分析したSQL文の詳細を表示できます。

SQL文の確認手順:

1. 「タスクの結果」ページにアクセスします。(「SQLアクセス・アドバイザ推奨事項の確認」を参照)。

2. 「SQL文」をクリックします。
「SQL文」サブページが表示されます。

3. 「コスト改善順のSQL文」グラフを使用してワークロード内のコストの改善幅順にSQL文を表示します。
「改善するSQL文の選択」で、各SQL文が文ID、SQLテキスト、関連する推奨事項、コスト改善および実行数とともにリストされます。

上位SQL文に関連する推奨事項の実装にはワークロードのパフォーマンス全体に最も大きな利点があります。この例では、IDが3の推奨事項の実装により、IDが803のSQL文のコストが99.80%改善されるという大きな利点を得られます。

4. 推奨事項のSQLテキストを表示するには、推奨事項を選択し「SQL表示」をクリックします。
選択した推奨事項で「SQL表示」ページが表示されます。

SQLアクセス・アドバイザ推奨事項の確認: 詳細

「詳細」サブページには、分析に使用されるすべてのワークロード・オプションおよびタスク・オプションのリストが表示されています。また、このページを使用すると、タスクが作成されたときに使用されるジャーナル・レベルに基づいて、タスクのジャーナル・エントリのリストを参照できます。

ワークロードおよびタスクの詳細の確認手順:

1. 「タスクの結果」ページにアクセスします。(「SQLアクセス・アドバイザ推奨事項の確認」を参照)。

2. 「詳細」をクリックします。
「詳細」サブページが表示されます。

「ワークロードおよびタスクのオプション」で、アドバイザのタスクが作成されたときに選択されたオプションのリストが表示されます。

「ジャーナル・エントリ」で、タスクが実行されている間にSQLアクセス・アドバイザのジャーナルに記録されたメッセージのリストが表示されます。

SQLアクセス・アドバイザ推奨事項の実装

SQLアクセス・アドバイザの推奨事項は、簡単な提案から、一連の既存の実表をパーティション化し、一連のデータベース・オブジェクト(索引、マテリアライズド・ビュー、マテリアライズド・ビュー・ログ)を実装するといった複雑なソリューションにまで及びます。実装する推奨事項を選択し、ジョブの実行がいつ必要とされるかをスケジュールできます。

SQLアクセス・アドバイザの推奨事項の実装手順:

1. コスト・ベネフィットについてSQLアクセス・アドバイザ推奨事項を確認し、もしあればどれを実装するかを判断します。
詳細は、「SQLアクセス・アドバイザ推奨事項の確認」を参照してください。

2. 「タスクの結果」ページにアクセスします。(「SQLアクセス・アドバイザ推奨事項の確認」を参照)。

3. 「推奨」をクリックします。
「推奨」サブページが表示されます。

4. 「実装用の推奨の選択」で、実装する推奨事項を選択して「スケジュール実装」をクリックします。
次の例では、IDの値が1の推奨事項が選択されています。

「スケジュール実装」ページが表示されます。

5. システムで生成されたジョブ名を使用しない場合は、「ジョブ名」フィールドにジョブ名を入力します。

6. エラーが発生した場合は、実装ジョブを停止する必要があるかどうかを判断します。次のいずれかの操作を行います。

- エラーが発生した場合に処理を停止するには、「エラー時に停止」を選択します。

- エラーが発生した場合に処理を続行するには、「エラー時に停止」の選択を解除します。

7. 「スケジュール・オプション」の下の「スケジュール・タイプ」リストで、タスクのスケジュール・タイプおよびタスクを実行するメンテナンス・ウィンドウを選択します。次のいずれかの操作を行います。

- 「標準」をクリックします。
このスケジュール・タイプにより、タスクの繰返し間隔および開始時間を選択できます。次の手順を実行します。

- 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

- 「繰返し」リストで、「繰返しなし」を選択してタスクを1回のみ実行するか、または時間の単位を選択して「間隔」フィールドに単位数を入力します。

- 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

- 「事前定義されたスケジュールの使用」をクリックします。
このスケジュール・タイプにより、既存のスケジュールを選択できます。次のいずれかの操作を行います。

- 「スケジュール」フィールドに、タスクに使用されるスケジュールの名前を入力します。

- スケジュールを検索するには、検索のアイコンをクリックします。
「検索と選択: スケジュール」ダイアログ・ボックスが表示されます。

必要なスケジュールを選択し、「選択」をクリックします。「スケジュール」フィールドに選択したスケジュールが表示されます。

- 「繰返し間隔にPL/SQLを使用する標準」をクリックします。
このスケジュール・タイプにより、タスクの繰返し間隔および実行期間を選択できます。次の手順を実行します。

- 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

- 「開始可能時間」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

- 「繰返し間隔」フィールドに、SYSDATE+1などのPL/SQLのスケジュール式を入力します。

- 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日なし」を選択するか、または「指定された終了日」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

- 「事前定義されたウィンドウの使用」をクリックします。
このスケジュール・タイプにより、既存のウィンドウを選択できます。「ウィンドウを閉じる際の停止」を選択してウィンドウを閉じるときにジョブを停止します。次のいずれかの操作を行います。

- 「ウィンドウ」フィールドに、タスクに使用されるウィンドウの名前を入力します。

- ウィンドウを検索するには、検索のアイコンをクリックします。
「検索と選択: ウィンドウとウィンドウ・グループ」ダイアログ・ボックスが表示されます。

目的のウィンドウを選択し、「選択」をクリックします。「スケジュール」フィールドに選択したウィンドウが表示されます。

- 「イベント」をクリックします。
次の手順を実行します。

- 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

- 「イベント・パラメータ」で、「キュー名」および「条件」に値を入力します。

- 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

- 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日なし」を選択するか、または「指定された終了日」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

- 「カレンダ」をクリックします。
次の手順を実行します。

- 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

- 「カレンダ式」に、カレンダ式を入力します。

- 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

- 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日なし」を選択するか、または「指定された終了日」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

この例では、スケジュール・タイプに「標準」が選択されています。ジョブは繰り返されず、すぐに開始されるようにスケジュールされます。

8. オプションで、「SQL表示」をクリックしてジョブのSQLテキストを表示します。

9. 「発行」をクリックしてジョブを発行します。

10. ジョブがすぐに開始するようにスケジュールされているか、または後で開始するようにスケジュールされているかによって、次のいずれかの操作を行います。

- ジョブをすぐに送信した場合、およびタスクの結果ページが表示される場合は、「スケジューラのジョブ」フィールドのリンクをクリックしてジョブの表示ページを表示します。ステップ12に進みます。

- ジョブが後で実行されるようにスケジュールされている場合は、手順11に進みます。

11. 次の手順を実行します。

a. 「管理」メニューから、「Oracle Scheduler」を選択し、「ジョブ」を選択します。。
「スケジューラのジョブ」ページが表示されます。

b. 実装ジョブを選択し、「ジョブ定義の表示」をクリックします。
選択したジョブに対する「ジョブの表示」ページが表示されます。

12. 「ジョブの表示」ページの「操作の詳細」の下で、操作のステータスを確認します。

13. オプションで、操作を選択して「表示」をクリックします。
「操作の詳細」ページが表示されます。

このページには、トラブルシューティングに使用できる情報(開始日および開始時間、実行期間、使用されるCPU時間、セッションIDなど)が含まれます。

14. オプションとして、データベースのホームページから、「スキーマ」を選択し、次に作成されたオブジェクトのページを選択します。
作成されるアクセス構造のタイプによって、Indexesページ、Materialized ViewsページまたはMaterialized View Logsページを使用してアクセス構造を表示できます。

索引

A  B  C  D  E  H  I  J  L  M  N  O  P  R  S  T  U  W

A

- アクション

- 概要 1

- アクティブ・セッション履歴

- 概要 1

- 「ASH分析」ページ 1

- レポート

- 概要 1

- アクティビティの経過 1

- ロード・プロファイル 1

- 実行 1

- 上位イベント 1

- 上位SQL 1

- 使用 1

- サンプリングされたデータ 1

- 統計 1

- アクティブなセッション

- アクティブ・セッション履歴での取得 1

- ADDM

- 「自動データベース診断モニター」を参照

- エージェント間のファイル転送 1

- アラート

- クリア 1

- デフォルト 1

- パフォーマンス 1

- 対応 1

- ASH

- 「アクティブ・セッション履歴」を参照

- ASH分析 1

- 自動データベース診断モニター

- 概要 1

- 結果へのアクセス 1

- 分析 1

- 構成 1

- 結果

- 概要 1

- 表示 1

- Oracle RAC 1

- 高負荷SQLの識別 1

- リアルタイム 1

- 推奨事項

- アクション 1

- 実装 1

- 解釈 1

- 論理 1

- 種類 1

- レポート 1

- 結果の確認 1

- 手動での実行

- 現在のデータベースのパフォーマンスの分析 1

- データベースのパフォーマンスの履歴の分析 1

- 自動メモリー管理 1

- 自動SQLチューニング

- タスクの属性の変更 1

- 推奨の表示 1

- 結果の表示 1

- 自動ストレージ管理 1

- 自動ワークロード・リポジトリ

- 概要 1

- ベースライン 1

- 期間比較レポート

- 概要 1

- 詳細 1

- 保存 1 , 2

- サマリー 1

- 補足情報 1

- 使用 1

- 別のベースラインの使用 1

- スナップショット 1

- 収集した統計 1

- 使用 1

- 平均アクティブ・セッション

- 概要 1

- AWR

- 「自動ワークロード・リポジトリ」を参照

- awrinfo.sqlスクリプト 1

- AWRウェアハウス

- 概要 1

- 「ASH分析」ページ 1

- 「AWRレポート」ページ 1

- 「期間比較ADDM」ページ 1

- 「期間比較レポート」ページ 1

- 資格証明 1

- ETL 1

- 抽出エラー 1

- ロード・エラー 1

- メモリー管理 1

- 「パフォーマンス・ホーム」ページ 1

- 設定 1

- スナップショットの表示アクセス権 1

- ソース・データベース 1

- ステージングの場所 1

- 記憶域要件 1

- SYSAUX表領域 1 , 2

- 転送エラー 1

- トラブルシューティング 1

B

- ベースライン

- 概要 1

- ベースライン・テンプレート

- 概要 1 , 2

- 比較 1 , 2

- しきい値の統計の計算 1

- 作成 1

- 削除 1

- SQL計画 1

C

- クライアント

- 概要 1

- CONTROL_MANAGEMENT_PACK_ASSESSパラメータ

- ADDM 1

- データベース操作 1

- CPU

- I/O待機 1

- 負荷 1

- パフォーマンスの問題 1

- 時間 1

- 使用率, 監視 1

- 「パフォーマンス」ページのカスタマイズ 1

D

- データ・アクセス・パス, 最適化 1

- データベースのホームページ

- アクセス 1

- データベース操作

- 複合操作, 定義 1

- 作成 1

- 初期パラメータを使用した監視の有効化 1

- 操作の識別 1

- 監視 1

- 単一操作, 定義 1

- 「監視されたSQL実行」ページでの表示 1

- データベース操作, 監視

- 目的 1

- データベースのパフォーマンス

- アラート 1

- 自動監視 1

- 比較 1

- 現在の分析 1

- 時間の経過による低下 1

- 履歴分析 1

- 手動監視 1

- 概要 1

- データベース・リソース・マネージャ

- 使用 1

- データベース統計

- 概要 1

- データベース時間

- 概要 1

- ADDM結果 1

- 平均アクティブ・セッションの計算 1

- データベース・チューニング

- 時間の経過によるパフォーマンスの低下 1

- データベースの準備 1

- 事前チューニング 1

- 事後チューニング 1

- リアルタイムのパフォーマンスの問題 1

- SQLチューニング 1

- ツール 1

- 一時的なパフォーマンスの問題 1

- 「パフォーマンス」ページの使用 1

- Data Guard 1

- DBIO_EXPECTEDパラメータ

- 設定 1 , 2

- DBMS_ADVISORパッケージ

- ADDMの設定 1

- DBIO_EXPECTEDの設定 1

- DBMS_SQL_MONITORパッケージ 1

- DB時間

- 「データベース時間」を参照

- ディスク

- パフォーマンスの問題 1

- 使用率, 監視 1

E

- 緊急パフォーマンス・ページ 1

- ETL 1

- イベント 1

- 実行プラン

- 概要 1

- 展開 1

- SQL文用の表示 1

- 抽出エラー, AWRウェアハウス 1

H

- 高負荷SQL

- 概要 1

- ADDMを使用した識別 1

- 上位SQLを使用した識別 1

- 上位SQLを使用した待機クラスごとの識別 1

- 統計 1

- チューニング 1 , 2

- 詳細の表示 1

- 実行計画の表示 1

- セッション・アクティビティの表示 1

- SQLテキストの表示 1

- 統計の表示 1

- チューニング情報の表示 1

- ホスト・アクティビティ, 監視

- CPU 1

- CPU使用率 1

- ディスク使用率 1

I

- I/O待機時間, 監視 1

- インシデント 1

- 索引

- 概要 1

- ビットマップ 1

- Bツリー 1

- 作成 1

- ファンクション 1

- 索引

- 作成 1

- 初期化パラメータ 1

- インメモリー列ストア(IM列ストア) 1

- インスタンス・アクティビティ, 監視

- I/O待機時間 1

- パラレル実行 1

- サービス 1

- スループット 1

J

- job_queue_processesパラメータ 1

L

- ロード・エラー, AWRウェアハウス 1

M

- マテリアライズド・ビュー・ログ

- 概要 1

- 作成 1 , 2

- マテリアライズド・ビュー

- 作成 1 , 2

- メモリー

- パフォーマンスの問題 1

- スワップ使用率 1

- 使用率, 監視 1

- メモリー管理, AWRウェアハウス 1

- メトリック 1 , 2

- モジュール

- 概要 1

- 「監視されたSQL実行」ページ 1

N

- ネットワーク待機時間 1

O

- Oracleのパフォーマンス・メソッド

- 概要 1

- 事前チューニング・タスク 1

- データベースの事前チューニング・タスク 1

- データベースの事後チューニング・タスク 1

- SQLチューニング・タスク 1

- 使用 1

P

- パラレル実行, 監視 1

- パラメータ

- CONTROL_MANAGEMENT_PACK_ASSESS 1 , 2 , 3

- 初期化 1

- STATISTICS_LEVEL 1 , 2

- 「パフォーマンス」ページ

- 概要 1

- カスタマイズ 1

- パフォーマンスの問題

- 一般的 1

- CPU 1

- 診断 1

- 緊急時の診断 1

- ディスク 1

- メモリー 1

- リアルタイム 1 , 2

- 一時的 1

- 問題, インシデントのタイプ 1

R

- 「リアルタイムADDM」ページ 1

- REDOログ 1

- RMAN 1

S

- サービス

- 概要 1 , 2

- 監視 1

- 上位の監視 1

- セッション

- 概要 1 , 2

- アクティブ 1 , 2

- 平均アクティブ 1

- 実行中の上位 1

- スナップショット

- 概要 1

- 作成 1

- デフォルトの間隔 1

- 設定の変更 1

- 統計の表示 1

- スナップショットのアップロード, AWRウェアハウス 1

- ソース・データベース, AWRウェアハウス 1

- スパイク

- 原因の特定 1

- SQLアクセス・アドバイザ

- 概要 1 , 2

- フィルタ 1

- 初期オプション 1 , 2

- 推奨事項

- 概要 1

- 詳細 1

- 実装 1

- オプション 1

- 確認 1

- SQL 1

- サマリー 1

- 実行 1

- スケジュール 1

- タスク・オプション 1

- ワークロード・オプション 1

- ワークロード・ソース 1

- SQLパフォーマンス・アナライザ

- 概要 1

- SQL計画ベースライン

- 概要 1

- 自動的に取得 1

- 展開 1

- 手動でロード 1

- SQL計画管理 1

- SQL計画管理展開アドバイザ 1

- SQLプロファイル

- 削除 1

- 無効化 1

- 有効化 1

- SQLチューニング・アドバイザ

- 概要 1

- 自動化メンテナンス・タスク 1

- 推奨事項の実装 1

- 制限付きの有効範囲 1

- 使用 1 , 2

- SQLチューニング・セット

- 概要 1

- 作成 1

- ロード・メソッド 1

- 積上げ面グラフ

- 説明 1

- 統計

- アクティブ・セッション履歴 1

- ベースライン 1

- データベース 1

- データベース時間 1 , 2

- デフォルトの保存期間 1

- 収集 1

- 高負荷SQL 1 , 2 , 3

- サンプリングされたデータ 1

- セッション 1

- システム 1

- 待機イベント 1

- STATISTICS_LEVELパラメータ

- ADDM 1

- データベース操作 1

- 統計収集 1

- 記憶域要件, AWRウェアハウス 1

- SYSAUX表領域 1 , 2

T

- スループット, 監視 1

- 上位アクション, 監視 1

- トップ・アクティビティ

- 上位SQL 1

- 「トップ・アクティビティ」ページ

- 概要 1

- 上位クライアント, 監視 1

- 上位ファイル, 監視 1

- 上位モジュール, 監視 1

- 上位オブジェクト, 監視 1

- 上位PL/SQL, 監視 1

- 上位サービス, 監視 1

- 上位SQL

- 待機クラス 1

- 高負荷SQLの識別 1

- アクティブ・セッション履歴レポート 1

- 監視 1

- 実行中の上位セッション, 監視 1

- 転送エラー, AWRウェアハウス 1

- トラブルシューティング, AWRウェアハウス 1

U

- ユーザー・アクティビティ, 監視

- 概要 1

- 上位アクション 1

- 上位クライアント 1

- 上位ファイル 1

- 上位モジュール 1

- 上位オブジェクト 1

- 上位PL/SQL 1

- 上位サービス 1

- 上位SQL 1

- 実行中の上位セッション 1

W

- 待機クラス

- グループ化された待機イベント 1

- 高負荷SQLの表示 1

- 待機イベント

- 統計 1

- 待機時間 1

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。