パフォーマンス調査・サブメニュー
本ページは、Oracleデータベースに対する運用、および障害対応のための操作方法を示すインデックスを記述する
なお、本ページは、
「パフォーマンス調査 」
に関するサブ・メニュー部分である
―――――――― パフォーマンスへの考え方 ――――――――
【性能遅延原因追及フローチャート】
17.スピーディにトラブル原因を切り分けるテクニック
大きな実行計画となる長いSQL文の最適実行方法の発見
のための検証ポイント
Oracleパフォーマンスに係る4大調査事項
パフォーマンス統計(SQL実行実績統計) P.425
待機イベント P.419
実行計画 P.385
オプテイマイザ統計情報(オブジェクト統計) P.395
【問題発生箇所の特定アプローチ】
【処理の遅延が発生したときの原因一覧】
システムのどこが遅いのか分からない時に、調べること
―― 問題判別フローチャート ――
【パフォーマンス障害調査&対応フロー・チャート】
処理遅延(スローダウン)時の調査手順
【遅延発生時の調査フロー】
OEM(Oracle Enterprise Manager)の利用
【高負荷CPU時の対象SQL捜索のアプローチ】
【高負荷SQL捜索の文の検索Select文】
30秒以上待機状態で止まっているセッション(SQL文)の洗出し
クライアントからのセッションの状況と経過
一時的に処理が出来なくなったときのv$sessionとv$sysstatの調べ方
【処理結果が返ってこない状況の調査と対処】
セッションが実行or待機継続かのを調べる方法
SQL処理の実行時間が長くなった時の実行計画と短かった時との実行計画の比較
日によって実行時間が異なる処理に対する調査手順
SQL処理時間が長くなった時に実行計画が変更されたかの確認方法
SQL処理行時間が遅い時に、SQLセンテンス自身に対して確認するポイント
( SQL文の処理を早くするための改良点の発見の仕方 )
・SQLセンテンスの記述内容を調査するポイント
・実行計画を調査するポイント
・実行統計を調査するポイント
・対象オブジェクトについて調査するポイント
・アクセス対象オブジェクトを調査するポイント
SQL文の性能を評価するときのポイント
CPUやメモリ使用率のシステム情報の期間経過推移のグラフ出力とグラフの保存
「情報パブリッシャ」のレポーティング機能 Oracle 12c用操作方法
データベース全体の処理パフォーマンスにおける問題ポイントの見つけ方 3
オプティマイザがSQL文の解析と実行計画の作成に割り当てたCPU使用率の調べ方
Oracleの日常監視における重点監視項目
検知すべき事項(ハングアップ、ORAエラー、性能劣化、起動状態、ジョブの終了ステータス)
【負荷が高いSQLの発見と原因調査及び、その対応方法】
―――――――― SQLトレース ――――――――
SQLトレース結果の出力型式の整形方法
【SQLトレース結果を見やすい表示にする出力形式変換(コンバート作業)】
【SQLトレース(実行統計)の出力内容】
【SQLトレースの出力内容】
特定のSQLに対する詳細な情報(実行計画、実行時間、待ち時間、
ディスクからの読込みブロック数)
問題ポイントと原因についての解説
SQLトレースの起動方法
【SQLトレースの取得方法】
【別セッションからのSQL_TRACEの取得方法】
【サーバー・プロセス(ユーザー・セッション)のSIDとSERIAL#の調査方法】
OEM画面からのSQLトレースの取得方法
【SQLトレースによる「SQL実行計画」と「実行統計情報」の取得方法】
【autotraceを使った「SQL実行計画」と「実行統計情報」の取得方法】
セッションで動作したSQL文と実行計画の調査
10046 (SQL)イベントトレース
セッションで動作したSQL文の調査 10053 (SQL)イベントトレース
実行計画を表示させるAUTO TRACE機能の使い方
【実行計画と実行状況の手動取得方法】 (AUTOTRACE)
―――――――― 実行計画 ――――――――
【実行計画の見方】
【「SQL実行計画」の見方】
実行計画のOperation優先順位
テーブル結合の結合方式の選択基準
「テーブル結合の結合順序の最適化の仕組み」
【効率がよいテーブルの結合順序】
【実行計画におけるテーブルへの効率的なアクセス方式】
【Select文でのテーブル結合方式と実行スピードの関係】
実行されたSQL文が過去と同じ実行計画が使われていたか確認する方法
パーティションを使った実行が行われているかの実行計画の確認
【「SQL実行計画」と「実行実績統計」の取得ツールの特徴】
【DBMS_XPLAN.DISPLAY_CURSORによる実行計画取得方法】
直前に実行したSQL文に対して、SQL実行計画の調査方法
【EXPLAIN PLAN FORによる「SQL実行計画」の取得方法】
SQL文を実行ぜずに、SQL実行計画だけを取得する方法
【CPU能力とI/O能力を考慮した実行計画の作成方法】
実行したSQL文に対する実行統計と実行計画を調査する方法
・ライブラリ・キャッシュに残っているSQL
・AWRスナップショットに記録されているSQL
【SQL文が実行された事後に、使用された実行計画と実行統計の調査方法】
【v$SQL_PLANビューからの「SQL実行計画」の取得方法】
【SQL文から実行計画を表示する方法】 V$SQL_PLANから
SQL文の実行計画・統計に関する情報 V$SQLAREA
(ライブラリキャッシュ上の)
【実行完了したSQL文の実行統計および実行経過の経過記録】
SQLコマンドに対する「実行統計」と「統計情報」の出力
―――――――― 実行実績統計 ――――――――
【「SQL実行統計情報」の見方】
現在接続している自セッションのみの統計情報の取得方法
指定したセッションで使用したリソースの使用量の調査
―――――――― オブジェクト統計 ――――――――
【劣化オブジェクトの発見と対応方法】
(HWMが高いテーブル、行移行が多発したテーブル、
リーフ件数割合が高いインデックス)
『表の断片化』が進んでいる、『索引が肥大化』している判断の基準
【『表の断片化』、『索引の肥大化』を調査するSQL】
表領域へのフラグメンテーション調査
フラグメンテーショの回復とスキーマの不要なオブジェクトの領域解放
表領域の使用率調査
セグメント断片化のオブジェクト再構築を行った場合の再利用可能領域の見積り計算方法
【表とその表に紐付いた索引に対するオブジェクト統計情報を手動で取得する方法】
【索引付きの列に対して、列の統計情報と列ヒストグラム(SIZE AUTO)を取得する方法】
SQLプロファイル(補助統計)について と作成コマンド
オブジェクト統計情報を収集(更新)する方法
オプティマイザ用統計の統計情報の手動採取方法
SQL*PLUSにて(オプティマイザ)統計情報を収集する
A)ファイル番号とブロック番号からのレコード内容を表示する方法
・ オブジェクト名の識別、オブジェクト・タイプの調査
・ 対象レコードの内容表示
・ オブジェクトが確保しているディスク領域の配置
B)ファイル番号とブロック番号の入手方法
・ 待機イベントに関するv$sessionビュー情報のP1、P2パラメータから
対象オブジェクトの特定
・ 主キーを指定してのファイル番号とブロック番号の特定
・ デッドロックが発生した原因となるファイル番号とブロック番号の特定
・ ストレージ・ハードウェア・アクセスエラーが発生したファイル番号と
ブロック番号の入手
C)オブジェクトのタイプ一覧とオブジェクト名一覧
・ オブジェクトのタイプ一覧
・ オブジェクト名一覧
D)オブジェクトが確保しているファイルのブロック位置の配置
= テーブルのレコードが書込まれているファイル番号とブロック番号
を調査する方法
E) ファイル番号に対応する表領域名と物理ファイル名
―――――――― SQL実行記録 ――――――――
SQL*Plusにて、直前実行コマンドの実行計画表示の方法
特定のSQLを実行しているセッションの調査方法 V$SQL
(ADDRESS、HASH_VALUE)
指定した過去の時間に、実行されていたSQL文の内容調査の方法
指定した過去の時間に、実行されていたSQL文の内容調査の方法
過去に(指定した時刻)実行されていたSQL文の洗い出し
DBA_HIST_ACTIVE_SESS_HISTORYビューからの確認
REDOログの解析 (実行SQLコマンドの調査)
【SQL文に割当てられたSQL_IDの調べ方】
実行したいSQL文の統計情報の調査
再解析頻度の多いSQLの抽出
処理時間の多いSQLの抽出 17、18
重複したSQL文の個数調査
(バインド変数を使っていないため、リテラル値だけが異なるSQL文 )
―――――――― 待機イベント ――――――――
待機イベント、待機クラス一覧
【待機イベント一覧 と 種類ごとの原因】
【待機イベント一覧】
イベント発生状況遷移表
【Oracleの待機クラスの種類】
待機イベントとサーバー・プロセスとバックグラウンド・プロセスの関係
(ディスクI/Oについて)
待機イベント時間 = [elapsed_time] ― [cpu_time]
・データベース・インスタンス全体の待機イベントの発生状況経過
トップ・アクティビティ
過去に(指定した時刻)発生していた待機イベントの件数
DBA_HIST_ACTIVE_SESS_HISTORYビューからの確認
待機イベントと属する待機クラスの種類と内容
待機イベントの発生状況の確認と評価の例(AWRレポートより)
発生した待機イベントに関連するハードウェア・リソース(OS側)の利用状況の調査方法(使用量の見方)
ネットワークでの待機イベント発生確認
【CPU能力が不足しているかの確認】
【Diskブロック読込みのブロック数が異常過多な現象の確認】
ディスク遅延の発生元プロセスの種類(ケース)
【ディスクI/Oの性能評価(遅延発生の有無の確認)】
―――――――― リアルタイム監視/パフォーマンス調査 ――――――――
・データベース・インスタンス全体の処理数の経過
カーソル処理数/秒
トランザクション処理数/秒
セッション発生数/秒
論理I/O処理数/秒
物理I/O処理数/秒
ネットI/O処理数/秒
表処理数/秒
・スループット数効率(/秒)とI/O処理数効率(/秒)の経過
インスタンス・スループット率
【ログオン数/秒】
【トランザクション数/秒】
【物理読取り(KB)/秒】
【REDOサイズ(KB)/秒】
I/O処理数効率(/秒)
【同期単一ブロック読取りの待機時間】
【I/OファンクションごとのI/O MB/秒】
【I/OファンクションごとのI/Oリクエスト数/秒】
Oracle側CPU負荷とメモリー使用量の調査 (OEM画面)
システム全体での処理の活動状況(進行確認)の把握方法
=フリーズが発生していないか の確認
【SQL実行処理の進捗個数確認】 (オラクル起動後の累計値)
・v$sysstatの見方
SQL実行数、commit実行数、ディスクからの読込みデータ量、
Oracle Netのデータ送受信量、logical readのデータ量
【負荷の高いSQLの発見方法】
トップアクティビティ画面
【現在実行中の負荷が重いSQL文の実行統計および実行経過】
SQL文に対するCPU時間とディスクReadなどの実行統計で、負荷が高いSQL文の特定
時間のかかっているSQLを探し出し、その実行統計を表示する方法
【v$sessionビュー(セッション情報)を、1秒間隔で出力するスクリプト】
【v$sessionを定期的に取得するスクリプトのコード】
【v$sysstatを定期的に取得するスクリプトのコード】
(LOGファイル作成手順)
CPU使用セッション個数と待機セッション個数(アクティブ・セッション数)のグラフ化表示
【v$sessionとv$sysstateのデータをグラフ化する方法】
(CSVファイル作成手順とグラフ(Excel)作成手順)
OEM画面を使ったパフォーマンス調査
・[ホーム]タブでの画面切り替え操作方法
【ホスト】表示と【データベース・インスタンス】表示
・[パフォーマンス]タブでの画面切り替え操作方法
【ホスト】表示と【データベース・インスタンス】表示
【 パフォーマンス 】タブ
サーバー・リソース(資源)の使用状況の表示(グラフ化)
・CPU負荷状況
・ページング率
・CPUの実行キューの長さ
・CPU使用セッション個数と待機セッション個数(アクティブ・セッション数)
のグラフ化表示
CPU使用セッション個数と待機セッション個数のグラフ化表示
(アクティブ・セッション数)
【グラフから負荷の高い時間を指定し、SQLチューニング・アドバイザを動かす】
【SQL文のパフォーマンス情報の内容表示】
リアルタイムSQL監視により出力される実行統計情報
データベースの状況をリアルタイムに監視する方法(リアルタイム監視)
データベースの状況をリアルタイムに監視する方法(リアルタイム監視)
リアルタイムSQL監視の監視対象となるSQL文の実行計画ステップ数制限の設定値の変更方法
【単一SQL文に対するリアルタイムSQL監視の方法】
パフォーマンス異常が発生したら、まずOEMのトップ画面で待機中と実行中のセッション件数を見て、多発している待機の状態をインスタンス数で把握する
【Windows リソース負荷調査】 リソース負荷調査ツール 一覧
・プロセスモニター
・リソースモニター
・パフォーマンスモニター
・データコレクターセット
・調査項目一覧
【パフォーマンスモニター】 システムと全プロセスのリソース使用総計
プロセスごとの個別のリソース使用統計
【プロセスモニター】 プロセスごとの個別のリソース使用統計
―――――――― OSリソース負荷状況 ――――――――
OS側からのOracle状況調査
【グラフ表示からの(OSからの視点としての)プロセス状況把握】
「待機中インスタンス数とCPU活動インスタンス数」のグラフ
・ハードウェア・リソース(OS側)の利用状況
CPU使用率、CPU負荷
メモリ使用率(%)、スワップ使用率(%)
ディスクI/O使用率、最長I/Oサービス時間(ミリ秒)
プログラム・ホストの使用率
OS観点から見たセッションのプロセス情報 V$PROCESS
OS側プロセスから見たプロセス番号と活動状態の調査方法
【メモリの使用状況 free 】
vmstat(UNIX系のOSリソース稼働状況) の見方
CPU使用率、ページング数、CPU割当て待ちプロセス数、
Disk I/O処理待ちプロセス数
【OS側のリソースの使用状況 vmstat 】
【iostatでのデバイス使用状況の確認】
ディスクへの物理Read回数が多いことの発見
iostatの見方
デバイス(DISK)別の 稼働率、I/O終了待ち(Wait)率、リード数/秒、
1read当たりの所要時間(ミリ秒)
【ディスクI/Oレスポンス遅延の捜索アプローチ】
ディスクI/Oによる処理遅延の原因
OSのページング処理の発生
バッファキャッシュのヒット率の過少からくる同一データの再読み込み
SQL文によるI/O回数が多大
物理I/Oに対する評価
【ディスクI/Oの使用状況 iostat 】
oratopユーティリティによるデータベースの稼働状況をリアルタイムに表示する方法
oratopユーティリティ (UNIX限定)
TOP5待機イベント、 CPU使用時間、 PGA使用量、 実行中のSQL_ID、
待機イベント、 実行統計、 実行計画、 表領域やASMのディスク使用量
OSリソース資源の使用状況の定期的記録し、出力する方法
OSWbbツール リソース資源定期的使用状況記録保存 (UNIX限定)
OSWbbaツール リソース資源グラフ表示と分析とCSV出力変換(UNIX限定)
【WSHプログラミング】
【Windows リソース負荷調査】 リソース負荷調査ツール 一覧
・プロセスモニター
・リソースモニター
・パフォーマンスモニター
・データコレクターセット
・調査項目一覧
【パフォーマンスモニター】 システムと全プロセスのリソース使用総計
プロセスごとの個別のリソース使用統計
【プロセスモニター】 プロセスごとの個別のリソース使用統計
―――――――― Statspack と AWR ――――――――
【実行計画(同一のSQL文で)が変更されたか調査する方法】
Statspackの実体(Statspackの元テーブル)
AWRの実体(AWRの元テーブル)
Stats$sql_summaryの列定義
STATSPACKの判断順序
STATSPACKを分析する手順とポイント
SQLトレース、Statspackの見方(実行統計)
Statspack:過去時点の実行リソース状況(CPU負荷、ブロックアクセス数)の記録や
SQL実行計画を調査するツール
Statspackレポートの見方
Statspack:過去時点の実行リソース状況(CPU負荷、ブロックアクセス数)の記録や
SQL実行計画を調査するツール
Statspack詳細レポートの見方
I/O量が多いのかの判断 StastpackのTablespaceセクションにて確認
I/Oレスポンスが悪い現象 の証拠資料と原因判断資料
StastpackのTablespaceセクションにて確認
【Statspackのインストール、スナップショット採取、統計情報出力】
Statspack詳細レポートを使った「SQL実行計画」と「実行統計情報」の入手
------- 取得した時間帯のスナップショットに対する実行統計 --------
Statspackレポートの視点
・Oracle全体でのSQL実行統計記録
・活動時間帯内でのリソース使用上位SQL文の選別
計測対象時間、待機イベントとCPU処理の各時間、CPU時間、実行(Elapsed)時間、
データファイルへのI/O処理回数、1I/O当りの処理時間、物理Read回数が多いSQL文、
その処理回数と1実行回数当りのDISK I/O量、CPU負荷率、
負荷が高い(物理Read回数、バッファ使用量、CPU使用時間、実行(Elapsed)時間)SQL文
【STATSPACK 詳細レポート(sprepsqlスクリプト)の採取方法と見方】
SQL実行回数、DISK I/O READ回数、1実行当りのDISK I/O READ回数、
実行計画
【SQL文が使用しているリソース量の調査方法】(Statspack詳細レポート)
SQLソース文、 SQL実行計画、
SQL実行統計(実行回数、待機イベント時間、CPU使用時間、
ディスクreadブロック時間、使用バッファ・ブロック数、ソート時間、
実行結果レコード数)
実行時間が長いSQL文での確認事項 Statspackレポート
【実行統計に関する情報(physical read、Elapsed time)についての確認点】
実行時間が長いSQL文での確認事項 Statspackレポート
【ステップ数が多い実行計画の重点チェック】
StatspackレポートとStatspack詳細レポート関連資料
AWRレポートの全体構成
AWR(自動ワークロード・リポジトリ)とADDM(自動データベース診断モニタ)
および、アドバイザの関係
パフォーマンスを解析するAWRレポートの種類と内容
【AWRの出力結果(=ADDMレポート)の見方】
【AWRスナップショットの採取方法】
【ADDMレポートの作成方法】
【SQLチューニング・セットの作成方法】レスポンス不良における緊急の内容調査
【アドバイザの起動方法】 と対応方法
ADDMで出力された診断結果への考察
ADDMの『結果出力の表示方法』と『結果リストに対する対処方法への指示』
『自動で』起動されたADDMによる稼働パフォーマンスについての問題点指摘
『現在の』Oracleの実行状況に対するADDMの即時実行の方法
【パフォーマンス情報の取得間隔と取得時間帯】の目安
AWR(自動ワークロード・リポジトリ)
とADDM(自動データベース診断モニタ)
および、アドバイザ の関係
AWR:過去時点の実行リソース状況(CPU負荷、ブロックアクセス数)の記録や
SQL実行計画を調査するツール
「AWR」と「ADDM」と「アドバイザ」の機能
【AWRレポートの作成方法】
AWRレポートの画面からの作成
AWR:過去時点の実行リソース状況(CPU負荷、ブロックアクセス数)の記録や
SQL実行計画を調査するツール
AWRレポートの内容
・AWRレポートのセクション別の検討項目
・AWRレポートからの性能改善ポイント(着目点)
【AWR期間比較レポートの作成方法】
96-A AWR期間比較レポートの概要
【AWR期間比較レポートの作成方法】
96-B AWR期間比較レポートの画面からの作成
【AWR期間比較レポートの作成方法】
96-C AWR期間比較レポートのコマンドからの作成
【AWR期間比較レポートの作成方法】
96-D AWR期間比較レポートの評価比較値(見方)
【AWR期間比較レポートの作成方法】
96-E ベースライン(AWRスナップショット)の管理
【AWRレポート(Oracle使用負荷状況)での問題の追及】
OEMのTop5Timed Foreground(待機) Eventsの見方
AWRレポートを使ったパフォーマンスの評価
AWRのパフォーマンス統計を見る内容
自動データベース診断モニタ(ADDM)の[GUIから]手動起動方法と目的
AWRスナップショットの採取頻度の設定
AWRスナップショットの明示的収集のための手動コマンド
AWRレポート(Oracle使用負荷状況)のコマンドでの出力操作方法
AWRレポート(Oracle使用負荷状況)のOEMでの出力操作方法
【AWR(自動統計情報 ワークリポジトリ)のスナップショットの自動取得のための設定】
【AWR(自動統計情報 ワークリポジトリ)の統計情報(スナップショット)】
・取得済スナップショット一覧表示
・新規スナップショットの採取
・AWRレポート出力(連続時間)
ADDM(自動データベース診断モニター)の起動方法と操作方法
【手動ADDM(自動データベース診断モニター)の起動による連続な2時点間のAWR
スナップショットの問題点の発見と対応策の提示】
(パフォーマンス評価) Automatic Database Diagnostic Monitor
AWRスナップショットの取得
・自働取得のための初期化パラメータ設定
・AWRスナップショットのパッケージによる手動取得
・取得したAWRの一覧表示
・AWRスナップショットの手動削除
AWRスナップショットのパッケージによる手動取得
AWRスナップショットのパッケージによる削除
―――――――― V$ビュー ――――――――
ASH(Active Session History)とは
CPU使用セッション個数と待機セッション個数(アクティブ・セッション数)のグラフ化表示 【ASH(Active Session History)負荷状況表示グラフ】
・1秒間隔のOracleの全体的な負荷情報
・瞬間的負荷大に対する詳細分析のためのASH(Active Session History)
グラフ表示とレポートの採取
ASH(Active Session History)レポートの出力方法
ASH(Active Session History)ビューの使い方
・指定時間内でのSQL文の実行記録と実行統計の表示
(現在の状態も含まれる)
・CPU使用セッション個数と待機セッション個数のグラフ表示
(アクティブ・セッション数)
ASH(ACTIVE SESSION HISTORY)ビューでは、1秒間隔で保存されたオラクルのプロセス(バックグラウンドとサーバー)の状態遷移の記録したものである
(現在の状態も含まれる)
これを調査すると、各セッションに対する1秒間隔の状態遷移がわかる
また、現在の状態も含まれるので、ロック発生の有無やロック発生原因の元セッションが調査
できる
なお、OEM画面では、グラフ表示されており、視覚的に使用しやすいものである
COMMAND_TYPEに割り当てられている数値一覧
動的V$ビューとStats$テーブルの出力列名
v$sessionとv$sysstateのグラフから分かるトラブル原因
長時間待機しているセッションの調査方法 V$SESSION
長時間アクティブなセッションの調査方法 V$SESSION
Redoログを大量に使用(更新多発)している処理の調査方法 V$SESSTAT
【SQL文からSQL_IDの調査方法】
【SQL_IDからSQL文の内容を表示する】
【SQL_IDからSQL文の調べ方】 事後[過去]
DBA_HIST_SQLTEXT
【SQL文からHASH_VALUE値とSQLアドレスの調査方法】
【SQL文からリソース使用状況の調査方法】
CPU使用率負荷のTOP10 SQL文の調査
【HASH_VALUE → OLD_HASH_VALUE の求め方】
OLD_HASH_VALUEが必要なのは、Statspack詳細レポートの調査のときだけ
【HASH_VALUE → SQL文の調査方法】
【共有プールにキャッシュされているSQL文の実行統計情報の出力】
実行回数、I/O回数、CPU時間、実行(Elaspsed)時間
【SQL文のリソース使用状況の調査方法】 v$sqlareaから
SQLステートメント、HASH VALUE値
実行回数、I/O回数、CPU時間、実行(Elaspsed)時間
v$sqlarea(共有プールにキャッシュされている実行統計)の見方
実行回数、I/O回数、CPU時間、実行(Elapsed)時間
【SQLが使用したCPU時間と実行(Elaspsed)時間の調査】 V$SQLAREA
V$SQL_MONITOR
【共有プールにキャッシュされているSQL文の実行計画の出力】
【v$session、v$session_waitの見方】
・待機イベントが多発していないかの確認
イベント(EVENT)、状態(STATE)
・実行中イベント調査
【v$sessionビューに出力される情報(列)一覧】
【v$sessionビューの列一覧と内容】
セッション情報に関する出力列の内容 v$sessionビュー
セッション情報スクリプトの見方(v$session)
【HASH_VALUE値からリソース使用状況の調査方法】 v$sqlarea
【SQL_IDから実行時間(elapsed_time)、CPU時間、読込みブロック数を表示する】
v$sqltext、v$sqlareaから
DB Time(オラクルの総処理時間)[AWR]=
DB CPU[CPU時間]+ アイドルではない待機イベント時間
※ システム全体に対する考え方
Elapsed Time(SQL文の処理時間[v$sqlarea、SQLトレース])=
CPU時間 + アイドルではない待機イベント時間
※ SQL単体での考え方
データファイル(物理ファイル)に対するI/O回数の調査 v$datafile
実行したSQLのSQLステートメントとSQL_IDを調査する方法
・ライブラリ・キャッシュに残っているSQL
・AWRスナップショットに記録されているSQL
【実行完了したSQL文の実行統計情報の調査】
調査項目: CPU時間、待機時間、処理の開始時間、読取りブロック数
調査対象オブジェクト:V$SESSION_LONGOPS
V$ACTIVE_SESSION_HISTORY
DBA_HIST_ACTIVE_SESS_HISTORY
V$SQL_MONITOR
【SQL文に割当てられたSQL_IDの調べ方】
DBA_HIST_SQLTEXT
USER_IDからユーザー名の調査
V$SYSSTATE
V$SESSTAT
V$MYSTAT
ライブラリ・キャッシュ中に実行計画が保管されているSelect文の一覧
【ディクショナリ(オブジェクト定義情報辞書)にアクセスするために必要な権限】
各種ディクショナリ P.59、64、103、111、115、130、159、160、200、229、235、
241、246、251、279、289、306、312、321、326、338、351、365
V$SESSION動的ビュー(処理中の起動セッション情報)の構成列
セッションに関する情報内容
―――――――― メモリに関する項目 ――――――――
各メモリの割当て量の目安
メモリーチューニングが必要か、の判断基準
自動メモリ管理を利用した時のデメリット
SGAとPGAへの自動メモリ割当ての指針
SGAとPGAに割当てられたメモリサイズ変更の経過(履歴)の調査方法
SGAとPGAメモリの割当て状況とサイズ アドバイス
自動共有メモリ管理(SGA用)の動作モード種類
SQLコマンドでの自動共有メモリ管理を使用時のSGA全体量へのアドバイス表示
【SGAメモリの容量とヒット率の調査とチューニング】
SGAのメモリサイズとSGAコンポーネント間メモリサイズの割当て変更履歴の表示
SGAメモリ使用量の増加原因の調査方法
【SGAメモリに関するパフォーマンス情報】
現在実行中のSGAサイズ変更(拡張、縮小)操作に関する情報を表示する
SGAサイズ変更操作に関する経過記録の情報(最新800件)を表示する
SGAメモリのキャッシュ・ヒット率、設定メモリ量を超えた回数、推定メモリ必要量(すべてメモリ上で操作させた場合の想定量)の表示
(データベース起動時から現在までの統計)
SQLのカーソル・クローズ漏れがあるかの確認方法
バッファキャッシュの用途別メモリ割当てサイズの一覧表示
バッファ・キャッシュ・サイズ・アドバイスを使用するための設定
バッファ・キャッシュ・サイズ・アドバイス機能を表で表す
キープ・バッファ・キャッシュ(プール)のヒット率の確認方法
データベース・バッファ (キャッシュ) のヒット率の表示
リザルト・キャッシュが使用される場合のSelect文の実行計画の表示結果
バッファ・キャッシュにキャッシュされているオブジェクトの名前と使用メモリ・ブロック数の表示
ライブラリ・キャッシュのヒット率の表示
実行されたSelect文の実行計画のキャッシュヒット率
共有プールの構造
共有プール内のリテラル付きSQL文の一覧出力
共有プールのサブプール毎のメモリ使用状況の調査方法
【共有プールの実使用量の調査】
SQLコマンドでの共有プール・サイズのアドバイス表示
shared pool、large pool、java poolの空きメモリの確認
ディクショナリ・キャッシュのヒット率の表示
ディクショナリ・キャッシュ内にキャッシュされているオブジェクトの統計情報とメモリ使用サイズとロード回数を表示
【PGAメモリ領域とは】
OracleのPGAメモリ割当て状況の調査
【SQL文が(セッション)使用しているPGAメモリと一時表領域の容量】
セッションに割当てられたPGAメモリ利用状況の調査方法 V$PROCESS
パラレルクエリを使用した時の実際のメモリ使用量は、初期化パラメータファイルのPGA_AGGREGATE_TARGETで指定した3倍の容量まで使われてしまう
現在のセッションが、使用しているPGAメモリの割当て状況の表示
現在のSQLカーソルに割当てられている作業領域の状況の表示
OEM(EMDC)によるPGAメモリの作業領域サイズ別の実行割合(最適実行、単一パス実行、マルチパス実行)の表示
PGAメモリでメモリ不足が発生したかの情報表示
起動してからのソート処理において、使用SQL作業領域別(最適実行、単一パス実行、マルチパス実行)の総実行回数
―――――――― ロック調査 ――――――――
再帰呼出しSelectを使ったロック元セッションの調査方法
ロック元セッションとロック対象セッションのロック状態関係のツリー形式出力
ロック元の原因側のセッションが、取得しているロック対象データの調査
・ロック状況の調査
【排他制御ロック】
ロックの種類と内容、およびロック実施SQLステートメント
・プロセスと(ロック待ち)待機イベントの関係
【ロック待ち待機イベントの原因元(ロック元)セッションの調査方法】
ロック元セッションが保持しているリソース(オブジェクト)の調査
【排他制御ロック】
ロックの種類と内容、およびロック実施SQLステートメント
ロック待ち待機イベントの原因元(ロック元)セッションの調査方法
【排他制御ロック】
ロック元が実行してきたSQL文の経過記録
【排他制御ロック】
ロック元セッションが確保(ロック)しているオブジェクトの名前調査
【排他制御ロック待ちの状況調査】
行ロックを行っているセッションの特定と対処法 V$LOCK
―――――――― ユーティリティ ――――――――
【SQLコマンドの定期時間間隔での処理実行方法】
【処理の自動実行のためのJOBスケジューリングと実行予定の表示】
・スケジュールに関するテーブルのレコード連携関係
・スケジュール時刻の作成
・スケジュールグループグループの作成
・JOBへのプロシージャの指定
・スケジューリングJOBの登録
・スケジュールされているJOBと関連するレコードの確認方法
・スケジュール実行された実行結果の確認
・スケジュールされているジョブの無効化と有効化
Profilerパッケージによる
【プロシージャのステップ別実行時間の計測 とボトルネックの調査】
プロシージャのステップ別実行時間の調査方法
SQLプロシージャ内の各ステップのステートメント毎に実行された実行回数と実行時間
を出力する
プロシージャ (PL/SQL)やファンクションの
ステップ別実行時間の調査方法
テスト評価中のインデックスの作成方法
VISIBILITY属性:INVISIBLE
テスト評価中のインデックスを使用する方法とその効果検証
インデックス使用効果の検証のためのテストの仕方
【SQLチューニング・セットの一覧表示】
【SQLチューニング・セットの作成方法】
(実行SQLの統計情報、実行計画、実行実績)
コマンドによるSQL文へのSQLチューニング・アドバイザの解析調査
【SQLチューニング・アドバイザの実行(調査作業)とその調査結果(教示事項)】の適用
SQLチューニング・アドバイザ・レポートの出力方法(コマンドモード)
(SQLアクセス・アドバイザの起動)
複雑なSQL文の処理速度を上げるための対応方法(アドバイス取得)の調査
(SQLチューニング・アドバイザの起動)
複雑なSQL文の処理速度を上げるためのSQL文組替え対応方法(アドバイス取得)の調査
SQLチューニング・アドバイザの起動方法 [GUIから]
SQLチューニング・アドバイザの単独使用方法
( SQL*PLUSからのSQL文のチューニング起動方法 )
・SQL文単体の指定
・メモリ上のライブラリ・キャッシュのSQL_ID指定
・AWRリポジトリにあるSQL_ID指定
Oracleデータベースの負荷テスト
Oracleデータベースのスループット・テスト
システム環境(リソース、オブジェクト統計)変更に伴うSQL文の処理効率の影響度調査を行うためのテスト
Oracleデータベースの性能・負荷を調査・分析するためのツールの概要
・Application Testing Suite(ATS)
・Application Replay
・Real Application Testing (RAT)
SQL Performance Analyzer(SPA)
Database Replay
RAT(Real Application Testing)とは、SPA(SQL Performance Analyzer)と
DB Replay(Database Replay)から構成されたオラクルDBサーバーに特化したテスト用
のオプション製品
【Oracleシステムのデータ処理パフォーマンスのテスト・ツールの概要】
※ システム環境の変更による影響度の検証
パッチ適用、オプティマイザ統計情報の更新、初期化パラメータの変更、
スキーマの変更(インデックスの追加、変更)、
CPUの変更や増設、メモリの増設、ディスク装置の変更
・SQLセンテンス単体の再現テスト(SQL Performance Analyzer(SPA))
・本番データ処理の負荷の再現テスト(DB Replay)
【テスト環境を用いた負荷パフォーマンス再現調査のツールの概要】
・SQLセンテンス単体の性能評価 (SQL Performance Analyzer(SPA))
・本番データ処理の負荷の再現テスト (DB Replay)
SPA(SQL Performance Analyzer)を使ってのパフォーマンス・テストの概要手順
SPA(SQL Performance Analyzer)を使ってのパフォーマンス・テストの詳細手順
SPA: SQL Performance Analyzerでは、特定の重要なSQL処理を再現して、システム変更がSQL応答時間とパフォーマンス負荷へどの位の影響を与えるかを検証する
(SQLセンテンス単体の再現テスト)
テストするシステム変更影響項目は、以下の通りです
※ パッチ適用、オプティマイザ統計情報の更新、
スキーマの変更(インデックスの追加、変更)、
初期化パラメータの変更、CPUの変更や増設、メモリの増設、ディスク装置の変更
SQLチューニング・セット(SQL Tuning Set)の一覧表示
SQLチューニング・セット(SQL Tuning Set)の作成方法
STS(SQL Tuning Set):SQL文、実行計画、実行統計情報を格納したOracleのオブジェクト
―― SQLセンテンス単体のパフォーマンス影響度の検証テスト方法 ――
(SQL Performance Analyzer(SPA))
収集した情報(SQLチューニングセット)をテスト環境へ移す方法
エクスポート方法
インポート方法
SPA(SQL Performance Analyzer)によるシステムの設定変更、および環境の変更の
『前』と『後』のパフォーマンス性能の比較方法
チューニング・アドバイザ:性能が悪い原因の提示(ADDM、SPA)を受けて、改善方法を提示するツール
SPA(SQL Performance Analyzer)に対する注意事項
DB Replayを使ったSQL再現負荷テストのための概要手順
DB Replayを使ったSQL再現負荷テストのための詳細手順
リプレイ・クライアントのインストールと設定
リプレイ・クライアントの起動方法
DB Replay:ワークロードから処理をすべて再現して、システム全体の性能を評価するツール
アプリケーションからのデータベース操作のSQLコマンド実行記録を保存して、テスト環境にて状況復元操作として実行するDB Replay(Database Replay)の操作手順
・負荷テスト
・エラー再現テスト
ワークロード: 実行したSQL文のコマンドログ記録 の作成方法
DB Replay(Database Replay)によるワークロード(SQL操作記録)の採取方法と採取データのエクスポート方法
AWRデータ(実行統計、実行計画)のエクスポート操作方法
キャプチャ(採取)したワークロード・ファイルをリプレイ・ファイル形式へフォーマット変換する方法
取得済ワークロードとリプレイ・ファイルをテスト環境へコピーする方法
テスト環境にて、リプレイファイルを使ってSQL処理を再現(リプレイ)させるための操作方法
本番環境で実行したSQL処理とテスト環境でDB Replayを使て再現(リプレイ)したSQL処理の比較のための出力レポート
・リプレイの期間比較レポート
・AWRの期間比較レポート
・期間比較ADDMの実行
■ DB Replay リプレイオプション 設定パラメータ
SQL処理の再現(リプレイ)の動作条件を変更して、疑似仮想負荷での再現テストの実施方法
DB Replay(Database Replay)の注意事項
SPMに関するパッケージ、SQLコマンド の一覧
特定SQL文に関するパフォーマンス分析のための複合情報取得ツール
SQLHC(SQL Tuning Helth-Check)の内容と使い方
SQLT (SQTXPLAIN)の内容と使い方
SQLHC、SQLT診断ツールに関する情報
―――――――― その他 ――――――――
自身のセッションIDの値を表示させる
SELECT SYS_CONTEXT( 'USERENV' , 'SID' ) FROM DUAL ;
セッション(サーバー・プロセス)の強制終了方法
【D/Bのダウンやエラーに関しての現象と確認手段】
【データ復旧についての方法】
【障害発生事例への対応例】
(特定のSQLが性能劣化)
【データファイルを新規作成した時のSCN番号】の調査
レコードの変更を行ったシステム変更番号(SCN)の確認方法
【ファイル番号とブロック番号からのレコード内容を表示する方法】
ユーザーが使用中の一時表領域の表領域名の表示
一時表領域へアクセスしたことを示す待機イベント
一時表領域を使用したSQL文やサイズ、セッションの情報への調査
一時表領域にアクセスした回数の分類とその回数分布の調査方法
一時表領域を使用しているセッションの調査方法 V$TEMPSEG_USAGE
SQL文の実行効率に影響を与えた初期化パラメータ
オブジェクト定義のバージョン管理によるバージョン間の差分情報の「違い表示」と差分適用に必要なDDL(定義文)の作成方法
Where条件で、インデックスが使われない構文(悪い記述例)
【インデックス作成に効果がある列の条件】
索引(インデックス)が使われないSELECT文
バッチファイルをサービスとして設定する方法
RAC構成オラクルの性能問題において、
ネットワークが処理遅延原因になっているかの切り分ける手順
『ORACLE運用対応メニュー』へ戻る