ヘッダーをスキップ
Oracle Databaseパフォーマンス・チューニング・ガイド
11
g
リリース1(11.1)
E05743-02
索引
次へ
目次
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
サポートおよびサービス
Oracleのパフォーマンスの新機能
第I部 パフォーマンス・チューニング
1
パフォーマンス・チューニングの概要
1.1
パフォーマンス・チューニングの概要
1.1.1
パフォーマンス計画
1.1.2
インスタンスのチューニング
1.1.3
SQLチューニング
1.2
パフォーマンス・チューニング機能およびツールの概要
1.2.1
自動パフォーマンス・チューニング機能
1.2.2
その他のOracleツール
第II部 パフォーマンス計画
2
パフォーマンスを考慮した設計と開発
2.1
オラクル社の新しい方法論
2.2
投資の選択肢について
2.3
スケーラビリティについて
2.3.1
スケーラビリティとは
2.3.2
システムのスケーラビリティ
2.3.3
スケーラビリティを妨げる要因
2.4
システム・アーキテクチャ
2.4.1
ハードウェア・コンポーネントとソフトウェア・コンポーネント
2.4.2
要件に合った正しいシステム・アーキテクチャの構成
2.5
アプリケーション設計の原則
2.5.1
アプリケーション設計の簡潔さ
2.5.2
データのモデル化
2.5.3
表および索引の設計
2.5.4
ビューの使用
2.5.5
SQLの実行効率
2.5.6
アプリケーションの実装
2.5.7
アプリケーション開発の傾向
2.6
ワークロードのテスト、モデル化および実装
2.6.1
データのサイズ設定
2.6.2
ワークロードの見積り
2.6.3
アプリケーションのモデル化
2.6.4
設計のテスト、デバッグおよび検証
2.7
新規アプリケーションのデプロイ
2.7.1
ロールアウトの方法
2.7.2
パフォーマンス・チェックリスト
3
パフォーマンス改善方法
3.1
Oracleのパフォーマンス改善方法
3.1.1
Oracleのパフォーマンス改善方法の手順
3.1.2
パフォーマンスを概念的にモデル化する際の意思決定プロセスの例
3.1.3
Oracleシステムにおける誤りの上位10項目
3.2
パフォーマンスの緊急の問題に対処する方法
3.2.1
パフォーマンスの緊急の問題に対処する方法の手順
第III部 インスタンスのパフォーマンスの最適化
4
パフォーマンスを考慮したデータベースの構成
4.1
初期インスタンス構成のパフォーマンスの考慮事項
4.1.1
初期化パラメータ
4.1.2
UNDO領域の構成
4.1.3
REDOログ・ファイルのサイズ指定
4.1.4
追加表領域の作成
4.2
最適なパフォーマンスを得る表の作成とメンテナンス
4.2.1
表圧縮
4.2.2
未使用領域の解放
4.2.3
データの索引付け
4.3
共有サーバーのパフォーマンスの考慮事項
4.3.1
ディスパッチャ固有のビューを使用する競合の識別
4.3.2
共有サーバーの競合の識別
5
自動パフォーマンス統計
5.1
データ収集の概要
5.1.1
データベース統計
5.1.2
オペレーティング・システム統計
5.1.3
統計の解釈
5.2
自動ワークロード・リポジトリの概要
5.2.1
スナップショット
5.2.2
ベースライン
5.2.3
適応しきい値
5.2.4
領域使用量
5.3
自動ワークロード・リポジトリの管理
5.3.1
スナップショットの管理
5.3.2
ベースラインの管理
5.3.3
ベースライン・テンプレートの管理
5.3.4
自動ワークロード・リポジトリ・データの転送
5.3.5
自動ワークロード・リポジトリ・ビューの使用
5.3.6
自動ワークロード・リポジトリ・レポートの生成
5.3.7
自動ワークロード・リポジトリ期間比較レポートの生成
5.3.8
アクティブ・セッション履歴レポートの生成
5.3.9
アクティブ・セッション履歴レポートの使用
6
自動パフォーマンス診断
6.1
自動データベース診断モニターの概要
6.1.1
ADDM分析
6.1.2
Oracle Real Application ClustersでのADDMの使用方法
6.1.3
ADDMの分析結果
6.1.4
ADDMの分析結果の確認: 例
6.2
ADDMの設定
6.3
ADDMを使用したデータベース・パフォーマンスの問題の診断
6.3.1
データベース・モードでのADDMの実行
6.3.2
インスタンス・モードでのADDMの実行
6.3.3
部分モードでのADDMの実行
6.3.4
ADDMレポートの表示
6.4
ADDM情報を表示するビュー
7
メモリーの構成と使用方法
7.1
メモリー割当ての問題について
7.1.1
Oracleメモリー・キャッシュ
7.1.2
自動メモリー管理
7.1.3
自動共有メモリー管理
7.1.4
キャッシュ・サイズの動的な変更
7.1.5
アプリケーションの考慮事項
7.1.6
オペレーティング・システムのメモリー使用量
7.1.7
構成の繰返し
7.2
バッファ・キャッシュの構成および使用方法
7.2.1
バッファ・キャッシュの効果的な使用
7.2.2
バッファ・キャッシュのサイズ設定
7.2.3
バッファ・キャッシュ・アドバイザ統計の解釈および使用方法
7.2.4
複数バッファ・プールについて
7.2.5
V$DB_CACHE_ADVICE内のバッファ・プール・データ
7.2.6
バッファ・プール・ヒット率
7.2.7
プール内に多くのバッファを持つセグメントの特定
7.2.8
KEEPプール
7.2.9
RECYCLEプール
7.3
共有プールとラージ・プールの構成および使用方法
7.3.1
共有プールの概念
7.3.2
共有プールの効果的な使用方法
7.3.3
共有プールのサイズ設定
7.3.4
共有プール統計の解釈
7.3.5
ラージ・プールの使用
7.3.6
CURSOR_SPACE_FOR_TIMEの使用
7.3.7
セッション・カーソルのキャッシュ
7.3.8
予約プールの構成
7.3.9
除去防止のためのラージ・オブジェクトの保存
7.3.10
既存のアプリケーション用のCURSOR_SHARING
7.3.11
接続の維持
7.4
REDOログ・バッファの構成および使用方法
7.4.1
ログ・バッファのサイズ設定
7.4.2
ログ・バッファの統計
7.5
PGAメモリー管理
7.5.1
自動PGAメモリーの構成
7.5.2
OLAP_PAGE_POOL_SIZEの構成
7.6
クライアントの問合せ結果キャッシュの使用方法
7.6.1
結果キャッシュ・モードの使用
7.6.2
問合せ結果キャッシュの管理
7.6.3
問合せ結果キャッシュの情報へのアクセス
8
I/O構成および設計
8.1
I/Oについて
8.2
I/O測定
8.2.1
I/O測定の前提条件
8.2.2
I/O測定の実行
8.3
I/O構成
8.3.1
オペレーティング・システムまたはハードウェアのストライプ化を使用したファイルのレイアウト
8.3.2
手動によるI/Oの分散
8.3.3
ファイルを分割する場合
8.3.4
3つの構成サンプル
8.3.5
Oracle Managed Files
8.3.6
データ・ブロック・サイズの選択
9
オペレーティング・システム・リソース
9.1
オペレーティング・システムのパフォーマンスの問題について
9.1.1
オペレーティング・システムのキャッシュの使用
9.1.2
メモリー使用量
9.1.3
オペレーティング・システムのリソース・マネージャの使用
9.2
オペレーティング・システムの問題の解決
9.2.1
UNIXベースのシステムのパフォーマンスに関するヒント
9.2.2
Windowsシステムのパフォーマンスに関するヒント
9.2.3
HP OpenVMSシステムのパフォーマンスに関するヒント
9.3
CPUについて
9.4
システムのCPU使用率の調査
9.4.1
メモリー管理のチェック
9.4.2
I/O管理のチェック
9.4.3
ネットワーク管理のチェック
9.4.4
プロセス管理のチェック
10
パフォーマンス・ビューを使用したインスタンスのチューニング
10.1
インスタンスのチューニング手順
10.1.1
問題の定義
10.1.2
ホスト・システムの検査
10.1.3
Oracle統計の調査
10.1.4
変更の実装および測定
10.2
Oracle統計の解釈
10.2.1
負荷の検査
10.2.2
待機イベント統計を使用したボトルネックへのドリルダウン
10.2.3
待機イベントおよび潜在的な原因の表
10.2.4
追加された統計情報
10.3
待機イベント統計
10.3.1
buffer busy waits
10.3.2
db file scattered read
10.3.3
db file sequential read
10.3.4
direct path readおよびdirect path read temp
10.3.5
direct path writeおよびdirect path write temp
10.3.6
enqueue(enq:)待機
10.3.7
events in wait class other
10.3.8
free buffer waits
10.3.9
アイドル待機イベント
10.3.10
ラッチ・イベント
10.3.11
log file parallel write
10.3.12
library cache pin
10.3.13
library cache lock
10.3.14
log buffer space
10.3.15
log file switch
10.3.16
log file sync
10.3.17
rdbms ipc reply
10.3.18
SQL*Netイベント
10.4
リアルタイムSQL監視
10.4.1
SQL計画の監視
10.4.2
パラレル実行の監視
10.4.3
SQL監視レポートの生成
10.4.4
SQL監視の有効化と無効化
10.5
インスタンス・リカバリのパフォーマンスのチューニング: ファスト・スタート・リカバリ
10.5.1
インスタンス・リカバリについて
10.5.2
キャッシュ・リカバリ時間の構成: FAST_START_MTTR_TARGET
10.5.3
FAST_START_MTTR_TARGETのチューニングとMTTRアドバイザの使用
第IV部 SQL文の最適化
11
問合せオプティマイザ
11.1
オプティマイザ操作
11.2
オプティマイザの目標の選択
11.2.1
OPTIMIZER_MODE初期化パラメータ
11.2.2
問合せオプティマイザの目標変更に対するオプティマイザSQLのヒント
11.2.3
データ・ディクショナリ内の問合せオプティマイザ統計
11.3
問合せオプティマイザ機能の有効化および制御
11.3.1
問合せオプティマイザ機能の有効化
11.3.2
問合せオプティマイザの動作の制御
11.4
問合せオプティマイザについて
11.4.1
問合せオプティマイザの構成要素
11.4.2
実行計画の読み方と理解
11.5
問合せオプティマイザのアクセス・パスについて
11.5.1
全表スキャン
11.5.2
ROWIDスキャン
11.5.3
索引スキャン
11.5.4
クラスタ・アクセス
11.5.5
ハッシュ・アクセス
11.5.6
サンプル表スキャン
11.5.7
問合せオプティマイザによるアクセス・パスの選択方法
11.6
結合について
11.6.1
問合せオプティマイザによる結合文の実行方法
11.6.2
問合せオプティマイザによる結合の実行計画の選択方法
11.6.3
ネステッド・ループ結合
11.6.4
ハッシュ結合
11.6.5
ソート/マージ結合
11.6.6
デカルト結合
11.6.7
外部結合
12
EXPLAIN PLANの使用方法
12.1
EXPLAIN PLANについて
12.1.1
実行計画の変化理由
12.1.2
排除行数の最少化
12.1.3
実行計画以外の考慮事項
12.1.4
EXPLAIN PLANの制限事項
12.2
PLAN_TABLE出力表
12.3
EXPLAIN PLANの実行
12.3.1
EXPLAIN PLANでの文の指定
12.3.2
EXPLAIN PLANでの別の表の指定
12.4
PLAN_TABLE出力の表示
12.4.1
PLAN_TABLE出力のカスタマイズ
12.5
EXPLAIN PLAN出力の読み方
12.6
EXPLAIN PLANによるパラレル実行の表示
12.6.1
EXPLAIN PLANによるパラレル問合せの表示
12.7
EXPLAIN PLANによるビットマップ索引の表示
12.8
EXPLAIN PLANによる結果キャッシュの表示
12.9
EXPLAIN PLANによるパーティション・オブジェクトの表示
12.9.1
EXPLAIN PLANによるレンジ・パーティション化およびハッシュ・パーティション化の表示の例
12.9.2
コンポジット・パーティション・オブジェクトでのプルーニング情報の例
12.9.3
パーシャル・パーティション・ワイズ結合の例
12.9.4
フル・パーティション・ワイズ結合の例
12.9.5
INLIST ITERATORおよびEXPLAIN PLANの例
12.9.6
ドメイン索引およびEXPLAIN PLANの例
12.10
PLAN_TABLE列
13
オプティマイザ統計の管理
13.1
統計について
13.2
自動オプティマイザ統計収集
13.2.1
自動オプティマイザ統計収集の有効化
13.2.2
統計収集時の考慮事項
13.3
手動統計収集
13.3.1
DBMS_STATSプロシージャによる統計の収集
13.3.2
統計を収集する時期
13.3.3
DBMS_STATSファンクションによる統計の比較
13.4
システム統計
13.4.1
作業負荷統計
13.4.2
非作業負荷統計
13.5
統計の管理
13.5.1
統計の保留
13.5.2
前のバージョンの統計のリストア
13.5.3
統計のエクスポートとインポート
13.5.4
統計のリストアとインポートまたはエクスポートの相違点
13.5.5
表統計またはスキーマ統計のロック
13.5.6
統計の設定
13.5.7
動的サンプリングを使用した統計の見積り
13.5.8
統計の欠落の処理
13.6
統計の表示
13.6.1
表、索引および列の統計
13.6.2
ヒストグラムの表示
14
索引およびクラスタの使用方法
14.1
索引パフォーマンスについて
14.1.1
論理構造のチューニング
14.1.2
SQLアクセス・アドバイザを使用した索引のチューニング
14.1.3
索引を付ける列と式の選択
14.1.4
コンポジット索引の選択
14.1.5
索引を使用する文の記述
14.1.6
索引を使用しない文の記述
14.1.7
索引の再作成
14.1.8
索引の縮小
14.1.9
一意でない索引による一意性の規定
14.1.10
ENABLE NOVALIDATE制約の使用方法
14.2
パフォーマンスを考慮したファンクション索引の使用方法
14.3
パフォーマンスを考慮したパーティション索引の使用方法
14.4
パフォーマンスを考慮した索引構成表の使用方法
14.5
パフォーマンスを考慮したビットマップ索引の使用方法
14.6
パフォーマンスを考慮したビットマップ結合索引の使用方法
14.7
パフォーマンスを考慮したドメイン索引の使用方法
14.8
パフォーマンスを考慮したクラスタの使用方法
14.9
パフォーマンスを考慮したハッシュ・クラスタの使用方法
15
SQL計画の管理の使用方法
15.1
SQL計画ベースラインの管理
15.1.1
SQL計画ベースラインの取得
15.1.2
SQL計画ベースラインの選択
15.1.3
SQL計画ベースラインの改良
15.2
SQLチューニング・アドバイザでのSQL計画ベースラインの使用
15.3
固定SQL計画ベースラインの使用
15.4
SQL計画ベースラインの表示
15.5
SQL管理ベース
15.5.1
ディスク領域の使用量
15.5.2
消去方針
15.5.3
SQL管理ベースの構成パラメータ
15.6
SQL計画ベースラインのインポートとエクスポート
16
SQLチューニングの概要
16.1
SQLチューニングの概要
16.2
チューニングの目的
16.2.1
ワークロードの削減
16.2.2
ワークロードの均衡化
16.2.3
ワークロードのパラレル化
16.3
高負荷SQLの識別
16.3.1
多くのリソースを消費するSQLの識別
16.3.2
識別したSQLに関するデータの収集
16.4
自動SQLチューニング機能
16.4.1
ADDM
16.4.2
SQLチューニング・アドバイザ
16.4.3
SQLチューニング・セット
16.4.4
SQLアクセス・アドバイザ
16.5
効率的なSQL文の開発
16.5.1
オプティマイザ統計の確認
16.5.2
実行計画の検討
16.5.3
SQL文の再構成
16.5.4
ヒントによるアクセス・パスおよび結合順序の制御
16.5.5
索引の再構成
16.5.6
トリガーおよび制約の変更または無効化
16.5.7
データの再構成
16.5.8
実行計画の長期的な保持
16.5.9
データへのアクセスを最小限に削減
16.6
SQLテスト・ケースの作成
16.6.1
テスト・ケースの作成
17
自動SQLチューニング
17.1
自動チューニング・オプティマイザ
17.1.1
統計分析
17.1.2
SQLプロファイリング
17.1.3
アクセス・パス分析
17.1.4
SQL構造分析
17.2
SQLチューニング・アドバイザ
17.3
自動SQLチューニング・アドバイザ
17.3.1
自動SQLチューニングの有効化と無効化
17.3.2
自動SQLチューニングの構成
17.3.3
自動SQLチューニング・レポートの表示
17.4
SQLチューニング・アドバイザを使用した事後チューニング
17.4.1
入力ソース
17.4.2
チューニング・オプション
17.4.3
アドバイザ出力
17.4.4
SQLチューニング・アドバイザの実行
17.5
SQLチューニング・セット
17.5.1
SQLチューニング・セットの作成
17.5.2
SQLチューニング・セットのロード
17.5.3
SQLチューニング・セットの内容の表示
17.5.4
SQLチューニング・セットの変更
17.5.5
SQLチューニング・セットの転送
17.5.6
SQLチューニング・セットの削除
17.5.7
SQLチューニング・セットに対するその他の操作
17.6
SQLプロファイル
17.6.1
SQLプロファイルの受入れ
17.6.2
SQLプロファイルの変更
17.6.3
SQLプロファイルの削除
17.7
SQLチューニング情報ビュー
18
SQLアクセス・アドバイザ
18.1
SQLアクセス・アドバイザの概要
18.1.1
SQLアクセス・アドバイザの使用方法の概要
18.2
SQLアクセス・アドバイザの使用方法
18.2.1
SQLアクセス・アドバイザの使用手順
18.2.2
SQLアクセス・アドバイザの使用に必要な権限
18.2.3
タスクとテンプレートの設定
18.2.4
SQLアクセス・アドバイザのワークロード
18.2.5
推奨事項の処理
18.2.6
クイック・チューニングの実行
18.2.7
タスクの管理
18.2.8
SQLアクセス・アドバイザの定数の使用方法
18.2.9
SQLアクセス・アドバイザの使用例
18.3
高速リフレッシュとクエリー・リライトのためのマテリアライズド・ビューのチューニング
18.3.1
DBMS_ADVISOR.TUNE_MVIEWプロシージャ
19
オプティマイザ・ヒントの使用方法
19.1
オプティマイザ・ヒントの理解
19.1.1
ヒントの型
19.1.2
カテゴリ別のヒント
19.2
ヒントの指定方法
19.2.1
ヒント全セットの指定方法
19.2.2
ヒントにおける問合せブロックの指定方法
19.2.3
グローバル表のヒントの指定方法
19.2.4
複合索引ヒントの指定方法
19.3
ビューでのヒントの使用方法
19.3.1
ヒントおよび複合ビュー
19.3.2
ヒントとマージ可能ビュー
19.3.3
ヒントとマージ不可能ビュー
20
プラン・スタビリティの使用方法
20.1
実行計画を保持するためのプラン・スタビリティの使用方法
20.1.1
プラン・スタビリティでのヒントの使用方法
20.1.2
アウトラインの格納
20.1.3
プラン・スタビリティの有効化
20.1.4
付属パッケージを使用したストアド・アウトラインの管理
20.1.5
アウトラインの作成
20.1.6
ストアド・アウトラインの使用方法
20.1.7
アウトライン・データの表示
20.1.8
アウトライン表の移動
20.2
問合せオプティマイザのアップグレードによるプラン・スタビリティの使用方法
20.2.1
RBOから問合せオプティマイザへの移行
20.2.2
問合せオプティマイザを使用する新規Oracleリリースへの移行
21
アプリケーション・トレース・ツールの使用方法
21.1
End to End Application Tracing
21.1.1
エンドツーエンド・トレースにおける統計収集の有効化および無効化
21.1.2
End to End Application Tracingの収集した統計の表示
21.1.3
エンドツーエンド・トレースにおける有効化および無効化
21.1.4
エンドツーエンド・トレースにおける使用可能なトレースの表示
21.2
trcsessユーティリティの使用方法
21.2.1
trcsessの構文
21.2.2
trcsessの出力例
21.3
SQLトレースとTKPROFについて
21.3.1
SQLトレース機能について
21.3.2
TKPROFについて
21.4
SQLトレース機能とTKPROFの使用方法
21.4.1
手順1: トレース・ファイル管理用の初期化パラメータの設定
21.4.2
手順2: SQLトレース機能を使用可能にする方法
21.4.3
手順3: TKPROFによるトレース・ファイルのフォーマット
21.4.4
手順4: TKPROF出力の解釈
21.4.5
手順5: SQLトレース機能統計の格納
21.5
TKPROFの解釈における誤りの回避
21.5.1
引数トラップの回避
21.5.2
読取り一貫性トラップの回避
21.5.3
スキーマ・トラップの回避
21.5.4
タイム・トラップの回避
21.5.5
トリガー・トラップの回避
21.6
TKPROFの出力例
21.6.1
TKPROFヘッダーのサンプル
21.6.2
TKPROF本体のサンプル
21.6.3
TKPROFサマリーのサンプル
用語集
索引