• 検索結果がありません。

Oracle Databaseパフォーマンス・チューニング・ガイド, 10gリリース2(10.2)

N/A
N/A
Protected

Academic year: 2021

シェア "Oracle Databaseパフォーマンス・チューニング・ガイド, 10gリリース2(10.2)"

Copied!
474
0
0

読み込み中.... (全文を見る)

全文

(1)

10g リリース 2(10.2) 部品番号 部品番号 部品番号 部品番号 : B19207-02 2008 年 5 月

(2)

原本名 : Oracle Database Performance Tuning Guide, 10g Release 2 (10.2) 原本部品番号 : B14211-03

原本著者 : Immanuel Chan

原本協力者 : Aditya Agrawal, James Barlow, Vladimir Barriere, Ruth Baylis, Eric Belden, Pete Belknap, Qiang Cao, Sunil Chakkappen, Sumanta Chatterjee, Alvaro Corena, Benoit Dageville, Dinesh Das, Karl Dias, Vinayagam Djegaradjane, Harvey Eneman, Bjorn Engsig, Mike Feng, Cecilia Gervasio, Bhaskar Ghosh, Ray Glasstone, Leslie Gloyd, Prabhaker Gongloor, Connie Dialeris Green, Russell Green, Joan Gregoire, Lester Gutierrez, Lex de Haan, Karl Haas, Brian Hirano, Lilian Hobbs, Andrew Holdsworth, Mamdouh Ibrahim, Hakan Jacobsson, Christopher Jones, Srinivas Kareenhalli, Feroz Khan, Stella Kister, Paul Lane, Sue K. Lee, Herve Lejeune, Yunrui Li, Juan Loaiza, Diana Lorentz, George Lumpkin, Joe McDonald, Bill McKenna, Mughees Minhas, Valarie Moore, Sujatha Muthulingam, Gary Ngai, Michael Orlowski, Kant C. Patel, Richard Powell, Mark Ramacher, Shankar Raman, Yair Sarig, Uri Shaft, Vinay Srihari, Sankar Subramanian, Margaret Susairaj, Hal Takahara, Misha Tyulenev, Mark Van de Wiel, Venkateshwaran Venkataramani, Nitin Vengurlekar, Stephen Vivian, Simon Watt, Andrew Witkowski, Graham Wood, Khaled Yagoub, Mohamed Zait

Copyright © 2000, 2008, Oracle. All rights reserved.

制限付権利の説明 このプログラム(ソフトウェアおよびドキュメントを含む)には、オラクル社およびその関連会社に所有権 のある情報が含まれています。このプログラムの使用または開示は、オラクル社およびその関連会社との契 約に記された制約条件に従うものとします。著作権、特許権およびその他の知的財産権と工業所有権に関す る法律により保護されています。 独立して作成された他のソフトウェアとの互換性を得るために必要な場合、もしくは法律によって規定され る場合を除き、このプログラムのリバース・エンジニアリング、逆アセンブル、逆コンパイル等は禁止され ています。 このドキュメントの情報は、予告なしに変更される場合があります。オラクル社およびその関連会社は、こ のドキュメントに誤りが無いことの保証は致し兼ねます。これらのプログラムのライセンス契約で許諾され ている場合を除き、プログラムを形式、手段(電子的または機械的)、目的に関係なく、複製または転用す ることはできません。 このプログラムが米国政府機関、もしくは米国政府機関に代わってこのプログラムをライセンスまたは使用 する者に提供される場合は、次の注意が適用されます。

U.S. GOVERNMENT RIGHTS

Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial Computer Software--Restricted Rights (June 1987). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このプログラムは、核、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーションへの用途 を目的としておりません。このプログラムをかかる目的で使用する際、上述のアプリケーションを安全に使 用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用 者の責任となります。万一かかるプログラムの使用に起因して損害が発生いたしましても、オラクル社およ びその関連会社は一切責任を負いかねます。

Oracle、JD Edwards、PeopleSoft、Siebel は米国 Oracle Corporation およびその子会社、関連会社の登録商 標です。その他の名称は、他社の商標の可能性があります。 このプログラムは、第三者の Web サイトへリンクし、第三者のコンテンツ、製品、サービスへアクセスす ることがあります。オラクル社およびその関連会社は第三者の Web サイトで提供されるコンテンツについ ては、一切の責任を負いかねます。当該コンテンツの利用は、お客様の責任になります。第三者の製品また はサービスを購入する場合は、第三者と直接の取引となります。オラクル社およびその関連会社は、第三者 の製品およびサービスの品質、契約の履行(製品またはサービスの提供、保証義務を含む)に関しては責任 を負いかねます。また、第三者との取引により損失や損害が発生いたしましても、オラクル社およびその関 連会社は一切の責任を負いかねます。

(3)

はじめに

はじめに

はじめに

はじめに

... xxi 対象読者 ... xxii ドキュメントのアクセシビリティについて ... xxii 関連ドキュメント ... xxiii 表記規則 ... xxiii サポートおよびサービス ... xxiv

Oracle のパフォーマンスの新機能

のパフォーマンスの新機能

のパフォーマンスの新機能

のパフォーマンスの新機能

... xxv

第 I 部

パフォーマンス・チューニング

パフォーマンス・チューニング

パフォーマンス・チューニング

パフォーマンス・チューニング

1

パフォーマンス・チューニングの概要

パフォーマンス・チューニングの概要

パフォーマンス・チューニングの概要

パフォーマンス・チューニングの概要

パフォーマンス・チューニングの概要 パフォーマンス・チューニングの概要 パフォーマンス・チューニングの概要 パフォーマンス・チューニングの概要 ... 1-2 パフォーマンス計画 ... 1-2 インスタンスのチューニング ... 1-2 パフォーマンスの原理 ... 1-2 ベースライン ... 1-2 症状および問題点 ... 1-3 チューニングの時期 ... 1-3 プロアクティブな監視 ... 1-3 ボトルネックの解消 ... 1-4 SQL チューニング ... 1-4 問合せオプティマイザおよび実行計画 ... 1-4 パフォーマンス・チューニング機能およびツールの概要 パフォーマンス・チューニング機能およびツールの概要 パフォーマンス・チューニング機能およびツールの概要 パフォーマンス・チューニング機能およびツールの概要 ... 1-5 自動パフォーマンス・チューニング機能 ... 1-5 その他の Oracle ツール ... 1-6 V$ パフォーマンス・ビュー ... 1-6

(4)

2

パフォーマンスを考慮した設計と開発

パフォーマンスを考慮した設計と開発

パフォーマンスを考慮した設計と開発

パフォーマンスを考慮した設計と開発

オラクル社の新しい方法論 オラクル社の新しい方法論 オラクル社の新しい方法論 オラクル社の新しい方法論 ... 2-2 投資の選択肢について 投資の選択肢について 投資の選択肢について 投資の選択肢について ... 2-2 拡張性について 拡張性について 拡張性について 拡張性について ... 2-3 拡張性とは ... 2-3 システムの拡張性 ... 2-4 拡張性を妨げる要因 ... 2-5 システム・アーキテクチャ システム・アーキテクチャ システム・アーキテクチャ システム・アーキテクチャ ... 2-6 ハードウェア・コンポーネントとソフトウェア・コンポーネント ... 2-6 ハードウェア・コンポーネント ... 2-6 CPU ... 2-6 メモリー ... 2-6 I/O サブシステム ... 2-6 ネットワーク ... 2-6 ソフトウェア・コンポーネント ... 2-6 ユーザー・インタフェースの管理 ... 2-7 ビジネス・ロジックの実装 ... 2-7 ユーザー要求とリソース割当ての管理 ... 2-7 データおよびトランザクションの管理 ... 2-7 要件に合った正しいシステム・アーキテクチャの構成 ... 2-8 アプリケーション設計の原則アプリケーション設計の原則アプリケーション設計の原則 ... 2-10アプリケーション設計の原則 アプリケーション設計の簡潔さ ... 2-10 データのモデル化 ... 2-10 表および索引の設計 ... 2-11 索引への列の追加または索引構成表の使用 ... 2-11 異なる索引タイプの使用 ... 2-11 B ツリー索引 ... 2-11 ビットマップ索引 ... 2-11 ファンクション索引 ... 2-12 パーティション索引 ... 2-12 逆キー索引 ... 2-12 索引のコストの算出 ... 2-12 索引内のシリアライズ ... 2-12 索引内の列の順序付け ... 2-12 ビューの使用 ... 2-13 SQL の実行効率 ... 2-13 アプリケーションの実装 ... 2-14 アプリケーション開発の傾向 ... 2-16 ワークロードのテスト、モデル化および実装 ワークロードのテスト、モデル化および実装 ワークロードのテスト、モデル化および実装 ワークロードのテスト、モデル化および実装 ... 2-17 データのサイズ設定 ... 2-17 ワークロードの見積り ... 2-17 類似システムからの推定 ... 2-17 ベンチマーク ... 2-18 アプリケーションのモデル化 ... 2-18 設計のテスト、デバッグおよび検証 ... 2-18

