パフォーマンス対応・サブメニュー
本ページは、Oracleデータベースに対する運用、および障害対応のための操作方法を示すインデックスを記述する
なお、本ページは、
「パフォーマンス対応 」
に関するサブ・メニュー部分である
―――――――― 待機イベント対処法 ――――――――
【待機イベント一覧 と 種類ごとの対処方法】
【待機イベント一覧 と 種類ごとの対処方法】
待機イベントが多いかの判断方法、と判明した待機イベント種類ごとの対処方法
【「ロック待ち(enqueue)待機イベント」が多生している場合の対処方法】
【ロック待ち待機イベントの原因元(ロック元)セッションの調査方法】
【log file switch(archive need)待機イベントに対する対処方法】
【「do file sequential read待機イベント」、「do file scattered read待機イベント」が多発の対処方法】
―――――――― SQL文の変更 ――――――――
【比較対象テーブルと突き合わせてのINSERT、UPDATE処理のためのMERGE INTO】
【削除/更新処理における高速化テクニック】
SQL文に対する
実行時間短縮のための対処方法
( パフォーマンス・トラブル時のチェック項目 )
【不一致条件(NOT指定)を持ったWhere句の効率的な条件指定方法(アンチジョイン)】
暗黙型変換の方向
SQL文の実行時に、動的に統計情報をサンプリングして、その取得した統計情報取得の結果で実行計画を改めて作成し、SQL文を実行する方法
SQL文に対する
実行時間短縮のための対処方法
( パフォーマンス・トラブル時のチェック項目 )
テーブル結合の結合順序の最適化ロジック
【SQL文チューニング】
テーブル結合方式による実行計画の効率評価
テーブル連結の数を減らすためのSelect文へのテクニック
(テーブル結合数削減)
Select from テーブル,・・で指定する個数の上限目安(結合させるテーブルの最大指定個数)
―――――――― 対処法 ――――――――
『日常監視』と『障害対応』へのアプローチ(対応)体系
単体SQL文に対する処理効率向上のための改善策の見つけ方
【SQL文によるI/O回数が多い場合の対応方法】
A. SQLの実行回数
B. 表のレコード件数
C. 表への実行計画の変更
→ この判別をStatspack詳細レポートを使用する
【実行計画の最適化方針】
データベース全体のパフォーマンスにおける問題箇所の発見と対処案の提示
物理I/Oが多い現象に対する原因と減らすための対策
セグメント断片化を解消させるためのオブジェクト再構築の方法
表オブジェクトのメンテナンス(断片化の解消)方法の種類と特長
オプティマイザの実行計画の作成に影響する初期化パラメータ
データベースが重視する最適化方針(レスポンス or スループット)の指定
【SQL文最適化の指標(スループット重視 or レスポンス重視)の設定】
マルチブロック・リードにおける
1 I/O当たりのDBブロックの読込み個数
バッファ・キャッシュでのヒット率を加味してオブジェクトへのアクセスを行わせるための、
実行計画の作成のための補正パラメータ
ディスクアクセス負荷軽減のためのユーザー使用一時表領域のアクセス・ストレージ分散
一時表領域の使用を減らす対応
コネクションプーリングが使用出来ない環境での高速接続の方法
処理スピードが遅い場合の原因
FETCH(フェッチ)の時間が大きい場合の原因
【REDOログ・バッファのサイズチューニング】
REDOログ・バッファが原因による遅延発生調査
【UNDO表領域(ロールバックセグメント)の適切なサイズ確保(チューニング)】
DBWn(データベース・ライター・プロセス)のプロセス起動数の指定
ARCn(アーカイバ・プロセス)のプロセス起動数の指定
REDOログ・ファイルとのバッファ・サイズ設定
REDOログ・ファイルのサイズ見積りとサイズ設定
データベース・リカバリで使うチェックポイントの発生間隔指定
SQL文の解析数を減らす方法
(類似SQL文に対して、同じSQL実行計画を使用させる判定基準レベル設定)
【過去のオプティマイザ統計へのセット(リストア)】
【マテリアライズドビュー(実体レコードがあるビュー)】
・作成方法
・リフレッシュ・タイミング
・使い方
【Oracle内に割当てられるリソース資源の使用制限の実施方法】 概要
リソース使用の制限 使用制限対象:oracleユーザー毎
リソース資源の使用配分 使用制限対象:oracleユーザーによるCPU使用配分
(1インスタンス内部でのCPU配分)
リソース管理プラン(使用制限)のリソース・マネージャーの設定内容確認
(1インスタンス内部でのCPU配分)
複数のデータベースを単体サーバーで運用している時の、個別データベース・インスタンスに対するOSリソース資源の使用割当て制限を設定する方法
CPU使用個数制限を使ってOracleインスタンス間でのCPUリソース使用配分の実施方法
(インスタンス・ケージリング機能)
使用CPU数(初期化パラメータ): CPU_COUNT
―――――――― 強制的な実行計画の指定 ――――――――
【実行計画の最適化方針】
(実行計画)テーブル結合の最適順序
ハッシュ結合を使用すべきデータ状況
【CPU能力とI/O処理能力を考慮した実行計画の作成方法】
SELECT文の記述の変更が出来ない処理に対しての実行計画の変更方法
SQL計画管理(SQL Plan Management【SPM】)の本質
SQL計画ベースラインとは
実行計画の固定化のための操作方法
= 「SQL管理ベース」への実行計画の登録(保存)+ 登録された実行計画の使用設定
SQL計画管理【SPM】の使い方
実行計画が変更され、長時間処理になった場合の対処方法
保存されているSQL文の実行計画の利用方法
実行計画のSPMへの自動・手動登録の一覧
SPM(SQL Plan Management)へのSQL実行計画の自動登録方法
FIXED属性を使った実行計画の自動登録方法
実行されたSQL文が、SPM(SQL Plan Management)に登録され固定化されたSQL実行計画
(SQL計画ベースライン)が使用されているのかの確認方法
実行計画のSPMへの手動登録方法
SQL文の実行計画を別のSQL文(ヒント句付き)の実行計画に置き換えてSPMの「SQL管理ベース」へ登録(保存)する方法
⇒『ヒント句を使用して変更したSQL文の実行計画』を、元のSQL文の実行計画
として置き換えて使用する方法
AWR(自動ワークリポジトリ)のSQL情報を基に、実行計画をSPMの「SQL管理ベース」へ登録(保存)する方法
⇒『過去のSQL実行計画』を使って、SQL文の処理を行わせる方法
別のインスタンスのデータベースで作成した実行計画を、異なるデータベースのSPMの「SQL管理ベース」へ登録(保存)する方法
⇒ 違うデータベースの実行計画を【移行】させて、SQL文の処理を行わせる方法
SQL処理時間短縮のために、
実行計画の管理を行うSPM(SQL Plan Management)の導入時の検討事項
【オブジェクトの統計情報を指定した値で強制的に変更する方法】
【指定のSQL文の実行計画の明示作成とその使用】
・明示的な実行計画の取得と保存 及び、保存した実行計画の使用の方法
( プランスタビリティ )
―――――――― ヒント句 ――――――――
ヒント句の書き方 /*+ */
【ヒント句】 Select文でのテーブル結合方式の明示設定
ヒント句によるSelect文でのテーブル結合方式と結合順序の指定設定
オプティマイザヒントの記述方法
(実行計画のアクセス方式の固定指定)
―――――――― インデックス ――――――――
索引(インデックス)の使用可否状態 STATUS
索引(インデクス)のメンテナンス(断片化の解消)方法の種類と特長
索引の再作成(メンテナンス)
索引(インデックス)再構築
通常の索引(インデックス)再構築とオンライン索引(インデクス)再構築の違い
【インデックス使用の有効性】
・結合させる表間の列にインデックスを作成して、連携効率を上げるのは、選択率が低い状況に限る
(列の値の偏りが、分散している)
Where条件で、インデックスが使われない構文(悪い記述例)
インデックスが使われないWhere条件の変更方法 NOT IN
複合インデックス(カバーリングインデックス)の作成方法
【索引利用の取捨選択基準】
ファンクション索引
計算ロジックの結果値に基づいたインデックスの作成
―――――――― メモリの有効活用 ――――――――
【SGAメモリの容量とヒット率の調査とチューニング】
(SGA+PGA)メモリーの自動配分と メモリ・サイズのチューニング
SGA内の共有プール・メモリの自動配分
(ライブラリキャッシュ、ディクショナリキャッシュ、SQL実行計画キャッシュ)
共有プールメモリ・サイズのチューニング
自動共有メモリ管理(SGA用)を使用している時の
最低共有プール・サイズと最低バッファキャッシュ・サイズの指定方法
【PGAメモリサイズのチューニング】
【PGAメモリ】のメモリ割当て量の最適化アドバイス
「共有プール」のメモリ使用量の監視方法
現在使用中だった共有プールとバッファキャッシュ・サイズのポインタをSPFILEからリセット
する方法
共有プールのメモリの必要サイズの決定方法
バッファキャッシュ(テーブルやインデックスの読込済データ)の使用量チューニング
ライブラリ・キャッシュを消去する方法
(共有プール内の実行計画キャッシュ・データ)
【リザルト・キャッシュ】
Select文の実行結果自体を共有プールへ保存させる
そのためのキャッシュの有効活用と初期化パラメータ設定
テーブルとインデックスのレコードをメモリに常駐させる
再利用頻度が高いテーブルのバッファ・キャッシュは、メモリに常駐化させるためにKEEPバッファ・キャッシュに確保する
Select結果をキャッシュに残さないオブジェクト(テーブル)の設定
再利用頻度が低いテーブルのバッファ・キャッシュは、メモリ回収が早いRECYCLEバッファ・キャッシュに確保する
リザルト・キャッシュの強制削除
パッケージ・プロシージャをメモリに常駐させる
SQL実行計画の共有プールからの削除(単一SQL文)
クローズ漏れが無かった時の対応
SQL文の解析結果(実行計画)をキャッシュに可能な限り保持して、SQLの実行前解析を低減させるための設定
表(テーブル)が使うバッファキャッシュの種類(KEEPバッファ、RECYCLEバッファ)の指定
―――――――― ユーティリティの活用 ――――――――
AWRレポートの全体構成
[AWRレポート]の利用の考え方
現在のOracleの実行状況に対するADDMの即時実行の方法
ADDMで出力された診断結果への考察
AWR(自動ワークロード・リポジトリ)とADDM
(自動データベース診断モニタ)および、アドバイザの関係
SQLチューニング・アドバイザ
Where条件の並びや選択方法の記述アドバイス、
オブジェクトの統計情報を取得するためのSQLプロファイル生成
索引の利用アドバイス(SQL文の書換えによる)
SQLアクセス・アドバイザ (マスタリングハンドブックP.583)
索引の作成アドバイス
マテリアライズド・ビューなどの作成と利用アドバイス
ADDMで出力された診断結果への考察
ADDMの『結果出力の表示方法』と『結果リストに対する対処方法への指示』
『自動で』起動されたADDMによる稼働パフォーマンスについての問題点指摘
『現在の』Oracleの実行状況に対するADDMの即時実行の方法
【SQLチューニングの実施(自動チューニングオプティマイザ(OECM画面)を使った)】
【指摘された問題に対する対応策の提示のためのアドバイザの実行】
AWR(自動統計情報 ワークリポジトリ)スナップショットから
SQLチューニング・セット(STS)をコマンドで作成する方法
ADDM自動データベース診断モニタ(Automatic Database Diagnostic Monitor)による
パフォーマンス障害のへの対応
「高負荷SQL文の特定」と「原因分析」および、「修正方法の提示」
ADDMの手動での起動方法
ADDMの調査実行結果の表示方法
SQLチューニング・セット(SQL Tuning Set)の一覧表示
SQLチューニング・セット(SQL Tuning Set)の作成方法
SQLチューニング・アドバイザによる性能改善方法の発見と適用の仕方
ADDMおよび、アドバイザの起動方法
ADDM(自動データベース診断モニター)の起動方法と操作方法
―――――――― 対応調査 ――――――――
コマンド・タイプ(COMMAND_TYPE)番号一覧
Oracleパフォーマンスに係る4大調査事項
パフォーマンス統計(SQL実行実績統計) P.425
待機イベント P.419
実行計画 P.385
オプテイマイザ統計情報(オブジェクト統計) P.395
過去に、実行されていたSQL文の内容調査の方法
―――――――― パーティション構成 ――――――――
サブパーティション区分付きパーティション・テーブルの作成
パーティションの定義方法分割を行ったテーブルの作成方法
【パーティショニング・テーブルの作成】
【パーティショニング・インデックスの作成】
―――――――― テスト ――――――――
テストデータの作成
配列変数を使ったINSERT処理の高速化 (バルクInsert処理)
―――――――― その他 ――――――――
セッション(プロセス)の強制終了の操作方法
『ORACLE運用対応メニュー』へ戻る