サポートエンジニアが語るパフォーマンス問題の原因調査とチューニング 日本オラクル株式会社データベーステクノロジーサポート本部 Principal Technical Support Engineer 田島教子

Similar documents
以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co

Agenda はじめに 目的とゴール Part1の振り返り AWRを使用した性能分析 AWR 概要 AWRに格納される情報 AWR レポートにおける分析アプローチ AWR 確認ポイント Case Study AWRとアーキテクチャの関係 まとめ Part2のポイント まとめ Copyright 20

untitled

はじめに コース概要と目的 Oracle データベースのパフォーマンス問題の分析方法 解決方法を説明します 受講対象者 データベース管理者の方を対象としています 前提条件 データベース アーキテクチャ データベース マネジメント を受講された方 もしくは同等の知識 をお持ちの方 テキスト内の記述につ

今さら聞けない!? Oracle入門 ~後編~

実践!Oracle Enterprise Manager を使用した 簡単データベース管理 日本オラクル株式会社製品事業統括テクノロジー製品事業統括本部シニアセールスコンサルタント海老坂恵

MaxGauge_診断分析プロセス

スライド 1

これは何? ORACLE の内部状態を示す情報の一つである 待機イベントについて解説します 待機イベントを知ることで 一歩進んだパフォーマンスチューニングが出来ます また 待機イベントという切り口を通して ORACLE のアーキテクチャに対する理解を深めていきます なお ORACLE のバージョンは

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

OWI(Oracle Wait Interface)の概要

目次 はじめに... 2 無料トライアルのサインアップ方法... 3 トライアル環境へのアクセス 参考情報

Oracle Web CacheによるOracle WebCenter Spacesパフォーマンスの向上

PowerPoint Presentation

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

How to Use the PowerPoint Template

Slide 1

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

Oracle 入門 ~ 研修受講後のスキルアップサポート ~ 対応バージョン :Oracle 10gR1 ~ 12cR1 本資料は アシスト Oracle 研修をご受講いただいたお客様からのご質問や 研修ではご案内できなかった情報などを FAQ にまとめたものです 研修受講後のスキルアップの一助とし

今さら聞けない!? Oracle入門 ~前編~

Null

PA4

Oracle Direct Seminar <Insert Picture Here> 試験対策ポイント解説 Bronze DBA11g 日本オラクル株式会社

Slide 1

MySQL研修コース & 資格のご案内

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

Slide 1

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

第 3 章代表的なチューニングポイント 3 Q. ストアド プロシージャを使用した SQL 共有率の向上 A. ストアド プロシージャを使用した場合 同じストアド プロシージャを実行する複数のユーザーが 同じ共有 PL/SQL 領域を使用します また ストアド プロシージャは解析済みで格納されている

How to Use the PowerPoint Template

untitled

A. 前ページからの続きです DBMS_SPACE.UNUSED_SPACE の各パラメータの意味 segment_owner = オブジェクトの所有者 segment_name = オブジェクト名 segment_type = オブジェクトタイプ total_blocks = セグメント合計ブロッ

Title Slide with Picture

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

Enterprise Manager 10gによるデータベース・パフォーマンスチューニング

Title Slide with Picture

ORACLE TUNING PACK 11G

Oracle Database 12c

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

Slide 1

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

Oracle Direct 無償支援サービス ヒアリング・シート利用手順

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

Make the Future Java FY13 PPT Template

はじめに コースの概要と目的 Oracle をより効率的に使用するための SQL のチューニング方法について説明します また 索引の有無 SQL の 記述方法がパフォーマンスにどのように影響するのかを実習を通して理解します 受講対象者 アプリケーション開発者 / データベース管理者の方 前提条件 S

第 5 章 結合 結合のパフォーマンスに影響を与える結合の種類と 表の結合順序について内部動作を交えて 説明します 1. 結合処理のチューニング概要 2. 結合の種類 3. 結合順序 4. 結合処理のチューニングポイント 5. 結合関連のヒント

PowerPoint Presentation

アジェンダ ORACLE MASTER Oracle Database 11g 概要 11g SQL 基礎 Ⅰ 試験紹介 ポイント解説 Copyright 2011 Oracle. All rights reserved. 2