(5)

パフォーマンス・チェックリスト ... 2-20

3

パフォーマンス改善方法

パフォーマンス改善方法

パフォーマンス改善方法

パフォーマンス改善方法

Oracle のパフォーマンス改善方法のパフォーマンス改善方法のパフォーマンス改善方法のパフォーマンス改善方法 ... 3-2 Oracle のパフォーマンス改善方法の手順 ... 3-3 パフォーマンスを概念的にモデル化する際の意思決定プロセスの例 ... 3-4 Oracle システムにおける誤りの上位 10 項目 ... 3-5 パフォーマンスの緊急の問題に対処する方法 パフォーマンスの緊急の問題に対処する方法 パフォーマンスの緊急の問題に対処する方法 パフォーマンスの緊急の問題に対処する方法 ... 3-7 パフォーマンスの緊急の問題に対処する方法の手順 ... 3-7

第 III 部

インスタンスのパフォーマンスの最適化

インスタンスのパフォーマンスの最適化

インスタンスのパフォーマンスの最適化

インスタンスのパフォーマンスの最適化

4

パフォーマンスを考慮したデータベースの構成

パフォーマンスを考慮したデータベースの構成

パフォーマンスを考慮したデータベースの構成

パフォーマンスを考慮したデータベースの構成

初期インスタンス構成のパフォーマンスの考慮事項 初期インスタンス構成のパフォーマンスの考慮事項 初期インスタンス構成のパフォーマンスの考慮事項 初期インスタンス構成のパフォーマンスの考慮事項 ... 4-2 初期化パラメータ ... 4-2 UNDO 領域の構成 ... 4-3 REDO ログ・ファイルのサイズ指定 ... 4-4 追加表領域の作成 ... 4-4 永続的な表領域の作成 : 自動セグメント領域管理 ... 4-5 一時表領域の作成 ... 4-5 適切なパフォーマンスを得る表の作成とメンテナンス 適切なパフォーマンスを得る表の作成とメンテナンス 適切なパフォーマンスを得る表の作成とメンテナンス 適切なパフォーマンスを得る表の作成とメンテナンス ... 4-6 表圧縮 ... 4-6 圧縮係数の見積り ... 4-6 チューニングによる圧縮率向上 ... 4-6 未使用領域の解放 ... 4-7 データの索引付け ... 4-7 ソート用データのメモリーの指定 ... 4-7 共有サーバーのパフォーマンスの考慮事項 共有サーバーのパフォーマンスの考慮事項 共有サーバーのパフォーマンスの考慮事項 共有サーバーのパフォーマンスの考慮事項 ... 4-8 ディスパッチャ固有のビューを使用する競合の識別 ... 4-8 ディスパッチャ・プロセスの競合の低減 ... 4-9 共有サーバー・プロセスの競合の識別 ... 4-10

5

自動パフォーマンス統計

自動パフォーマンス統計

自動パフォーマンス統計

自動パフォーマンス統計

データ収集の概要 データ収集の概要 データ収集の概要 データ収集の概要 ... 5-2 データベース統計 ... 5-3 待機イベント ... 5-3 時間モデル統計 ... 5-3 Active Session History(ASH) ... 5-4 システム統計とセッション統計 ... 5-4 オペレーティング・システム統計 ... 5-5 CPU 統計 ... 5-5 仮想メモリー統計 ... 5-5 ディスク統計 ... 5-6 ネットワーク統計 ... 5-6 オペレーティング・システムのデータ収集ツール ... 5-6

(6)

スナップショット ... 5-8 ベースライン ... 5-9 領域使用量 ... 5-9 自動ワークロード・リポジトリの管理 自動ワークロード・リポジトリの管理 自動ワークロード・リポジトリの管理 自動ワークロード・リポジトリの管理 ... 5-10 スナップショットの管理 ... 5-10 スナップショットの作成 ... 5-10 スナップショットの削除 ... 5-11 スナップショット設定の変更 ... 5-11 ベースラインの管理 ... 5-12 ベースラインの作成 ... 5-12 ベースラインの削除 ... 5-12 自動ワークロード・リポジトリ・データの転送 ... 5-13 AWR データの抽出 ... 5-13 AWR データのロード ... 5-14 自動ワークロード・リポジトリ・ビューの使用 ... 5-15 自動ワークロード・リポジトリ・レポートの生成 ... 5-16 awrrpt.sql レポートの実行 ... 5-16 awrrpti.sql レポートの実行 ... 5-17 awrsqrpt.sql レポートの実行 ... 5-17 awrsqrpi.sql レポートの実行 ... 5-18 awrddrpt.sql レポートの実行 ... 5-18 awrddrpi.sql レポートの実行 ... 5-19 Active Session History レポートの生成 ... 5-20 ashrpt.sql レポートの実行 ... 5-20 ashrpti.sql レポートの実行 ... 5-21

6

自動パフォーマンス診断

自動パフォーマンス診断

自動パフォーマンス診断

自動パフォーマンス診断

Automatic Database Diagnostic Monitor の概要の概要の概要 ... 6-2の概要

Automatic Database Diagnostic Monitor ... 6-3 ADDM の分析結果 ... 6-4 ADDM の例 ... 6-4 ADDM の設定 ... 6-5 ADDM を使用したデータベース・パフォーマンスの問題の診断 ... 6-6 addmrpt.sql を使用した ADDM の実行 ... 6-6 DBMS_ADVISOR API を使用した ADDM の実行 ... 6-7 ADDM 情報を表示するビュー ... 6-9

7

メモリーの構成と使用方法

メモリーの構成と使用方法

メモリーの構成と使用方法

メモリーの構成と使用方法

メモリー割当ての問題について メモリー割当ての問題について メモリー割当ての問題について メモリー割当ての問題について ... 7-2 Oracle メモリー・キャッシュ ... 7-2 自動共有メモリー管理 ... 7-2 キャッシュ・サイズの動的な変更 ... 7-3 動的サイズ変更操作に関する情報の表示 ... 7-4 アプリケーションの考慮事項 ... 7-4

(7)

主メモリーへの SGA の格納 ... 7-5 個々のユーザーへの十分なメモリーの割当て ... 7-5 構成の繰返し ... 7-6 バッファ・キャッシュの構成と使用方法 バッファ・キャッシュの構成と使用方法 バッファ・キャッシュの構成と使用方法 バッファ・キャッシュの構成と使用方法 ... 7-6 バッファ・キャッシュの効果的な使用 ... 7-6 バッファ・キャッシュのサイズ設定 ... 7-6 バッファ・キャッシュ・アドバイザの統計 ... 7-6 V$DB_CACHE_ADVICE の使用 ... 7-6 バッファ・キャッシュ・ヒット率の計算 ... 7-8 バッファ・キャッシュ・アドバイザ統計の解釈および使用方法 ... 7-9 バッファ・キャッシュに割り当てられたメモリーの増加 ... 7-10 バッファ・キャッシュに割り当てられたメモリーの削減 ... 7-10 複数バッファ・プールについて ... 7-11 大きいセグメントへのランダム・アクセス ... 7-11 Oracle Real Application Cluster のインスタンス ... 7-11 複数バッファ・プールの使用方法 ... 7-12 V$DB_CACHE_ADVICE 内のバッファ・プール・データ ... 7-12 バッファ・プール・ヒット率 ... 7-12 プール内に多くのバッファを持つセグメントの判断 ... 7-13 KEEP プール ... 7-14 RECYCLE プール ... 7-15 共有プールとラージ・プールの構成および使用方法 共有プールとラージ・プールの構成および使用方法 共有プールとラージ・プールの構成および使用方法 共有プールとラージ・プールの構成および使用方法 ... 7-15 共有プールの概念 ... 7-16 ディクショナリ・キャッシュの概念 ... 7-16 ライブラリ・キャッシュの概念 ... 7-16 SQL 共有基準 ... 7-17 共有プールの効果的な使用方法 ... 7-18 共有カーソル ... 7-18 単一のユーザーのログインおよび修飾表の参照 ... 7-19 PL/SQL の使用方法 ... 7-19 DDL の実行の回避 ... 7-19 キャッシュ順序番号 ... 7-20 カーソルのアクセスおよび管理 ... 7-20 OCI による解析コールの低減 ... 7-20 Oracle プリコンパイラによる解析コールの低減 ... 7-20 SQLJ による解析コールの低減 ... 7-21 JDBC による解析コールの低減 ... 7-21 Oracle Forms による解析コールの低減 ... 7-21 共有プールのサイズ設定 ... 7-21 共有プール : ライブラリ・キャッシュの統計 ... 7-21 V$LIBRARYCACHE ... 7-22 共有プールのアドバイザ統計 ... 7-23 V$SHARED_POOL_ADVICE ... 7-23 V$LIBRARY_CACHE_MEMORY ... 7-23 V$JAVA_POOL_ADVICE および V$JAVA_LIBRARY_CACHE_MEMORY ... 7-23 共有プール : ディクショナリ・キャッシュの統計 ... 7-24

(8)

ライブラリ・キャッシュへの追加のメモリー割当て ... 7-25 データ・ディクショナリ・キャッシュへの追加のメモリーの割当て ... 7-25 メモリー割当ての減少 ... 7-26 ラージ・プールの使用 ... 7-26 共有サーバー・アーキテクチャでのラージ・プールと共有プールのチューニング ... 7-26 共有サーバーの UGA 記憶域のための効果的な設定の判別 ... 7-27 V$SESSTAT ビューでのシステム統計のチェック ... 7-27 PRIVATE_SGA の設定による各ユーザー・セッションのメモリー使用量の制限 ... 7-28 3 層の接続でのメモリー使用の低減 ... 7-28 CURSOR_SPACE_FOR_TIME の使用 ... 7-29 セッション・カーソルのキャッシュ ... 7-29 予約プールの構成 ... 7-30 SHARED_POOL_RESERVED_SIZE の使用 ... 7-30 SHARED_POOL_RESERVED_SIZE が小さすぎる場合 ... 7-31 SHARED_POOL_RESERVED_SIZE が大きすぎる場合 ... 7-31 SHARED_POOL_SIZE が小さすぎる場合 ... 7-31 除去防止のためのラージ・オブジェクトの保存 ... 7-31 既存のアプリケーション用の CURSOR_SHARING ... 7-32 類似 SQL 文 ... 7-32 CURSOR_SHARING ... 7-32 CURSOR_SHARING を使用する場合 ... 7-33 接続の維持 ... 7-33 REDO ログ・バッファの構成および使用ログ・バッファの構成および使用ログ・バッファの構成および使用ログ・バッファの構成および使用 ... 7-34 ログ・バッファのサイズ設定 ... 7-35 ログ・バッファの統計 ... 7-35 PGA メモリー管理メモリー管理メモリー管理 ... 7-35メモリー管理 自動 PGA メモリーの構成 ... 7-37 PGA_AGGREGATE_TARGET の初期設定 ... 7-37 自動 PGA メモリー管理のパフォーマンスの監視 ... 7-38 V$PGASTAT ... 7-38 V$PROCESS ... 7-40 V$PROCESS_MEMORY ... 7-40 V$SQL_WORKAREA_HISTOGRAM ... 7-40 V$SQL_WORKAREA_ACTIVE ... 7-42 V$SQL_WORKAREA ... 7-42 PGA_AGGREGATE_TARGET のチューニング ... 7-44 V$PGA_TARGET_ADVICE ... 7-44 PGA_AGGREGATE_TARGET のチューニング方法 ... 7-46 V$PGA_TARGET_ADVICE_HISTOGRAM ... 7-47 V$SYSSTAT および V$SESSTAT ... 7-48 OLAP_PAGE_POOL_SIZE の構成 ... 7-48

(9)

I/O の理解の理解の理解の理解 ... 8-2 I/O の基本構成の基本構成の基本構成の基本構成 ... 8-2 オペレーティング・システムまたはハードウェアのストライプ化を使用したファイルのレイアウト ... 8-2 要求された I/O サイズ ... 8-3 I/O リクエストの同時実行性 ... 8-3 物理ストライプ境界とブロック・サイズ境界との位置合せ ... 8-4 提案されたシステムの管理可能性 ... 8-4 手動による I/O の分散 ... 8-5 ファイルを分割する場合 ... 8-5 表、索引および TEMP 表領域 ... 8-6 REDO ログ・ファイル ... 8-6 アーカイブ REDO ログ ... 8-6 3 つの構成サンプル ... 8-7 すべてのディスクにまたがったすべての内容のストライプ化 ... 8-7 異なるディスクへのアーカイブ・ログの移動 ... 8-7 個別のディスクへの REDO ログの移動 ... 8-8 Oracle Managed Files ... 8-8 Oracle Managed Files のチューニング ... 8-8 データ・ブロック・サイズの選択 ... 8-9 読込み ... 8-9 書込み ... 8-9 ブロック・サイズの長所と短所 ... 8-10

9

オペレーティング・システム・リソース

オペレーティング・システム・リソース

オペレーティング・システム・リソース

オペレーティング・システム・リソース

オペレーティング・システムのパフォーマンスの問題の理解 オペレーティング・システムのパフォーマンスの問題の理解 オペレーティング・システムのパフォーマンスの問題の理解 オペレーティング・システムのパフォーマンスの問題の理解 ... 9-2 オペレーティング・システムのキャッシュの使用 ... 9-2 非同期 I/O ... 9-3 FILESYSTEMIO_OPTIONS 初期化パラメータ ... 9-3 メモリー使用量 ... 9-3 バッファ・キャッシュの制限 ... 9-3 メモリー使用量に影響を与えるパラメータ ... 9-3 オペレーティング・システムのリソース・マネージャの使用 ... 9-4 オペレーティング・システムの問題の解決 オペレーティング・システムの問題の解決 オペレーティング・システムの問題の解決 オペレーティング・システムの問題の解決 ... 9-5 UNIX ベースのシステムのパフォーマンスに関するヒント ... 9-5 Windows システムのパフォーマンスに関するヒント ... 9-5 HP OpenVMS システムのパフォーマンスに関するヒント ... 9-5 CPU についてについてについてについて ... 9-6 システムの システムの システムの システムの CPU 使用率の調査使用率の調査使用率の調査使用率の調査 ... 9-8 メモリー管理のチェック ... 9-9 ページングとスワッピング ... 9-9 大きすぎるページ表 ... 9-9 I/O 管理のチェック ... 9-9 ネットワーク管理のチェック ... 9-9 プロセス管理のチェック ... 9-9 スケジューリングとスイッチング ... 9-9 コンテキストのスイッチング ... 9-9 ポスト・ウェイト・ドライバ ... 9-9

(10)

オペレーティング・システムの新規プロセスの開始 ... 9-10

10

パフォーマンス・ビューを使用したインスタンスのチューニング

パフォーマンス・ビューを使用したインスタンスのチューニング

パフォーマンス・ビューを使用したインスタンスのチューニング

パフォーマンス・ビューを使用したインスタンスのチューニング

インスタンスのチューニング手順 インスタンスのチューニング手順 インスタンスのチューニング手順 インスタンスのチューニング手順 ... 10-2 問題の定義 ... 10-2 ホスト・システムの検査 ... 10-3 CPU の使用率 ... 10-3 Oracle 以外のプロセス ... 10-3 Oracle プロセス ... 10-3 Oracle CPU 統計 ... 10-4 CPU 統計の解釈 ... 10-4 I/O の問題の検出 ... 10-4 ネットワーク ... 10-5 Oracle 統計の調査 ... 10-5 統計収集のレベルの設定 ... 10-5 V$STATISTICS_LEVEL ... 10-6 待機イベント ... 10-6 待機イベント統計を含む動的パフォーマンス・ビュー ... 10-6 システム統計 ... 10-7 V$ACTIVE_SESSION_HISTORY ... 10-8 V$SYSSTAT ... 10-8 V$FILESTAT ... 10-8 V$ROLLSTAT ... 10-8 V$ENQUEUE_STAT ... 10-8 V$LATCH ... 10-8 セグメント・レベルの統計 ... 10-8 変更の実装および測定 ... 10-9 Oracle 統計の解釈統計の解釈統計の解釈統計の解釈 ... 10-9 負荷の検査 ... 10-9 負荷の変更 ... 10-9 高いアクティビティ率 ... 10-10 待機イベント統計を使用したボトルネックへのドリルダウン ... 10-10 待機イベントおよび潜在的な原因の表 ... 10-12 追加された統計情報 ... 10-13 REDO ログ領域要求統計 ... 10-13 読取り一貫性 ... 10-13 継続行による表フェッチ ... 10-14 解析関連の統計 ... 10-14 待機イベント統計 待機イベント統計 待機イベント統計 待機イベント統計 ... 10-15 SQL*Net イベント ... 10-16 SQL*Net message from client ... 10-16 ネットワーク・ボトルネック ... 10-16 クライアント・プロセス上のリソース・ボトルネック ... 10-17 SQL*Net message from dblink ... 10-17 SQL*Net more data to client ... 10-17