Oracle SQL Developer Data Modeler

HULFT 技術サポートサイト お問い合わせ入力操作説明

Slide 1

Null

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

意外と簡単!? Oracle Database 11g -バックアップ・リカバリ編-

バッチ処理にバインド変数はもうやめません? バッチ処理にバインド変数はもうやめません?

Oracle Application Expressの機能の最大活用-インタラクティブ・レポート

<Insert Picture Here> 30 分で理解する ORACLE MASTER 日本オラクル株式会社 Oracle University

Microsoft PowerPoint _SQLDeveloper.ppt [互換モード]

Oracle Database 10g Release 2を使用したデータベース・パフォーマンス

アジェンダ Oracle サーバの見える化はなぜ必要? WebSAMApplicationNavigator で簡単 安心に監視を実現 Oracle 監視の導入コスト 2 NEC Corporation 2009

Oracle Data Pumpのパラレル機能

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

目次 従来の Oracle Database チューニング機能 新機能 リアルタイム SQL 監視 活用例その 1 活用例その 2 まとめ 参考情報 無償技術サービス Oracle Direct Concierge SQL Server からの移行アセスメント MySQL からの移行相談 Postg

OracleDBA(パフォーマンスチューニング(SQL編) - コピー

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

PowerPoint Presentation

スライド 1

Oracle Database 12c Release 1 ( ) CoreTech Seminar

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

Oracle Enterprise Manager 10g R2 Grid Control: データベース管理の新機能

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

Office 365監査ログ連携機能アクティブ化手順書

クラウド時代のインフラ構成/変更管理とコンプライアンス管理

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

FUJITSU Cloud Service ヘルプデスクサービス仕様書

PL/SQLからのオペレーティング・システム・コマンドの実行

Oracle Solaris 仮想環境とプロビジョン環境の構築

Oracle Application Expressの機能の最大活用-インタラクティブ・レポート

APEX Spreadsheet ATP HOL JA - Read-Only

Slide 1

クエリの作成が楽になるUDF

PowerPoint プレゼンテーション

Slide 1


PSQL v12 新機能のご紹介 ~ 認証要件変更に伴う運用の見直し ~ 株式会社エージーテック 2015 年 1 月 13 日

intra-mart Accel Platform

Oracle DatabaseとIPv6 Statement of Direction

untitled

以 下 の 事 項 は 弊 社 の 一 般 的 な 製 品 の 方 向 性 に 関 する 概 要 を 説 明 するものです また 情 報 提 供 を 唯 一 の 目 的 とするものであり いかなる 契 約 にも 組 み 込 むことは できません 以 下 の 事 項 は マテリアルやコード 機 能 を

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

ダンプ取得機能強化サポートオプション Enterprise Edition

本当は難しくない! Oracle Database の負荷テスト 日本オラクル株式会社製品戦略統括本部プリンシパルセールスコンサルタント中島良樹

検証事例 富士通株式会社

スライド 1

自己管理型データベース: アプリケーションおよびSQLチューニング・ガイド

Transcription:

サポートエンジニアが語るパフォーマンス問題の原因調査とチューニング 日本オラクル株式会社データベーステクノロジーサポート本部 Principal Technical Support Engineer 田島教子

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらないで下さい オラクル製品に関して記載されている機能の開発 リリースおよび時期については 弊社の裁量により決定されます Oracle と Java は Oracle Corporation 及びその子会社 関連会社の米国及びその他の国における登録商標です 文中の社名 商品名等は各社の商標または登録商標である場合があります Copyright 2011, Oracle. All rights reserved. 2

Agenda パフォーマンス問題の原因 パフォーマンス問題へのアプローチ 原因調査に有効な取得情報 - SQL トレース - AWR レポート - V$SESSION / V$SESSION_WAIT - ASH (Active Session History) よくあるパフォーマンス問題の原因例 Copyright 2011, Oracle. All rights reserved. 3

パフォーマンス問題の原因 パフォーマンス問題へのアプローチ 原因調査に有効な取得情報 - SQL トレース - AWR レポート - V$SESSION / V$SESSION_WAIT - ASH (Active Session History) よくあるパフォーマンス問題の原因例 <Insert Picture Here> Copyright 2011, Oracle. All rights reserved. 4

パフォーマンス問題が発生 パフォーマンスが悪い! 応答が返らない! Oracle Database Application Server システム利用者 DBA データベースのレスポンスが急に低下してしまった 早急に対処しなければいけないのでいち早く対処策を確認したい!! データベースのパフォーマンス問題を解決する方法は? 原因は決していつも同じではありません そのため 恒常的に有効な解決策はありません Copyright 2011, Oracle. All rights reserved. 5

パフォーマンス問題の原因の例 OS やハードウェア : OS 負荷が高い メモリ丌足 ディスク IO が遅いアプリケーション : アプリケーション側のコーディングミス SQL 文の効率が悪いネットワーク : ネットワーク負荷が高いデータベース : 丌適切なパラメータ設定 データ量の増加 丌適切な実行計画 まずは根本的な問題点を特定した上で その原因に合わせて適切な対処を施す必要があります Copyright 2011, Oracle. All rights reserved. 6

パフォーマンス問題の原因 パフォーマンス問題へのアプローチ 原因調査に有効な取得情報 - SQL トレース - AWR レポート - V$SESSION / V$SESSION_WAIT - ASH (Active Session History) よくあるパフォーマンス問題の原因例 <Insert Picture Here> Copyright 2011, Oracle. All rights reserved. 7

パフォーマンス問題解決への流れ 時系列での事象の把握と整理 状況に合わせた資料取得 取得情報の分析と原因の特定 実装した対処が丌適切? 別の問題が発生? 原因に合わせた対処策の検討と実装 実装した対処の有効性確認 チューニング成功 Copyright 2011, Oracle. All rights reserved. 8

問題発生時の状況把握 パフォーマンス問題の原因特定の第一歩として 発生した事象を正確に整理することが必要 確認するべきポイントとは? 誰が 何を実行して いつ どのような問題が発生したのか 何が発生したのか? ( 特定処理のみが遅延しているのか データベース全体で遅いのか ) いつからいつまで発生したのか? 問題は既に解消したのか? どうやって問題が解消したのか? 問題を検知した方法は? 再現性はあるのか? 遅延しているのか 全く応答がないのかの判断はできているか? Copyright 2011, Oracle. All rights reserved. 9

状況に合わせた資料の取得 取得する情報の種類によって 確認できるポイントや調査項目は大きく変わります したがって いつも同じ情報だけを取得するのではなく 発生時の状況に応じて適切な情報を取得することが重要です データベースのパフォーマンス問題のパターンとは? パフォーマンス問題は主に 2 つのパターンに分けられます 特定の処理のみが遅くなっている場合 データベース全体 あるいは複数の処理が遅くなっている場合 Copyright 2011, Oracle. All rights reserved. 10

パターン別の取得情報 特定の処理のみが遅くなっている場合セッション単位で処理状況が確認できる情報 SQLトレース ASH (Active Session Hitory) V$SESSION / V$SESSION_WAIT 等のビュー データベース全体 あるいは複数の処理が遅くなっている場合データベース全体のパフォーマンス状況が確認できる情報 AWRレポート ASH (Active Session History) V$SESSION / V$SESSION_WAIT 等のビュー ps / top / vmstat / sar などOSのリソース使用状況が分かる情報 Copyright 2011, Oracle. All rights reserved. 11

パフォーマンス問題の原因 パフォーマンス問題へのアプローチ 原因調査に有効な取得情報 - SQL トレース - AWR レポート - V$SESSION / V$SESSION_WAIT - ASH (Active Session History) よくあるパフォーマンス問題の原因例 <Insert Picture Here> Copyright 2011, Oracle. All rights reserved. 12

SQL トレースとは 任意の SQL に対して 実行計画や処理時間 待機イベント など詳細なパフォーマンス情報をトレースファイルに出力 出力される情報例 CPU 時間 / 経過時間 処理された回数 待機イベントの発生回数 待機時間 ディスクから読み込んだブロック数 バッファキャッシュから読み込んだブロック数 TKPROF を使用して見やすい出力に整形し その結果を診断 Copyright 2011, Oracle. All rights reserved. 13

SQL トレースの取得方法例 1. トレースの取得を開始 serial# SQL> exec dbms_monitor.session_trace_enable(10, 150); 2. 対象セッションで調査対象の SQL 文を実行 sid SQL> select e.empno, d.dname, e.ename from emp e, dept d where e.deptno=d.deptno order by e.empno, d.dname; 3. トレースの取得を終了 SQL> exec dbms_monitor.session_trace_disable (10, 150); 4.TKPROF でトレースファイルを整形 出力させるファイル名 % tkprof ora11107_ora_24607.trc ora11107_ora_24607.tkp 取得したトレースファイル名 Copyright 2011, Oracle. All rights reserved. 14

SQL トレースの出力例 1 処理時間 count : 実行された回数 cpu :CPU 時間 elapsed : 待機イベントも含めた経過時間 disk : ディスクから読み込んだブロック数 query + current : バッファ キャッシュ上でアクセスしたデータブロック数 rows : 処理された行数 call count cpu elapsed disk query current rows ------- ------ ------ ------- ------ ------ ------- -------- Parse 1 0.00 0.00 4 4 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 838862 45.63 76.75 41101 84 360 1000000 ------- ------ ------ ------- ------ ------ ------- -------- total 838864 45.63 76.75 41105 88 360 1000000 CPU 時間よりもElapsedが非常に大きくなっている待機イベントがボトルネックとなっている 待機イベントをチェック CPU 時間自体が大きいバッファキャッシュへのアクセスが多い 実行計画をチェック Copyright 2011, Oracle. All rights reserved. 15

SQL トレースの出力例 2 実行計画 Misses in library cache during parse : ハードパースされた回数 Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 81 Rows : 実行計画の各行で処理された行数 Row Source Operation : 実際に選択された実行計画 Rows Row Source Operation ------- --------------------------------------------------- 1000000 SORT ORDER BY (cr=10111 pr=41101 pw=41099 time=137966 1000000 HASH JOIN (cr=10111 pr=0 pw=0 time=30018 us cost=83 1000000 TABLE ACCESS FULL EMP (cr=10108 pr=0 pw=0 time=0 us 325 TABLE ACCESS FULL DEPT (cr=38 pr=0 pw=0 time=0 us Rows や CR が非常に大きなアクセスパスがある場合には 実行計画が適切ではない可能性が考えられる 統計情報の取得状況や 正常時との実行計画の違いをチェック Copyright 2011, Oracle. All rights reserved. 16

SQL トレースの出力例 3 待機イベント Event waited on : 待機イベント名 Times Waited : 待機が発生した回数 Total Waited : 合計の待機時間 Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited --------------------------- Waited --------- ------------ db file sequential read 144 0.00 0.00 direct path write temp 1547 0.20 14.89 local write wait 339 0.16 0.41 direct path read temp 81582 0.32 7.68 待機イベントのタイプに合わせて対処方法を検討 対処すべき待機イベントのタイプは主に2 種類 ロックやラッチなどのリソースが使用可能になるまで待機 対象リソースの競合を抑制するように処理の実装を変更 ディスクIOやログスイッチなど ある動作が完了するまで待機 待機している動作自体を抑制できるようなチューニングを検討 Copyright 2011, Oracle. All rights reserved. 17

AWR レポートとは 任意の2 時点で取得したスナップショットに基づき データベースパフォーマンスに関連した統計をレポート形式で出力 スナップショット スナップショット 12:00 13:00 1 時間分のデータベースの状況をレポート化出力される情報例 待機イベントの発生回数や合計の待機時間 負荷の高い上位 SQL 文 SGAやPGAのメモリ使用状況 データベース全体のアクティビティやアプリケーションの傾向 待機イベントの発生状況などの負荷状況をチェック Copyright 2011, Oracle. All rights reserved. 18

AWR レポートの取得方法例 1. スナップショットを取得 SQL> exec dbms_workload_repository.create_snapshot; 2. ボトルネックを確認したい処理を実行 3. 再度スナップショットを取得 SQL> exec dbms_workload_repository.create_snapshot; 4. 上記 2 期間を対象としたレポートを出力 SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql (*) AWR スナップショットはデフォルトで 1 時間毎に自動取得されています Copyright 2011, Oracle. All rights reserved. 19

AWR レポートの出力例 Load Profile 秒単位 トランザクション単位での REDO 生成量 ブロック読み込み回数 処理回数などの情報を出力 Per Second Per Transaction --------------- --------------- Redo size: 134,070.50 89,250.59 Logical reads: 4,312.69 2,988.93 Block changes: 452.13 325.34 Physical reads: 168.30 122.46 Physical writes: 39.22 26.43 User calls: 24.57 19.32 Parses: 6.42 4.55 Hard parses: 0.48 0.23 Sorts: 1.55 1.43 Logons: 0.39 0.14 Executes: 139.45 86.43 Transactions: 1.46 正常時のレポートと比較することで 負荷特性が大きく異なる 処理を実行した場合のボトルネック 負荷状況の違いを判断 Copyright 2011, Oracle. All rights reserved. 20

AWR レポートの出力例 Top 5 Timed Foreground Events アイドルイベント以外の上位待機イベントや CPU 時間を出力 Top 5 Timed Events Avg %Total ~~~~~~~~~~~~~~~~~~ wait Call Event Waits Time (s) (ms) Time -------------------------- ------------ ----------- ------ ------ db file sequential read 2,599,951 21,568 8 53.5 CPU time 8,529 21.2 gc cr multi block request 687,139 1,765 3 4.4 db file scattered read 63,925 1,667 26 4.1 gc cr grant 2-way 1,918,674 1,615 1 4.0 ------------------------------------------------------- CPU time: データベース内の処理で CPU を使用していた時間 処理が多数実行されている状況で 一番ボトルネックになって いる待機イベントを特定 待機イベントのタイプに合わせてチューニングポイントを検討 Copyright 2011, Oracle. All rights reserved. 21

AWR レポートの出力例 SQL ordered by~ 特定の基準にもとづいて 上位 SQL 文を出力 出力されるセクション例 SQL ordered by Elapsed Time SQL ordered by CPU Time SQL ordered by Gets SQL ordered by Reads SQL ordered by Executions SQL ordered by Parse Calls : 処理時間 : CPU 時間 : バッファキャッシュからの読み込みブロック数 : ディスクからの読み込みブロック数 : 処理の実行回数 : 解析された回数 以下のようなケースで負荷の高いSQLの特定に有効 ディスク読み込みやバッファアクセスが多い場合 多くの処理が実行されていてどれが時間を要しているかが判断できていない場合 Copyright 2011, Oracle. All rights reserved. 22

V$SESSION/V$SESSION_WAIT とは 現在のセッション情報を出力するビュー V$SESSION / V$SESSION_WAIT の列の例 SID : セッションの SID EVENT : 待機イベント名 STATE : セッションの状態 WAITING セッションは待機イベントで待機中 WAITED / WAITED_xxx_TIME 最後にEVENT 列に表示されている待機イベントで待機した後 CPUを使用して処理を実行中 BLOCKING_SESSION : リソースを保持しているセッションID SECONDS_IN_WAIT : 待機した時間 ( 秒 ) セッション単位での待機状況 遷移をチェック 何かの処理をしているのか 待機イベントで待機しているのか 特定の待機イベントで待機し続けているのか 遷移しているのか Copyright 2011, Oracle. All rights reserved. 23

ASH (Active Session History) とは アクティブな状態のセッション情報を SGA 上で 1 秒毎に収集 さらに SGA 上の情報は AWR のスナップショットの取得時にサンプリングされて保存 V$ACTIVE_SESSION_HISTORYビュー SGA 上で収集されたアクティブセッションの情報 DBA_HIST_ACTIVE_SESS_HISTORYビューサンプリングして保存されたアクティブセッションの情報 ASHレポート保存された情報を元に 指定された期間のパフォーマンス状況をレポート化 V$SESSION と同じくセッション単位での処理や待機イベントの遷移をチェック Copyright 2011, Oracle. All rights reserved. 24

ASH で出力される情報例 DBA_HIST_ACTIVE_SESS_HISTORY ビューの列の例 INSTANCE_NUMBER SAMPLE_TIME SESSION_ID SQL_ID EVENT P1, P2, P3 SESSION_STATE BLOCKING_SESSION : インスタンス番号 : サンプルの時間 : セッション ID : SQL_ID : 待機イベント : 待機イベントの引数 : セッションの状態 (WAITING/ON CPU) : ロック等のリソースをブロックしているセッション ID 一回の検索だけで特定セッションの遷移を確認可能 過去の情報を一定期間 (11gR1 以降は 8 日間 ) 保存 現象の解消後も情報を取得可能 Copyright 2011, Oracle. All rights reserved. 25

ASH 情報の確認例 select sample_time, session_id, event from dba_hist_active_sess_history where sample_time between to_timestamp( 11-10-05 21:00:00, YY-MM-DD HH24:MI:SS ) and to_timestamp( 11-10-05 23:00:00, YY-MM-DD HH24:MI:SS') order by sample_time; SAMPLE_TIME SESSION_ID EVENT ---------------------- ---------- ---------------------------- 11-10-05 21:35:01.288 160 control file parallel write 11-10-05 21:00:57.667 160 control file parallel write 11-10-05 22:01:24.461 161 log file parallel write 11-10-05 22:01:14.281 137 db file sequential read : 一定期間のセッション毎の SQL や待機イベントの変化を確認 セッションがハングしているのか 遷移しているのかを判断 Copyright 2011, Oracle. All rights reserved. 26

発生しやすい待機イベント例 enq: TX - row lock contention 複数セッションから同一行に対するトランザクションが発行されている latch: cache buffers chains バッファキャッシュ上で同一ブロックへのアクセス競合が発生している db file scattered read / db file sequential read 長時間待機が続いている場合には HW や IO 関連でボトルネックが発生している可能性がある cursor: pin S / cursor: pin S wait on X 特定の SQL に対するアクセスやハードパースが大量に発生している Copyright 2011, Oracle. All rights reserved. 27

パフォーマンス問題の原因 パフォーマンス問題へのアプローチ 原因調査に有効な取得情報 - SQL トレース - AWR レポート - V$SESSION / V$SESSION_WAIT - ASH (Active Session History) よくあるパフォーマンス問題の原因例 <Insert Picture Here> Copyright 2011, Oracle. All rights reserved. 28

よくあるパフォーマンス問題の原因 : ケース 1 ケース1: 特定のSQLのパフォーマンスダウンいつもは数秒程度で完了する特定の処理が 突然時間を要するようになってしまった よくある原因例 最新の統計情報が取得されていないため 丌適切な実行計画が選択された SQLで処理されるデータ量が増加した (EXISTS 句 IN 句 + 副問い合わせを含むSQL 等 ) 他のセッションで実行されているSQLとのリソース競合が発生した アプリケーションからのSQLの実行回数が増加した バッファキャッシュ上に対象のデータがないためにディスクIOが発生した WHERE 句の条件にバインド変数を使用して同じSQL 文を繰り返して実行しているために ソフトパースにより実行計画が変化していない Copyright 2011, Oracle. All rights reserved. 29

調査アプローチ : ケース 1 正常時と遅延時の SQL トレース処理に要した時間 待機イベントの発生回数や待機時間 処理された行数 実行計画の違いをチェックまた ハードパースで実行されているかどうかもチェック可能 現象が発生した時間を含む V$ ビュー / ASH の情報対象セッションでの待機イベントの遷移状況 ロックやラッチなどのリソースをブロックしているセッションの特定 表のデータ量 データ内容の変化の度合い急に処理されるデータが増加していないかどうかを確認 表 索引 列 パーティションに対する DBA ビューの情報統計情報の取得状況やオブジェクトの状態などをチェック ( 統計情報の取得時刻は LAST_ANALYZED 列から オブジェクトの状態は STATUS 列より判断可能 ) Copyright 2011, Oracle. All rights reserved. 30

よくあるパフォーマンス問題の原因 : ケース 2 ケース 2: データベース全体のパフォーマンスダウン バッチ処理の実行中に 急にデータベースのパフォーマンスが 低下してしまった よくある原因例 複数のセッション間で同一のリソースに対する競合が発生した ( 同一行へのトランザクション 同一ブロックへのアクセス等 ) ユーザ数 ( セッション数 ) 処理量が増加したため負荷が高くなった ( バッファキャッシュや共有プール上の情報の AGEOUT 等 ) CPU やメモリ使用 ディスク IO などマシンや OS のリソース制限や リミットに抵触した 特定セッションの処理が遅延したため 連鎖的に他のセッションでも影響を受けた アプリケーションやクライアントからの処理要求が正しく届いていない Copyright 2011, Oracle. All rights reserved. 31

調査アプローチ : ケース 2 正常時と事象発生時の AWR レポートセッション数 トランザクションや SQL の実行回数 待機イベントでの待機時間の傾向の違いを確認 ps, sar, vmstat, top などの OS コマンドの結果マシン全体の CPU リソースの使用状況をチェックし システムの負荷状況や 特定プロセスの CPU 使用率が高い状態ではないかどうかを確認 V$ ビュー / ASH 事象発生時間帯の全体的な待機イベントの遷移状況 ロック等のリソース待機が原因の場合はその保持プロセスの状態を確認 アプリケーション / クライアント側の実行ログアプリケーションやクライアントからの処理の発行回数や頻度自体が低下していないかどうかをチェック Copyright 2011, Oracle. All rights reserved. 32

まとめ <Insert Picture Here> Copyright 2011, Oracle. All rights reserved. 33

まとめ パフォーマンス問題へのアプローチ発生した問題について詳細に整理した上で 問題のタイプにあわせて適切な資料の取得と解析が重要 取得資料のバリエーション取得可能な情報は様々な種類があるが 状況にあわせて取得するべき資料 確認するべきポイントが異なる パフォーマンス問題の傾向お問い合わせがあるパフォーマンス問題には陥りがちな傾向がある パフォーマンス問題の発生を極力抑制 予期せぬ問題が発生した場合にも より素早い解決を実現 Copyright 2011, Oracle. All rights reserved. 34

補足 1 セミナーで紹介した各種情報については以下のマニュアルで詳細に 紹介されています SQL トレース (TKPROF) / AWR / ASH の使用方法 Oracle Database パフォーマンス チューニング ガイド 11g リリース 2(11.2) Oracle Database パフォーマンス チューニング ガイド 11g リリース 1(11.1) 21 アプリケーション トレース ツールの使用方法 5 自動パフォーマンス統計 V$ ビューや DBA ビュー定義 Oracle Database リファレンス 11g リリース 2(11.2) Oracle Database リファレンス 11g リリース 1(11.1) Copyright 2011, Oracle. All rights reserved. 35

補足 2 AWR / ASH の使用にかかわるライセンス情報 Oracle Database ライセンス情報 11g リリース 2(11.2) Oracle Database ライセンス情報 11g リリース 1(11.1) DBMS_MONITOR パッケージの定義 Oracle Database PL/SQL パッケージ プロシージャおよびタイプ リファレンス 11g リリース 2(11.2) Oracle Database PL/SQL パッケージ プロシージャおよびタイプ リファレンス 11g リリース 1(11.1) Copyright 2011, Oracle. All rights reserved. 36

補足 3 サポート契約を締結されているお客様は 今回ご紹介したツールや 取得情報に関して以下の技術文書 (KROWN) も確認いただけます KROWN : 109185 Oracle 10g トレース機能 (DBMS_MONITOR) KROWN : 137157 SQL トレースを使用したSQLチューニング KROWN : 136531 AWR レポートリファレンス - 目次 KROWN : 127934 Active Session History(ASH) 情報の取得方法 KROWN : 66559 ハング時に取得する情報およびその取得方法 (Oracle9i 以降対応版シングルインスタンス対応 ) KROWN : 140563 OS Watcher (OSW) を使用してオペレーティング システムに関する情報を取得する方法 Copyright 2011, Oracle. All rights reserved. 37

補足 4 KROWN はパフォーマンスに関する情報をまとめたサイト (Krown Directory Service) からも参照いただけます Copyright 2011, Oracle. All rights reserved. 38

My Oracle Support (https://support.oracle.com/csp/ui/flash.html) ナレッジ 日本語ナレッジ ベース Oracle KROWN ディレクトリ サービス Copyright 2011, Oracle. All rights reserved. 39

OTN セミナーオンデマンド コンテンツに対するご意見 ご感想を是非お寄せください OTN オンデマンド感想 http://blogs.oracle.com/oracle4engineer/entry/otn_ondemand_questionnaire 上記に簡単なアンケート入力フォームをご用意しております セミナー講師 / 資料作成者にフィードバックし コンテンツのより一層の改善に役立てさせていただきます 是非ご協力をよろしくお願いいたします Copyright 2011, Oracle. All rights reserved. 40

OTN セミナーオンデマンド日本オラクルのエンジニアが作成したセミナー資料 動画ダウンロードサイト 掲載コンテンツカテゴリ ( 一部抜粋 ) Database 基礎 Database 現場テクニック Database スペシャリストが語る Java WebLogic Server/ アプリケーション グリッド EPM/BI 技術情報サーバーストレージ 100 以上のコンテンツをログイン不要でダウンロードし放題 データベースからハードウェアまで充実のラインナップ 毎月 旬なトピックの新作コンテンツが続々登場 例えばこんな使い方 製品概要を効率的につかむ 基礎を体系的に学ぶ / 学ばせる 時間や場所を選ばず ( オンデマンド ) に受講 スマートフォンで通勤中にも受講可能 毎月チェック! コンテンツ一覧はこちら http://www.oracle.com/technetwork/jp/ondemand/index.html 新作 & おすすめコンテンツ情報はこちら http://oracletech.jp/seminar/recommended/000073.html OTN オンデマンド Copyright 2011, Oracle. All rights reserved. 41

オラクルエンジニア通信オラクル製品に関わるエンジニアの方のための技術情報サイト 技術資料 インストールガイド 設定チュートリアル etc. 欲しい資料への最短ルート アクセスランキング 他のエンジニアは何を見ているのか? 人気資料のランキングは毎月更新 特集テーマ Pick UP 性能管理やチューニングなど月間テーマを掘り下げて詳細にご説明 技術コラム SQL スクリプト 索引メンテナンス etc. 当たり前の運用 / 機能が見違える!? http://blogs.oracle.com/oracle4engineer/ オラクルエンジニア通信 Copyright 2011, Oracle. All rights reserved. 42

oracletech.jp IT エンジニアの皆様に向けて旬な情報を楽しくお届け 製品 / 技術情報 Oracle Database っていくら? オプション機能も見積れる簡単ツールが大活躍 セミナー 基礎から最新技術までお勧めセミナーで自分にあった学習方法が見つかる スキルアップ ORACLE MASTER! 試験頻出分野の模擬問題と解説を好評連載中 Viva! Developer 全国で活躍しているエンジニアにスポットライト きらりと輝くスキルと視点を盗もう http://oracletech.jp/ oracletech Copyright 2011, Oracle. All rights reserved. 43

あなたにいちばん近いオラクル Oracle Direct まずはお問合せください Oracle Direct システムの検討 構築から運用まで IT プロジェクト全般の相談窓口としてご支援いたします ステム構成やライセンス / 購入方法などお気軽にお問い合わせ下さい Web 問い合わせフォーム 専用お問い合わせフォームにてご相談内容を承ります http://www.oracle.co.jp/inq_pl/inquiry/quest?rid=28 フリーダイヤル 0120-155-096 フォームの入力にはログインが必要となります こちらから詳細確認のお電話を差し上げる場合がありますので ご登録の連絡先が最新のものになっているかご確認下さい 月曜 ~ 金曜 9:00~12:00 13:00~18:00 ( 祝日および年末年始除く ) Copyright 2011, Oracle. All rights reserved. 44

Copyright 2011, Oracle. All rights reserved.

Copyright 2011, Oracle. All rights reserved. 46