(11)

処置 ... 10-18 セグメント・ヘッダー ... 10-18 データ・ブロック ... 10-19 UNDO ヘッダー ... 10-19 undo block ... 10-19 db file scattered read ... 10-19 処置 ... 10-19 過剰な I/O の管理 ... 10-19 不十分な I/O 分散 ... 10-20 I/O を待機しているセッションで実行された SQL 文の検索 ... 10-20 I/O を必要とするオブジェクトの検索 ... 10-20 db file sequential read ... 10-21 処置 ... 10-21 direct path read および direct path read temp ... 10-22 原因 ... 10-22 処置 ... 10-22 ディスクでのソート ... 10-22 全表スキャン ... 10-22 ハッシュ領域サイズ ... 10-22 direct path write および direct path write temp ... 10-23 原因 ... 10-23 処置 ... 10-23 enqueue(enq:)待機 ... 10-23 ロックおよびロック・ホルダーの検索 ... 10-24 処置 ... 10-24 ST エンキュー ... 10-24 HW エンキュー ... 10-24 TM エンキュー ... 10-24 TX エンキュー ... 10-25 events in wait class other ... 10-25 free buffer waits ... 10-26 原因 ... 10-26 処置 ... 10-26 書込み ... 10-26 キャッシュが小さすぎる場合 ... 10-26 キャッシュが 1 つの DBWR に対して大きすぎる場合 ... 10-26 複数のデータベース・ライター(DBWR)・プロセスまたは I/O スレーブの検討 ... 10-26 DB_WRITER_PROCESSES ... 10-26 DBWR_IO_SLAVES ... 10-27 複数の DBWR プロセスと I/O スレーブの選択 ... 10-27 ラッチ・イベント ... 10-28 処置 ... 10-28 例 : 現在待機されているラッチの検索 ... 10-28 共有プールとライブラリ・キャッシュ・ラッチの競合 ... 10-29 非共有 SQL ... 10-29 再解析された共有可能な SQL ... 10-30 セッション別 ... 10-30 キャッシュ・バッファ LRU 連鎖 ... 10-31

(12)

log file parallel write ... 10-31 library cache pin ... 10-32 library cache lock ... 10-32 log buffer space ... 10-32 log file switch ... 10-32 処置 ... 10-32 log file sync ... 10-33 rdbms ipc reply ... 10-33 アイドル待機イベント アイドル待機イベント アイドル待機イベント アイドル待機イベント ... 10-34

第 IV 部 

部 

部 

部 SQL 文の最適化

文の最適化

文の最適化

文の最適化

11

SQL チューニングの概要

チューニングの概要

チューニングの概要

チューニングの概要

SQL チューニングの概要チューニングの概要チューニングの概要チューニングの概要 ... 11-2 チューニングの目的 チューニングの目的 チューニングの目的 チューニングの目的 ... 11-2 ワークロードの削減 ... 11-2 ワークロードの均衡化 ... 11-2 ワークロードのパラレル化 ... 11-2 高負荷 高負荷 高負荷 高負荷 SQL の識別の識別の識別の識別 ... 11-3 多くのリソースを消費する SQL の識別 ... 11-3 特定のプログラムのチューニング ... 11-3 アプリケーションのチューニング / 負荷の軽減 ... 11-3 識別した SQL に関するデータの収集 ... 11-4 チューニング中に収集する情報 ... 11-4 自動 自動 自動 自動 SQL チューニング機能チューニング機能チューニング機能 ... 11-5チューニング機能 効率的な 効率的な 効率的な 効率的な SQL 文の開発文の開発文の開発 ... 11-6文の開発 オプティマイザ統計の確認 ... 11-6 実行計画の検討 ... 11-6 SQL 文の再構成 ... 11-7 AND と = を使用した条件の組立て ... 11-7 WHERE 句での変換列の回避 ... 11-7 特定のタスクに対する専用の SQL 文の作成 ... 11-8 副問合せに対する EXISTS と IN の使用 ... 11-9 例 1: IN の使用 : 副問合せ内の選択的フィルタ ... 11-10 例 2: EXISTS の使用 : 親の中の選択的述語 ... 11-11 ヒントによるアクセス・パスおよび結合順序の制御 ... 11-12 ビューを管理するときの注意 ... 11-13 複合ビューを結合するときの注意 ... 11-13 ビューの再利用禁止 ... 11-14 副問合せのネストを解除するときの注意 ... 11-14 ビューへの外部結合を実行するときの注意 ... 11-14 中間結果の格納 ... 11-15 索引の再構成 ... 11-15 トリガーおよび制約の変更または無効化 ... 11-15 データの再構成 ... 11-15 実行計画の長期的な保持 ... 11-16

(13)

RETURNING 句を持つ DML の使用 ... 11-17 1 つの文での必要なすべてのデータの変更 ... 11-17

12

自動

自動

自動

自動 SQL チューニング

チューニング

チューニング

チューニング

自動 自動 自動 自動 SQL チューニングの概要チューニングの概要チューニングの概要 ... 12-2チューニングの概要 問合せオプティマイザのモード ... 12-2 標準モード ... 12-2 チューニング・モード ... 12-2 チューニング分析のタイプ ... 12-3 統計分析 ... 12-3 SQL プロファイリング ... 12-3 アクセス・パス分析 ... 12-4 SQL 構造分析 ... 12-4 SQL チューニング・アドバイザチューニング・アドバイザチューニング・アドバイザチューニング・アドバイザ ... 12-5 入力ソース ... 12-5 チューニング・オプション ... 12-6 アドバイザ出力 ... 12-6 SQL チューニング・アドバイザ API の使用方法 ... 12-6 SQL チューニング・タスクの作成 ... 12-7 SQL チューニング・タスクの実行 ... 12-8 SQL チューニング・タスクのステータスのチェック ... 12-8 SQL チューニング・アドバイザの進捗のチェック ... 12-8 SQL チューニング・タスクの結果の表示 ... 12-9 SQL チューニング・タスクに関するその他の操作 ... 12-9 SQL チューニング・セットチューニング・セットチューニング・セットチューニング・セット ... 12-9 SQL チューニング・セットの作成 ... 12-11 SQL チューニング・セットのロード ... 12-11 SQL チューニング・セットの内容の表示 ... 12-11 SQL チューニング・セットの変更 ... 12-12 SQL チューニング・セットの転送 ... 12-12 SQL チューニング・セットの削除 ... 12-13 SQL チューニング・セットに対するその他の操作 ... 12-13 SQL プロファイルプロファイルプロファイルプロファイル ... 12-13 SQL プロファイルの受入れ ... 12-14 SQL プロファイルの変更 ... 12-14 SQL プロファイルの削除 ... 12-15 SQL チューニング情報ビューチューニング情報ビューチューニング情報ビューチューニング情報ビュー ... 12-15

13

問合せオプティマイザ

問合せオプティマイザ

問合せオプティマイザ

問合せオプティマイザ

オプティマイザ操作 オプティマイザ操作 オプティマイザ操作 オプティマイザ操作 ... 13-2 オプティマイザの目標の選択 オプティマイザの目標の選択 オプティマイザの目標の選択 オプティマイザの目標の選択 ... 13-3 OPTIMIZER_MODE 初期化パラメータ ... 13-4 問合せオプティマイザの目標変更に対するオプティマイザ SQL のヒント ... 13-4 データ・ディクショナリ内の問合せオプティマイザ統計 ... 13-5

(14)

問合せオプティマイザの動作の制御 ... 13-6 問合せオプティマイザについて 問合せオプティマイザについて 問合せオプティマイザについて 問合せオプティマイザについて ... 13-7 問合せオプティマイザの構成要素 ... 13-8 問合せの変換 ... 13-8 ビューのマージ ... 13-8 述語のプッシュ ... 13-9 副問合せのネスト解除 ... 13-9 マテリアライズド・ビューを使用したクエリー・リライト ... 13-9 ユーザー定義のバインド変数の照合 ... 13-9 見積り ... 13-9 選択性 ... 13-10 カーディナリティ ... 13-10 コスト ... 13-10 計画の生成 ... 13-11 実行計画の読み方と理解 ... 13-11 EXPLAIN PLAN の概要 ... 13-11 実行計画のステップ ... 13-13 問合せオプティマイザのアクセス・パスについて 問合せオプティマイザのアクセス・パスについて 問合せオプティマイザのアクセス・パスについて 問合せオプティマイザのアクセス・パスについて ... 13-14 全表スキャン ... 13-14 大量データにアクセスする場合に全表スキャンの方が高速になる理由 ... 13-14 オプティマイザが全表スキャンを使用する場合 ... 13-14 索引の欠落 ... 13-14 大量のデータ ... 13-15 小さい表 ... 13-15 高い並列度 ... 13-15 全表スキャンのヒント ... 13-15 パラレル問合せの実行 ... 13-15 ROWID スキャン ... 13-16 オプティマイザが ROWID を使用する場合 ... 13-16 索引スキャン ... 13-16 ブロックの I/O(行ではなく)の想定 ... 13-17 索引一意スキャン ... 13-17 オプティマイザが索引一意スキャンを使用する場合 ... 13-17 索引一意スキャンのヒント ... 13-18 索引レンジ・スキャン ... 13-18 オプティマイザが索引レンジ・スキャンを使用する場合 ... 13-18 索引レンジ・スキャンのヒント ... 13-18 索引レンジ・スキャン降順 ... 13-19 オプティマイザが索引レンジ・スキャン降順を使用する場合 ... 13-19 索引レンジ・スキャン降順のヒント ... 13-19 索引スキップ・スキャン ... 13-19 全体スキャン ... 13-20 高速全索引スキャン ... 13-20 高速全索引スキャンのヒント ... 13-20 索引結合 ... 13-20 索引結合のヒント ... 13-20 ビットマップ索引 ... 13-20

(15)

サンプル表スキャン ... 13-21 問合せオプティマイザによるアクセス・パスの選択方法 ... 13-21 結合について 結合について 結合について 結合について ... 13-22 問合せオプティマイザによる結合文の実行方法 ... 13-22 問合せオプティマイザによる結合の実行計画の選択方法 ... 13-23 ネステッド・ループ結合 ... 13-24 ネステッド・ループ結合 ... 13-24 外部ループ ... 13-24 内部ループ ... 13-24 オプティマイザがネステッド・ループ結合を使用する場合 ... 13-25 ネステッド・ループ結合のヒント ... 13-25 ネステッド・ループのネスト ... 13-25 ハッシュ結合 ... 13-25 オプティマイザがハッシュ結合を使用する場合 ... 13-25 ハッシュ結合のヒント ... 13-26 ソート / マージ結合 ... 13-26 オプティマイザがソート / マージ結合を使用する場合 ... 13-26 ソート / マージ結合のヒント ... 13-27 デカルト結合 ... 13-27 オプティマイザがデカルト結合を使用する場合 ... 13-27 デカルト結合のヒント ... 13-27 外部結合 ... 13-27 ネステッド・ループ外部結合 ... 13-27 ハッシュ結合外部結合 ... 13-28 ソート / マージ外部結合 ... 13-29 完全外部結合 ... 13-29

14

オプティマイザ統計の管理

オプティマイザ統計の管理

オプティマイザ統計の管理

オプティマイザ統計の管理

統計について 統計について 統計について 統計について ... 14-2 自動統計収集 自動統計収集 自動統計収集 自動統計収集 ... 14-3 GATHER_STATS_JOB ... 14-3 自動統計収集を使用可能にする方法 ... 14-3 統計収集時の考慮事項 ... 14-4 手動統計を使用する場合 ... 14-4 前のバージョンの統計のリストア ... 14-5 統計のロック ... 14-5 手動統計収集 手動統計収集 手動統計収集 手動統計収集 ... 14-5 DBMS_STATS プロシージャによる統計の収集 ... 14-5 サンプリングを使用した統計収集 ... 14-6 パラレル統計収集 ... 14-6 パーティション・オブジェクトの統計 ... 14-7 列統計情報とヒストグラム ... 14-7 失効している統計の判別 ... 14-7 ユーザー定義統計 ... 14-7 統計を収集する時期 ... 14-8

(16)

作業負荷統計の収集 ... 14-10 マルチブロック読込みカウント ... 14-10 非作業負荷統計 ... 14-10 非作業負荷統計の収集 ... 14-11 統計の管理 統計の管理 統計の管理 統計の管理 ... 14-11 前のバージョンの統計のリストア ... 14-11 統計のエクスポートとインポート ... 14-12 統計のリストアとインポートまたはエクスポートの相違点 ... 14-13 表統計またはスキーマ統計のロック ... 14-13 統計の設定 ... 14-13 動的サンプリングを使用した統計の見積り ... 14-13 動的サンプリングの動作 ... 14-14 動的サンプリング使用のタイミング ... 14-14 動的サンプリングを使用したパフォーマンスの改善方法 ... 14-14 動的サンプリング・レベル ... 14-14 統計の欠落の処理 ... 14-15 統計の参照 統計の参照 統計の参照 統計の参照 ... 14-16 表、索引および列の統計 ... 14-16 ヒストグラムの表示 ... 14-16 高さ調整済ヒストグラム ... 14-16 頻度ヒストグラム ... 14-18

15

索引およびクラスタの使用方法

索引およびクラスタの使用方法

索引およびクラスタの使用方法

索引およびクラスタの使用方法

索引パフォーマンスについて 索引パフォーマンスについて 索引パフォーマンスについて 索引パフォーマンスについて ... 15-2 論理構造のチューニング ... 15-2 SQL アクセス・アドバイザを使用した索引のチューニング ... 15-3 索引を付ける列と式の選択 ... 15-3 コンポジット索引の選択 ... 15-4 コンポジット索引のキーの選択 ... 15-4 コンポジット索引のキーの順序付け ... 15-4 索引を使用する文の記述 ... 15-5 索引を使用しない文の記述 ... 15-5 索引の再作成 ... 15-5 索引の縮小 ... 15-6 一意でない索引による一意性の規定 ... 15-6 ENABLE NOVALIDATE 制約の使用方法 ... 15-6 パフォーマンスを考慮したファンクション索引の使用方法 パフォーマンスを考慮したファンクション索引の使用方法 パフォーマンスを考慮したファンクション索引の使用方法 パフォーマンスを考慮したファンクション索引の使用方法 ... 15-7 パフォーマンスを考慮したパーティション索引の使用方法 パフォーマンスを考慮したパーティション索引の使用方法 パフォーマンスを考慮したパーティション索引の使用方法 パフォーマンスを考慮したパーティション索引の使用方法 ... 15-8 パフォーマンスを考慮した索引構成表の使用方法 パフォーマンスを考慮した索引構成表の使用方法 パフォーマンスを考慮した索引構成表の使用方法 パフォーマンスを考慮した索引構成表の使用方法 ... 15-8 パフォーマンスを考慮したビットマップ索引の使用方法 パフォーマンスを考慮したビットマップ索引の使用方法 パフォーマンスを考慮したビットマップ索引の使用方法 パフォーマンスを考慮したビットマップ索引の使用方法 ... 15-9 パフォーマンスを考慮したビットマップ結合索引の使用方法 パフォーマンスを考慮したビットマップ結合索引の使用方法 パフォーマンスを考慮したビットマップ結合索引の使用方法 パフォーマンスを考慮したビットマップ結合索引の使用方法 ... 15-9 パフォーマンスを考慮したドメイン索引の使用方法 パフォーマンスを考慮したドメイン索引の使用方法 パフォーマンスを考慮したドメイン索引の使用方法 パフォーマンスを考慮したドメイン索引の使用方法 ... 15-9 パフォーマンスを考慮したクラスタの使用方法 パフォーマンスを考慮したクラスタの使用方法 パフォーマンスを考慮したクラスタの使用方法 パフォーマンスを考慮したクラスタの使用方法 ... 15-10 パフォーマンスを考慮したハッシュ・クラスタの使用方法 パフォーマンスを考慮したハッシュ・クラスタの使用方法 パフォーマンスを考慮したハッシュ・クラスタの使用方法 パフォーマンスを考慮したハッシュ・クラスタの使用方法 ... 15-11

(17)

オプティマイザ・ヒントの理解 オプティマイザ・ヒントの理解 オプティマイザ・ヒントの理解 オプティマイザ・ヒントの理解 ... 16-2 ヒントの型 ... 16-2 カテゴリ別のヒント ... 16-2 最適化アプローチと目標のヒント ... 16-3 アクセス・パスに関するヒント ... 16-3 問合せの変換に関するヒント ... 16-4 結合順序のヒント ... 16-4 結合操作のヒント ... 16-4 パラレル実行のヒント ... 16-5 その他のヒント ... 16-5 ヒントの指定方法 ヒントの指定方法 ヒントの指定方法 ヒントの指定方法 ... 16-6 ヒント全セットの指定方法 ... 16-6 ヒントにおける問合せブロックの指定方法 ... 16-7 グローバル表のヒントの指定方法 ... 16-8 複合索引ヒントの指定方法 ... 16-9 ビューでのヒントの使用方法 ビューでのヒントの使用方法 ビューでのヒントの使用方法 ビューでのヒントの使用方法 ... 16-10 ヒントおよび複合ビュー ... 16-10 ヒントとマージ可能ビュー ... 16-10 ヒントとマージ不可能ビュー ... 16-11

17

SQL アクセス・アドバイザ

アクセス・アドバイザ

アクセス・アドバイザ

アクセス・アドバイザ

DBMS_ADVISOR パッケージのパッケージのパッケージのパッケージの SQL アクセス・アドバイザの概要アクセス・アドバイザの概要アクセス・アドバイザの概要 ... 17-2アクセス・アドバイザの概要 SQL アクセス・アドバイザの使用方法の概要 ... 17-3 SQL アクセス・アドバイザ・リポジトリ ... 17-5 SQL アクセス・アドバイザの使用方法アクセス・アドバイザの使用方法アクセス・アドバイザの使用方法アクセス・アドバイザの使用方法 ... 17-6 SQL アクセス・アドバイザの使用手順 ... 17-6 SQL アクセス・アドバイザの使用に必要な権限 ... 17-7 タスクとテンプレートの設定 ... 17-7 タスクの作成 ... 17-7 テンプレートの使用方法 ... 17-8 テンプレートの作成 ... 17-8 ワークロードの管理 ... 17-9 ワークロード・オブジェクト ... 17-9 ワークロードの使用 ... 17-9 タスクとワークロードのリンク ... 17-10 ワークロードの内容の定義 ... 17-10 SQL チューニング・セット ... 17-11 ユーザー定義のワークロードのロード ... 17-11 SQL キャッシュのワークロードのロード ... 17-12 仮想ワークロードの使用方法 ... 17-13 Oracle Database 9i サマリー・アドバイザのワークロードの使用方法 ... 17-14 SQL アクセス・アドバイザのワークロードのパラメータ ... 17-14 ワークロードへの SQL 文の追加 ... 17-15 ワークロードの SQL 文の削除 ... 17-15 ワークロードの SQL 文の変更 ... 17-16

(18)

ワークロードのリセット ... 17-17 ワークロードとタスク間のリンクの削除 ... 17-17 ワークロードの削除 ... 17-17 推奨事項の処理 ... 17-17 推奨オプション ... 17-18 評価モード ... 17-19 推奨事項の生成 ... 17-19 EXECUTE_TASK プロシージャ ... 17-19 推奨事項の表示 ... 17-19 SQL ワークロードのジャーナル ... 17-23 推奨プロセスの停止 ... 17-23 タスクへの割込み ... 17-23 タスクの取消 ... 17-24 推奨事項のマーキング ... 17-24 推奨事項の変更 ... 17-24 SQL スクリプトの生成 ... 17-25 推奨事項が必要なくなった場合 ... 17-26 クイック・チューニングの実行 ... 17-27 タスクの管理 ... 17-27 タスク属性の更新 ... 17-27 タスクの削除 ... 17-28 DAYS_TO_EXPIRE パラメータの設定 ... 17-28 SQL アクセス・アドバイザの定数の使用方法 ... 17-28 SQL アクセス・アドバイザの使用例 ... 17-29 ユーザー定義のワークロードの推奨事項 ... 17-29 タスク・テンプレートを使用した推奨事項の生成 ... 17-31 SQL キャッシュからのワークロードのフィルタリング ... 17-32 索引およびマテリアライズド・ビューの現在の使用状況の評価 ... 17-33 高速リフレッシュとクエリー・リライトのためのマテリアライズド・ビューのチューニング 高速リフレッシュとクエリー・リライトのためのマテリアライズド・ビューのチューニング 高速リフレッシュとクエリー・リライトのためのマテリアライズド・ビューのチューニング 高速リフレッシュとクエリー・リライトのためのマテリアライズド・ビューのチューニング ... 17-34 DBMS_ADVISOR.TUNE_MVIEW プロシージャ ... 17-35 TUNE_MVIEW の構文と操作 ... 17-35 TUNE_MVIEW の出力結果へのアクセス ... 17-36 USER_TUNE_MVIEW ビューおよび DBA_TUNE_MVIEW ビュー ... 17-36 DBMS_ADVISOR 関数およびプロシージャによるスクリプトの生成 ... 17-36 最適化されたサブマテリアライズド・ビューによる高速リフレッシュの有効化 ... 17-41

18

プラン・スタビリティの使用方法

プラン・スタビリティの使用方法

プラン・スタビリティの使用方法

プラン・スタビリティの使用方法

実行計画を保持するためのプラン・スタビリティの使用 実行計画を保持するためのプラン・スタビリティの使用 実行計画を保持するためのプラン・スタビリティの使用 実行計画を保持するためのプラン・スタビリティの使用 ... 18-2 プラン・スタビリティでのヒントの使用 ... 18-2 アウトラインでのヒントの使用方法 ... 18-3 アウトラインの格納 ... 18-3 プラン・スタビリティを使用可能にする方法 ... 18-3 提供されるパッケージを使用したストアド・アウトラインの管理 ... 18-3 アウトラインの作成 ... 18-4 ストアド・アウトラインにカテゴリ名を使用する方法 ... 18-5 ストアド・アウトラインの使用 ... 18-5

(19)

問合せオプティマイザのアップグレードによるプラン・スタビリティの使用 問合せオプティマイザのアップグレードによるプラン・スタビリティの使用 問合せオプティマイザのアップグレードによるプラン・スタビリティの使用 問合せオプティマイザのアップグレードによるプラン・スタビリティの使用 ... 18-8 RBO から問合せオプティマイザへの移行 ... 18-8 問合せオプティマイザを使用している場合の新規 Oracle リリースへの移行 ... 18-9 テスト・システムでのアップグレード ... 18-10

19

EXPLAIN PLAN の使用方法

の使用方法

の使用方法

の使用方法

EXPLAIN PLAN についてについてについてについて ... 19-2 実行計画の変化理由 ... 19-2 スキーマの相違 ... 19-2 コストの相違 ... 19-2 排除行数の最少化 ... 19-3 実行計画以外の考慮事項 ... 19-3 V$SQL_PLAN ビューの使用 ... 19-3 EXPLAIN PLAN の制限事項 ... 19-4 PLAN_TABLE 出力表出力表出力表出力表 ... 19-4 EXPLAIN PLAN の実行の実行の実行の実行 ... 19-5 EXPLAIN PLAN での文の指定 ... 19-5 EXPLAIN PLAN での別の表の指定 ... 19-5 PLAN_TABLE 出力の表示出力の表示出力の表示出力の表示 ... 19-6 PLAN_TABLE 出力のカスタマイズ ... 19-6 EXPLAIN PLAN 出力の読み方出力の読み方出力の読み方出力の読み方 ... 19-7 EXPLAIN PLAN によるパラレル実行の表示によるパラレル実行の表示によるパラレル実行の表示によるパラレル実行の表示 ... 19-8 EXPLAIN PLAN によるパラレル問合せの表示 ... 19-9 EXPLAIN PLAN によるビットマップ索引の表示によるビットマップ索引の表示によるビットマップ索引の表示によるビットマップ索引の表示 ... 19-10 EXPLAIN PLAN によるパーティション・オブジェクトの表示によるパーティション・オブジェクトの表示によるパーティション・オブジェクトの表示によるパーティション・オブジェクトの表示 ... 19-10 EXPLAIN PLAN によるレンジ・パーティション化およびハッシュ・パーティション化の 表示の例 ... 19-11 ハッシュ・パーティション化の計画 ... 19-12 コンポジット・パーティション・オブジェクトでのプルーニング情報の例 ... 19-12 パーシャル・パーティション・ワイズ結合の例 ... 19-14 フル・パーティション・ワイズ結合の例 ... 19-16 INLIST ITERATOR および EXPLAIN PLAN の例 ... 19-16 IN リスト列が索引列である場合 ... 19-17 IN リスト列が索引でありパーティション列である場合 ... 19-17 IN リスト列がパーティション列である場合 ... 19-17 ドメイン索引および EXPLAIN PLAN の例 ... 19-18 PLAN_TABLE 列列列列 ... 19-18

20

アプリケーション・トレース・ツールの使用方法

アプリケーション・トレース・ツールの使用方法

アプリケーション・トレース・ツールの使用方法

アプリケーション・トレース・ツールの使用方法

End to End Application Tracing ... 20-2 エンド・トゥ・エンド・トレースにおける統計収集の有効化および無効化 ... 20-3 クライアント識別子に対する統計収集 ... 20-3 サービス、モジュールおよびアクションに対する統計収集 ... 20-3 End to End Application Tracing の収集した統計の表示 ... 20-4

(20)

サービス、モジュールおよびアクションのトレース ... 20-5 セッションのトレース ... 20-5 インスタンス全体またはデータベース全体のトレース ... 20-6 エンド・トゥ・エンド・トレースにおける使用可能なトレースの表示 ... 20-6 trcsess ユーティリティの使用方法ユーティリティの使用方法ユーティリティの使用方法ユーティリティの使用方法 ... 20-7 trcsess の構文 ... 20-7 trcsess の出力例 ... 20-8 SQL トレースとトレースとトレースとトレースと TKPROF についてについてについて ... 20-8について SQL トレース機能について ... 20-8 TKPROF について ... 20-9 SQL トレース機能とトレース機能とトレース機能とトレース機能と TKPROF の使用方法の使用方法の使用方法 ... 20-10の使用方法 手順 1: トレース・ファイル管理用の初期化パラメータの設定 ... 20-10 手順 2: SQL トレース機能を使用可能にする方法 ... 20-12 手順 3: TKPROF によるトレース・ファイルのフォーマット ... 20-13 TKPROF の出力例 ... 20-13 TKPROF の構文 ... 20-14 TKPROF 文の例 ... 20-16 TKPROF の例 1 ... 20-16 TKPROF の例 2 ... 20-16 手順 4: TKPROF 出力の解釈 ... 20-17 TKPROF の表形式の統計 ... 20-17 行ソースの操作 ... 20-18 待機イベント情報 ... 20-19 統計の精度の解釈 ... 20-19 再帰的コールについて ... 20-19 TKPROF のライブラリ・キャッシュ・ミス ... 20-19 SQL トレースでの文の切捨て ... 20-20 TKPROF での SQL 文を発行するユーザーの識別 ... 20-20 TKPROF の実行計画 ... 20-20 チューニングする文の決定 ... 20-20 手順 5: SQL トレース機能統計の格納 ... 20-21 TKPROF による出力 SQL スクリプトの生成 ... 20-21 TKPROF による出力 SQL スクリプトの編集 ... 20-21 出力表の問合せ ... 20-22 TKPROF の解釈における誤りの回避の解釈における誤りの回避の解釈における誤りの回避の解釈における誤りの回避 ... 20-23 引数トラップの回避 ... 20-23 読取り一貫性トラップの回避 ... 20-24 スキーマ・トラップの回避 ... 20-24 タイム・トラップの回避 ... 20-25 トリガー・トラップの回避 ... 20-26 TKPROF の出力例の出力例の出力例の出力例 ... 20-26 TKPROF ヘッダーのサンプル ... 20-26 TKPROF 本体のサンプル ... 20-26 TKPROF サマリーのサンプル ... 20-28

(21)

21

データベース・リプレイ

データベース・リプレイ

データベース・リプレイ

データベース・リプレイ

データベース・リプレイの概要 データベース・リプレイの概要 データベース・リプレイの概要 データベース・リプレイの概要 ... 21-2 ワークロードの取得 ... 21-3 ワークロードの前処理 ... 21-3 ワークロードのリプレイ ... 21-3 分析およびレポート作成 ... 21-4 データベース・ワークロードの取得 データベース・ワークロードの取得 データベース・ワークロードの取得 データベース・ワークロードの取得 ... 21-4 ワークロードの取得の有効化と無効化 ... 21-4 データベース・ワークロードの取得の前提条件 ... 21-5 ワークロードの取得オプション ... 21-6 データベースの再起動 ... 21-6 ワークロード・フィルタの定義 ... 21-7 取得ディレクトリの設定 ... 21-7 ワークロードの取得の制限 ... 21-7 Enterprise Manager を使用したデータベース・ワークロードの取得 ... 21-8 Enterprise Manager を使用したワークロードの取得の監視 ... 21-10 アクティブなワークロードの取得の監視 ... 21-10 アクティブなワークロードの取得の停止 ... 21-11 完了したワークロードの取得の管理 ... 21-12 API を使用したデータベース・ワークロードの取得 ... 21-13 ワークロード・フィルタの追加と削除 ... 21-13 ワークロードの取得の開始 ... 21-14 ワークロードの取得の停止 ... 21-14 ワークロードの取得に関する AWR データのエクスポート ... 21-15 ビューを使用したワークロードの取得の監視 ... 21-15 ワークロードの取得の分析 ワークロードの取得の分析 ワークロードの取得の分析 ワークロードの取得の分析 ... 21-15 Enterprise Manager を使用したワークロードの取得レポートの生成 ... 21-15 API を使用したワークロードの取得レポートの生成 ... 21-16 ワークロードの取得レポートの使用 ... 21-17

22

SQL パフォーマンス・アナライザ

パフォーマンス・アナライザ

パフォーマンス・アナライザ

パフォーマンス・アナライザ

SQL パフォーマンス・アナライザの概要パフォーマンス・アナライザの概要パフォーマンス・アナライザの概要パフォーマンス・アナライザの概要 ... 22-2 SQL ワークロードの取得ワークロードの取得ワークロードの取得ワークロードの取得 ... 22-3

用語集

用語集

用語集

用語集

索引

索引

索引

索引

(22)
(23)

この章には、次の項目が含まれます。 ■ 対象読者 ■ ドキュメントのアクセシビリティについて ■ 関連ドキュメント ■ 表記規則 ■ サポートおよびサービス

(24)

『Oracle Database パフォーマンス・チューニング・ガイド』は、Oracle Database の運用、メン テナンスおよびパフォーマンスの担当者を対象としています。 このマニュアルでは、パフォー マンス・ツールを使用して、SQL を適切に作成およびチューニングし、インスタンスのパ フォーマンスを最適化して、Oracle データベースのパフォーマンスを向上させる方法を詳しく 説明します。また、優れたパフォーマンスを実現するための初期データベースの作成方法を説 明するとともに、パフォーマンス関連の参照情報を示します。データベース管理者、アプリ ケーション設計者およびプログラマに役立つガイドです。

Oracle Enterprise Manager を使用して Oracle Database のパフォーマンスをチューニングする 方法の詳細は、『Oracle Database 2 日でパフォーマンス・チューニング・ガイド』を参照して ください。

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

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

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

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

オラクル社は、障害のあるお客様にもオラクル社の製品、サービスおよびサポート・ドキュメ ントを簡単にご利用いただけることを目標としています。オラクル社のドキュメントには、 ユーザーが障害支援技術を使用して情報を利用できる機能が組み込まれています。HTML 形式 のドキュメントで用意されており、障害のあるお客様が簡単にアクセスできるようにマーク アップされています。標準規格は改善されつつあります。オラクル社はドキュメントをすべて のお客様がご利用できるように、市場をリードする他の技術ベンダーと積極的に連携して技術 的な問題に対応しています。オラクル社のアクセシビリティについての詳細情報は、Oracle Accessibility Program の Web サイト http://www.oracle.com/accessibility/ を参照し てください。 ドキュメント内のサンプル・コードのアクセシビリティについて ドキュメント内のサンプル・コードのアクセシビリティについて ドキュメント内のサンプル・コードのアクセシビリティについて ドキュメント内のサンプル・コードのアクセシビリティについて スクリーン・リーダーは、ドキュメント内のサンプル・コードを正確に読めない場合がありま す。コード表記規則では閉じ括弧だけを行に記述する必要があります。しかし JAWS は括弧だ けの行を読まない場合があります。 外部 外部 外部 外部 Web サイトのドキュメントのアクセシビリティについてサイトのドキュメントのアクセシビリティについてサイトのドキュメントのアクセシビリティについてサイトのドキュメントのアクセシビリティについて このドキュメントにはオラクル社およびその関連会社が所有または管理しない Web サイトへの リンクが含まれている場合があります。オラクル社およびその関連会社は、それらの Web サイ トのアクセシビリティに関しての評価や言及は行っておりません。 Oracle サポート・サービスへのサポート・サービスへのサポート・サービスへのサポート・サービスへの TTY アクセスアクセスアクセスアクセス アメリカ国内では、Oracle サポート・サービスへ 24 時間年中無休でテキスト電話(TTY)アク セスが提供されています。 TTY サポートについては、(800)446-2398 にお電話ください。アメリ カ国外からの場合は、+1-407-458-2479 にお電話ください。

(25)

このマニュアルを読む前に、『Oracle Database 概要』、『Oracle Database 2 日でデータベース管 理者』、『Oracle Database アドバンスト・アプリケーション開発者ガイド』および『Oracle Database 管理者ガイド』をお読みください。

Oracle Enterprise Manager を使用して Oracle Database のパフォーマンスをチューニングする 方法の詳細は、『Oracle Database 2 日でパフォーマンス・チューニング・ガイド』を参照して ください。 データ・ウェアハウス環境をチューニングする方法の詳細は、『Oracle Database データ・ウェ アハウス・ガイド』を参照してください。 このマニュアルに記載されている例の多くは、Oracle Database のインストール時に基本インス トール・オプションを選択した場合、デフォルトでインストールされるサンプル・スキーマを 使用しています。これらのスキーマがどのように作成されているか、およびその使用方法につ いては、『Oracle Database サンプル・スキーマ』を参照してください。

Oracle エラー・メッセージの詳細は、『Oracle Database エラー・メッセージ』を参照してくだ さい。Oracle Database エラー・メッセージのマニュアルは、HTML 版のみご利用いただけま す。Oracle マニュアル CD のエラー・メッセージ・マニュアルにアクセスする場合、範囲ごと にエラー・メッセージを参照できます。範囲を検索した後、ブラウザの検索機能を使用して メッセージを検索します。インターネットに接続している場合は、Oracle オンライン・マニュ アルのエラー・メッセージ検索機能を使用して、特定のエラー・メッセージを検索できます。

表記規則

表記規則

表記規則

表記規則

このマニュアルでは、次の表記規則を使用しています。 規則 規則 規則 規則 意味意味意味意味 太字 太字 太字 太字 太字は、アクションに関連するグラフィカル・ユーザー・インタフェース 要素、または本文や用語集で定義されている用語を示します。 イタリック イタリックは、特定の値を指定するプレースホルダ変数を示します。 固定幅フォント 固定幅フォントは、段落内のコマンド、URL、サンプル・コード、画面上 に表示されるテキストまたはユーザーが入力するテキストを示します。

(26)

次の各項に、各サービスに接続するための URL を記載します。

Oracle サポート・サービス

サポート・サービス

サポート・サービス

サポート・サービス

オラクル製品サポートの購入方法、および Oracle サポート・サービスへの連絡方法の詳細は、 次の URL を参照してください。 http://www.oracle.co.jp/support/

製品マニュアル

製品マニュアル

製品マニュアル

製品マニュアル

製品のマニュアルは、次の URL にあります。 http://otn.oracle.co.jp/document/

研修およびトレーニング

研修およびトレーニング

研修およびトレーニング

研修およびトレーニング

研修に関する情報とスケジュールは、次の URL で入手できます。 http://www.oracle.co.jp/education/

その他の情報

その他の情報

その他の情報

その他の情報

オラクル製品やサービスに関するその他の情報については、次の URL から参照してください。 http://www.oracle.co.jp http://otn.oracle.co.jp 注意 注意 注意 注意 : ドキュメント内に記載されている URL や参照ドキュメントには、 Oracle Corporation が提供する英語の情報も含まれています。日本語版の情 報については、前述の URL を参照してください。

(27)

この項では、Oracle Database 10g リリース 2(10.2)のパフォーマンスに関連した新機能につ いて説明するとともに、追加情報の掲載場所も記載しています。この項で説明する機能と拡張 機能は、データベースのパフォーマンスを最適化することを目標としています。

Oracle Database 10g リリース 2(10.2)のすべての新機能のサマリーは、『Oracle Database 新機 能ガイド』を参照してください。 Oracle Enterprise Manager を使用して Oracle Database のパ フォーマンスをチューニングする方法の詳細は、『Oracle Database 2 日でパフォーマンス・ チューニング・ガイド』を参照してください。

Oracle Database 10g リリース 2(10.2)におけるパフォーマンスに関連した新機能および機能 更新は次のとおりです。

■ Active Session History レポート

Active Session History(ASH)レポートには、指定された期間の、ブロッカ ID および待 機中 ID とその関連トランザクション識別子、ならびに SQL の識別に使用された ASH 情報 が含まれています。5-20 ページの「Active Session History レポートの生成」を参照してく ださい。 ■ 自動 PGA メモリー管理 新しいビューが追加され、各 Oracle プロセスの PGA メモリー使用量を動的に監視します。 V$PROCESS_MEMORY ビューの詳細は、7-38 ページの「自動 PGA メモリー管理のパフォー マンスの監視」を参照してください。 ■ 自動共有メモリー管理 自動共有メモリー管理により、自己チューニング・アルゴリズムを介したシステム・グ ローバル領域(SGA)メモリー関連パラメータの構成作業が簡素化されます。自動共有メ モリー管理は拡張され、ストリーム・プールは自動 SGA 管理の一部として自動的にチュー ニングされます。7-2 ページの「自動共有メモリー管理」を参照してください。 ■ マルチブロック読込みカウントの自動チューニング DB_FILE_MULTIBLOCK_READ_COUNT 初期化パラメータは、このパラメータが明示的に設 定されていない場合は、デフォルト値を使用して自動的にチューニングされるようになり ました。DB_FILE_MULTIBLOCK_READ_COUNT パラメータの詳細は、13-6 ページの「問 合せオプティマイザの動作の制御」を参照してください。 ■ 自動ワークロード・リポジトリ・レポート 自動ワークロード・リポジトリ(AWR)レポートには、スナップショット ID の有効範囲 の統計が表示されます。2 つの新しいレポート awrsqrpt.sql および awrsqrpi.sql が 追加され、特定の SQL 文の統計が表示されます。5-16 ページの「自動ワークロード・リポ ジトリ・レポートの生成」を参照してください。

図 図図 図 8-1 ディスク間でのディスク間でのディスク間でのディスク間での REDO メンバーの分散メンバーの分散 メンバーの分散メンバーの分散 この例では、 LGWR はログ・グループ 1 (メンバー 1a と 1b )から切り替えられ、ログ・グ ループ 2 ( 2a と 2b )に書込みを行います。同時に、アーカイバ・プロセスはグループ 1 から読 込みをして、アーカイブ先に書込みを行います。 REDO ログ・ファイルがどのようにして競合 から分離されているかに注意してください。 REDO ログはシ

参照

関連したドキュメント

〜3.8%の溶液が涙液と等張であり,30%以上 では著しい高張のため,長時間接触していると

攻撃者は安定して攻撃を成功させるためにメモリ空間 の固定領域に配置された ROPgadget コードを用いようとす る.2.4 節で示した ASLR が機能している場合は困難とな

菜食人口が増えれば市場としても広がりが期待できる。 Allied Market Research では 2018 年 のヴィーガン食市場の規模を 142 億ドルと推計しており、さらに

荒天の際に係留する場合は、1つのビットに 2 本(可能であれば 3

また、 NO 2 の環境基準は、 「1時間値の1 日平均値が 0.04ppm から 0.06ppm までの ゾーン内又はそれ以下であること。」です

18 虐待まではいかないが、不適切なケアがあると思う はい いいえ 19 感じた疑問を同僚や上司と話し合える状況である はい いいえ 20

れも10年というスパンで見た場合であって,4年間でみれば,犯罪全体が増

私たちは、2014 年 9 月の総会で選出された役員として、この 1 年間精一杯務めてまいり