Oracle Direct Seminar <Insert Picture Here> もうアプリ修正は必要ない! 画期的な SQL チューニング手法 日本オラクル株式会社

Similar documents
untitled

Slide 1

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

untitled

Agenda パフォーマンス チューニングとは ボトルネック箇所の特定 代表的なチューニング項目 メモリ割り当てのチューニング ディスクI/Oのチューニング SQL 文のチューニング Copyright 2010, Oracle. All rights reserved. 2

ORACLE TUNING PACK 11G

Slide 1

Slide 1

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

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

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

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

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

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

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

PA4

アジェンダ ORACLE MASTER Oracle Database 11g 概要 Gold DBA11g 試験紹介 ポイント解説 無償技術サービス Oracle Direct Concierge SQL Server からの移行アセスメント MySQL からの移行相談 PostgreSQL から

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

untitled

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

Slide 1

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

Slide 1

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

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

Slide 1

PowerPoint Presentation

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

意外と簡単!?Oracle Database 10g Release2 - データベース構築から運用まで - データベースの運用 - チューニング編 (Windows 版 ) Creation Date: Nov 2, 2005 Last Update: Nov 2, 2005 Version: 1

30 分で理解する ORACLE MASTER ORACLE MASTER 概要 取得メリット 最新動向 勉強方法について Copyright 2011, Oracle. All rights reserved. 2

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

Slide 1

Oracle Data Pumpのパラレル機能

第 7 章 ユーザー データ用表領域の管理 この章では 表や索引を格納するユーザー データ用表領域の作成や 作成後のメンテナンスに ついて解説します 1. ユーザー データ用表領域の管理概要 2. ユーザー データ用表領域作成時の考慮事項 3. ユーザー データ用表領域の作成 4. ユーザー データ

意外と簡単

Oracle Direct Seminar <Insert Picture Here> システム管理者必見! ~ 乱立する DB と OS のユーザー / 権限管理の改善方法 日本オラクル株式会社 Fusion Middleware 事業統括本部 Security SC 部大森潤

Agenda Oracle Database の概要 Oracle Databaseの内部構造 Oracle Databaseの処理の仕組み Oracle Database の管理 メモリの管理 領域の管理 Oracle Database の運用ポイント ( 概要 ) データベースの起動と停止 デー

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

Oracle Tuning Pack

Windowsユーザーの為のOracle Database セキュリティ入門

Oracle Database 11g Oracle Real Application Testing

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

第 3 章 メディア障害とバックアップ リカバリ この章では メディア障害の発生に備えたバックアップ方法と 障害時の基本的なリカバリ方法につい て説明します 1. メディア リカバリ概要 2. ファイルの多重化 3. アーカイブ モードの設定 4. バックアップ概要 5. 一貫性バックアップ ( オ

Agenda Windows ServerとOracle Databaseについて 最低限知っておいてほしい セキュリティ面でのポイント Windowsユーザー向け.NET 開発者向け Copyright 2011, Oracle. All rights reserved. 2

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

Oracle Database 12c Release 1 ( ) CoreTech Seminar

スライド 1

Oracle Business Intelligence 11g Core Tech Seminar Oracle Essbase

Oracle Database 12c

untitled

Oracle Direct Seminar <Insert Picture Here> 試験対策ポイント解説 11g SQL 基礎 Ⅰ 日本オラクル株式会社

Oracle SQL Developer Data Modeler

Veritas System Recovery 16 Management Solution Readme

アジェンダ Oracle GoldenGate 概要 Oracle GoldenGate 活用ポイント Trigger Delete Cascade 設定テーブルの競合 ASM インスタンスへの接続 Bounded Recovery まとめ 2

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

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

Oracle on Windows

Oracle Data Pumpのパラレル機能

How to Use the PowerPoint Template

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

Oracle Direct Seminar <Insert Picture Here> 体感型セミナー SQL をクイズ感覚で学ぶ! SQL クイズ 日本オラクル株式会社

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

PowerPoint Presentation

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

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

PowerPoint Presentation

Slide 1

Oracle活用実践演習コース

Microsoft Word - PDFHS _ doc

ORACLE PARTITIONING

How to Use the PowerPoint Template

How to Use the PowerPoint Template

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

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

Oracle DatabaseとIPv6 Statement of Direction

Agenda Overview 災害対策方法検討 実現可能となるソリューション リアルタイム性 運用管理面に優れたOracle Data Guard 柔軟な構成を可能にするOracle GoldenGate Oracle 標準機能で利用可能な基本スタンバイ データベース 2

OM.indd

CSforSVSec_UserGuide

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

自己管理型データベース: 自動SGAメモリー管理

Oracle Database 11gのSQL Plan Management

Slide 1

はじめに コース概要と目的 Oracle を使用した開発 管理を行う上でのファースト ステップとして リレーショナル データベース管理ソフトウェアである Oracle の役割 基本機能 基本アーキテクチャを幅広く理解することを目的としています 受講対象者 これから Oracle を使用する方 データ

Agenda Oracle Database の概要 Oracle Database とは Oracle Database のしくみ Oracle Database 構築の流れと代表的な構造 データベース ユーザ データベース オブジェクト 企業の様々な要件を実現する Oracle Database

Slide 1

アーカイブ機能インストールマニュアル

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

Agenda パラレル実行の概要と効果 11g R1までのパラレル実行にまつわる懸念点 簡単設定で解決!! Oracle Database 11g R2のパラレル化 まとめ 2

Oracle DatabaseとIPv6 Statement of Direction

アーカイブ機能インストールマニュアル

PostgreSQL SQL チューニング入門 ~ Explaining Explain より ~ 2012 年 11 月 30 日 株式会社アシスト 田中健一朗

ファイル、メールからの情報漏えいを防ぐための Oracle Information Rights Management 11g

Oracle Enterprise Manager 10g System Monitoring Plug-In for IBM WebSphere Application Server

第 2 章 問合せの基本操作 この章では データベースから情報を検索する際に使用する SELECT コマンド および SELECT コマンドと 同時に使用する句について説明します 1. 問合せとは 2. 基本的な問合せ 3. 列の別名 4. 重複行を一意にする 5. 検索行の絞込み 6. 文字パター

Null

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

Microsoft PowerPoint - J-S301167_idx_comp.ppt [互換モード]

APEX Spreadsheet ATP HOL JA - Read-Only

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

Oracle Corporation

Transcription:

Oracle Direct Seminar <Insert Picture Here> もうアプリ修正は必要ない! 画期的な SQL チューニング手法 日本オラクル株式会社

Agenda 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ Oracle Direct の無償技術サービス SQL Server からの移行アセスメント MySQL からの移行相談 PostgreSQL からの移行相談 Access からの移行アセスメント Application Server 移行相談 Oracle Database バージョンアップ支援 Oracle Developer/2000 Web アップグレード相談 パフォーマンス クリニック Oracle Database 構成相談 システム連携アセスメント http://www.oracle.com/lang/jp/direct/services.html Copyright 2010, Oracle. All rights reserved. 2

Agenda 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ Copyright 2010, Oracle. All rights reserved. 3

従来のデータベース チューニング 利用者 処理に時間がかかっています! あわわ 原因は何だろう!? 様々なツールを駆使して調査 運用管理者 Top 5 Timed Events ~~~~~~~~~~~~~~~~~~ % Total Event Waits Time (s) Ela Time ---------------------------------- ------------ ----------- -------- db file sequential read 51,925 8,172 91.49 log file sync 29,367 386 4.32 db file parallel write 614 172 1.93 CPU time 141 1.58 log file parallel write 20,158 53.59 原因の特定設定の変更 SQL 文の変更その設定でパフォーマンスが改善されるか確認改善されていなければ再調査 何がボトルネック原因なのか? データの増加 / アプリの追加 Copyright 2010, Oracle. All rights reserved. 4

一般的なチューニングの流れ ボトルネックの特定 OS 統計 (CPU ディスクI/Oなど) データベース内情報 内部ビュー ( 動的パフォーマンス ビュー ) Statspack ボトルネック状況に応じたチューニング メモリ割り当ての増加 ディスク配置の検討 新しい機能の導入 実行されるSQLのチューニング Copyright 2010, Oracle. All rights reserved. 5

ボトルネックの調査動的パフォーマンス ビューによる分析 メモリ使用状況の確認 < ディクショナリ キャッシュ ミス率の計算 > SELECT SUM(getmisses) / SUM(gets) FROM v$rowcache ミス率が 10~15% を上回る場合は 初期化パラメータ SHARED_POOL_SIZE の値を増やす < DB バッファ キャッシュのヒット率の計算 > 1- physical reads physical reads direct physical reads direct(lob) Session logical reads ヒット率が 90 % を下回る場合は 初期化パラメータ DB_CACHE_SIZE の値を増やす 領域使用状況の監視 SELECT TABLESPACE_NAME "TABLESPACE",INITIAL_EXTENT "INITIAL_EXT", NEXT_EXTENT "NEXT_EXT",MIN_EXTENTS "MIN_EXT", MAX_EXTENTS "MAX_EXT",PCT_INCREASE FROM DBA_TABLESPACES; TABLESPACE INITIAL_EXT NEXT_EXT MIN_EXT MAX_EXT PCT_INCREASE ---------- ----------- -------- ------- ------- ------------ SYSTEM 106496 106496 1 99 1 TEMP 106496 106496 1 99 0 TESTTBS 57344 16384 2 10 1 USERS 57344 57344 1 99 1 Copyright 2010, Oracle. All rights reserved. 6

ボトルネックの調査 Statspack による分析 Statspack(STATISTICS PACK) パフォーマンス チューニングに役立つ情報を収集し レポート形式で表示するツール ある期間で Oracle が行なった処理の統計情報を収集 メモリのキャッシュヒット率 待ち時間の内訳 トランザクション統計 処理に時間のかかった SQL 文 データベース内部で 何が行われているか判断 時間 さまざまな処理 ( アプリケーションの実行 / データのロードなど ) スナップショット A A 時点の統計データ取得 スナップショット B B 時点の統計データ取得 B-A の値 (2 つの時点の統計データの差分 ) をもとに その間のパフォーマンス統計データを出力 Copyright 2010, Oracle. All rights reserved. 7

Statspack からのボトルネック特定方法 メモリの使用状況 データベース内の待機イベント Copyright 2010, Oracle. All rights reserved. 8

一般的なチューニング ポイント メモリ割り当ての増加 ディスク配置の検討 RAID の導入 ディスクの追加 新しい機能の導入 Real Application Clusters パーティショニング 実行される SQL のチューニング 索引のチューニング 構文の変更 実行計画の変更 統計の取得 ヒント句の使用 Copyright 2010, Oracle. All rights reserved. 9

一般的な SQL チューニング索引のチューニング 索引に関するチューニング 最適な索引タイプの選択 B-tree 索引 ビットマップ索引 逆キー索引 複合索引 索引構成表 ファンクション索引 データの偏りの解消 ヒストグラムの作成 索引のメンテナンス 断片化の解消 索引の再構築 索引に関しては 下記 Direct Seminar で 実践!! パフォーマンス チューニング - 索引チューニング編 - 名前列の B ツリー索引 Aoki rowid Baba rowid 性別列の B ツリー索引 男 rowid 男 rowid Fujita rowid Hiraga rowid ( 男 ) ( 女 ) 男 rowid 男 rowid (M ) ( F ) (S) Morita rowid Nagao rowid ( 女 ) 女 rowid 女 rowid Sato rowid Suzuki rowid 女 rowid 女 rowid Copyright 2010, Oracle. All rights reserved. 10

一般的な SQL チューニング構文の変更 同じ結果になる SQL 文であっても 実行計画が異なる場合がある 実行計画から コストの低い書き方を選択 SELECT 年代, 性別,sum( 代金 ) FROM 注文表 GROUP BY 年代, 性別 UNION SELECT null, 性別,sum( 代金 ) FROM 注文表 GROUP BY 性別 UNION SELECT 年代,null,sum( 代金 ) FROM 注文表 GROUP BY 年代 UNION SELECT null,null,sum( 代金 ) FROM 注文表 ; SELECT 年代, 性別,sum( 代金 ) FROM 注文表 GROUP BY CUBE( 性別, 年代 ); 実行計画 ---------------------------------------------------- Id Operation Name Cost (%CPU) ---------------------------------------------------- 0 SELECT STATEMENT 19 (85) 1 SORT UNIQUE 19 (85) 2 UNION-ALL 3 HASH GROUP BY 5 (40) 4 TABLE ACCESS FULL ORDERS 3 (0) 5 HASH GROUP BY 5 (40) 6 TABLE ACCESS FULL ORDERS 3 (0) 7 HASH GROUP BY 5 (40) 8 TABLE ACCESS FULL ORDERS 3 (0) 9 SORT AGGREGATE 4 (25) 10 TABLE ACCESS FULL ORDERS 3 (0) ---------------------------------------------------- 実行計画 ---------------------------------------------------- Id Operation Name Cost (%CPU) ---------------------------------------------------- 0 SELECT STATEMENT 4 (25) 1 SORT GROUP BY 4 (25) 2 GENERATE CUBE 4 (25) 3 SORT GROUP BY 4 (25) 4 TABLE ACCESS FULL ORDERS 3 (0) ---------------------------------------------------- Copyright 2010, Oracle. All rights reserved. 11

一般的な SQL チューニング実行計画を共有するためのコーディング SGA 共有プール ライブラリ キャッシュ データ ディクショナリ キャッシュ データベース バッファ キャッシュ REDO ログ バッファ 実行計画 同じ実行計画を使いまわすよう SQL 文を記述する コーディング ルールの統一 SELECT name FROM emp; 大文字 / 小文字の違い SELECT name FROM EMP; スペース / 改行の違い SELECT name FROM emp; バインド変数の利用 SELECT name FROM emp WHERE id = 3074 SELECT name FROM emp WHERE id = 1023 値が異なる variable b1 number バインド変数 :SQLの begin 条件値を変数化したもの :b1 := 300; end;/ SELECT name FROM emp where id = :b1; Copyright 2010, Oracle. All rights reserved. 12

一般的な SQL チューニング実行計画の生成 問合せの結果を生成する最も効率的な方法 ( 物理的なアクセス手順 ) を決定し 実行計画を作成する機能 = オプティマイザ 索引を利用するか 全表スキャンを利用するか オプティマイザに関しては 下記 Direct Seminar で 実践!! Oracle DB オプティマイザ 120% 活用術 複数の表を結合するときに 結合順序 / 結合方法はどうするかなど オプティマイザの種類 ルールベースオプティマイザ (RBO) コストベースオプティマイザ (CBO) Copyright 2010, Oracle. All rights reserved. 13

一般的な SQL チューニング RBO の特徴と考慮点 特徴 実行可能なアクセスパスの中から ランクと照らし合わせて最もランクの高いパスを選択 ルール 1 ROWIDによる単一行 2 クラスタ結合による単一行 3 一意 / 主キーをもつハッシュ クラスタ キーによる単一行 4 一意 / 主キーによる単一行 5 クラスタ結合 6 ハッシュ クラスタ キー 7 索引付きのクラスタ キー 8 複合索引 9 単一列索引 10 索引列の境界付きの範囲検索 11 索引列の境界なしの範囲検索 12 ソート / マージ結合 13 索引付きの列のMAXまたはMIN 14 索引付きの列のORDER BY 15 全表スキャン 考慮点 SQL 文の構文によって実行計画が決まるため 柔軟性に乏しい データの中身 検索条件により より高速なアクセスパスが存在する 結合する表の数が多くなると 開発者は最適な SQL を作成するのが難しい Oracle7.3 以降の新機能には対応していない Oracle10g でサポートされない Copyright 2010, Oracle. All rights reserved. 14

一般的な SQL チューニング CBO の特徴と考慮点 特徴 統計情報に基づいてアクセスコストを見積もり 最もコストの低い実行計画を作成する 考慮点 コスト :DISK I/O CPU 使用量 メモリー使用量から算出される 使用リソース 統計情報を取得する必要 9i まで : 手動取得 統計情報 表統計 ( 行数 ブロック長 平均行長 ) 列統計 ( 列内のデータ種類数 列内の NULL 数 ) 索引統計 ( リーフブロック数 ツリーの高さ ) システム統計 (I/O CPU パフォーマンス ) 10g 以降 : 自動取得 ( ただし状況によっては手動で取得したほうがよい場合も ) データ量の変化 データの偏りなどにより 必ずしも最適な実行計画になるとは限らない ヒント句などを使用し 特定の実行計画を指定 Copyright 2010, Oracle. All rights reserved. 15

一般的な SQL チューニングオプティマイザ ヒント ヒントを使用することにより 特定のアクセス パスを使用するようオプティマイザに指示 < 例 > 適切な Index の使用を指定 適切な表結合方法や結合順序を指定 オプティマイザ モードの指定 (FIRST_ROWS or ALL_ROWS ) ヒントの使用例 ( /*+ と */ の間でヒントを指定し SQL に直接埋め込む ) sales 表の customer_id 列についている cust_id_indx という Index を使用 SELECT /*+ INDEX(sales cust_id_indx) */ sales_date, sales_amount FROM sales WHERE customer_id=100; customers 表と sales 表をこの順に読み込み ハッシュ結合で結合させる SELECT /*+ USE_HASH(s c) LEADING(c s) */ * FROM sales s, customers c WHERE s.customer_id=c.customer_id AND s.sales_amount > 1000; Copyright 2010, Oracle. All rights reserved. 16

一般的な SQL チューニングオプティマイザ ヒントの欠点 オプティマイザ ヒントの欠点 個々のSQLごとにカスタマイズが必要 高度な知識とスキルが要求される パフォーマンス劣化時に アプリケーションを修正する必要がある 開発後のアプリケーションや パッケージ アプリケーションではヒントを使用しにくい ヒントの構文関しては 下記マニュアルで Oracle Database SQL リファレンス 10g リリース 2(10.2) Oracle Database パフォーマンス チューニング ガイド 10g リリース 2(10.2) Copyright 2010, Oracle. All rights reserved. 17

Agenda 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ Copyright 2010, Oracle. All rights reserved. 18

これからの SQL チューニング各種アドバイザの活用 各種アドバイザ機能による自動チューニング チューニングポイントをアドバイス Oracle Database が自分自身を監視 / 判断 AWR ADDM 診断結果の表示 DBA はアドバイスを受け入れるかを判断 各種アドバイザ機能最適な設定や問題点を解消する方法を提示 SQL チューニング アドバイザ SQL アクセス アドバイザ メモリ アドバイザ セグメント アドバイザ UNDO アドバイザ リカバリ アドバイザ SQL 修復アドバイザ Copyright 2010, Oracle. All rights reserved. 19

EM による自動診断の仕組み AWR と ADDM による自動診断 AWR ( 自動ワークロード リポジトリ ) データベースの稼動情報 (Statspack + α) を自動収集 / 保存 MMON が定期的に SGA の情報を自動的に取得 ADDM (Automatic Database Diagnostic Monitor) AWR に収集されたデータを定期的に分析し データベースのパフォーマンスを問題を診断 問題を発見すると 解決方法とともに画面に表示 Statspack よりも低い負荷でより多くの情報を収集 CPU 時間 Statspack 4.11 AWR 1.13 参考値 : 1 スナップショット収集あたりの CPU 時間 起動 SGA 統計情報負荷の高い SQL etc. MMON 定期的にスナップショットを保存 手動起動 スナップショットの差分を診断 DBA Database Control 結果作成 ADDM AWR Copyright 2010, Oracle. All rights reserved. 20

ADDM による自動分析 ADDM の結果例 ADDM の診断結果 アドバイスや他のアドバイザの実行を推奨 他のアドバイザや機能の推奨 Copyright 2010, Oracle. All rights reserved. 21

SQL チューニング アドバイザ最適な SQL 文のアドバイス 高負荷で問題となる SQL 文や実行計画を診断する機能 SQL チューニング アドバイザの診断結果 統計の再取得 SQL 文の問題点を探し SQL 文の修正方法 必要な索引の作成をアドバイス SQL プロファイルの作成 失効 欠落している統計の収集 推奨 SQL プロファイルの作成 索引の作成 AWR ADDM 高負荷な SQL 文 SQL チューニング アドバイザ Enterprise Manager が負荷を軽減する最適な対処方法を提示 SQL 文の再構成 Copyright 2010, Oracle. All rights reserved. 22

SQL チューニング アドバイザ SQL チューニング アドバイザの結果例 問題のある SQL 文に対して SQL チューニング アドバイザを実行 ADDM の推奨に従って実行 問題のある SQL 文を選択して実行 画面から負荷の高い SQL 文を選んで実行することも可能 SQL プロファイル や 索引の作成 が推奨されている 実装 ボタンを押して簡単に実装可能 Copyright 2010, Oracle. All rights reserved. 23

SQL プロファイル SQL プロファイルとは SQL ごとに取得する固有の補助的な統計情報 Oracle Database 10g から追加された機能 SQL チューニング アドバイザから生成可能 明示的に削除または再作成されるまでデータベース内に保持 オプティマイザは SQL プロファイルと既存のオプティマイザ統計の両方を使用して実行計画を作成 アドバイスに従い SQL プロファイル作ると実行計画が最適化される なぜならば ヒントのように実行計画を改善できる統計情報をDB 側で持つ! SQL プロファイルを使えば アプリ修正なしで ヒントと同様の効果を実現できる!! Copyright 2010, Oracle. All rights reserved. 24

SQL チューニングの実行例 トップ アクティビティ ページから 特に負荷の高い SQL 文やセッションを特定 過去にさかのぼり調べたい時間帯を選択可能 選択した 5 分間の上位 SQL や上位セッションを表示 Copyright 2010, Oracle. All rights reserved. 25

SQL チューニングの実行例 上位 SQL から 負荷の高い SQL 文を特定 この SQL 文の実行計画を確認 チューニング対象の SQL 文を選び SQL チューニング アドバイザのスケジュール から実行 Copyright 2010, Oracle. All rights reserved. 26

SQL チューニングの実行例 他の作業に影響しないように制限時間をきめたり スケジューリングして後から実行することも可能 Copyright 2010, Oracle. All rights reserved. 27

SQL チューニングの実行例 SQL プロファイルが推奨されています SQL プロファイルの実装により 実行計画がどのように変化するか確認することも可能 Copyright 2010, Oracle. All rights reserved. 28

SQL チューニングの実行例 SQL プロファイルの実装により コストと時間が大幅に改善されることが分かる Copyright 2010, Oracle. All rights reserved. 29

SQL チューニングの実行例 実装 ボタンを押すだけで 簡単に実装 Copyright 2010, Oracle. All rights reserved. 30

SQL チューニングの実行例 グラフからも負荷が下がったことが確認可能 SQL プロファイルが実装されていることが分かる Copyright 2010, Oracle. All rights reserved. 31

11g 新機能自動 SQL チューニング自動 SQL チューニング SQL チューニング アドバイザ 自動タスク 2 自動タスクが SQL チューニング アドバイザを定期起動 3 高負荷の SQL をチューニング 3 倍以上パフォーマンスが向上する SQL プロファイルについては自動実装可 DBA AWR 結果レポートを参照必要に応じて SQL プロファイル以外の推奨項目を実装 高負荷 SQL SQL プロファイル 1 アプリケーションが SQL を実行 4 SQL プロファイルにより新しい実行計画で実行 パフォーマンスが向上 Copyright 2010, Oracle. All rights reserved. 32

11g 新機能自動 SQL チューニング自動 SQL チューニングの仕組み SQL チューニング アドバイザの自動実行機能 AWR の情報を利用し 高負荷 SQL 文を分析 デフォルトでは 1 日 1 回 ( 夜間 ) 分析 SQL プロファイルの自動実装が可能 SGA 統計情報負荷の高い SQL MMON デフォルトで 60 分に 1 回自動で負荷情報取得 スナップショットとして保存 AWR スナップショットメモリ内統計高負荷 SQL 文 デフォルトで 1 日 1 回 ( 夜間 ) 高負荷 SQL 文を分析 SQL チューニング アドバイザ Copyright 2010, Oracle. All rights reserved. 33

11g 新機能自動 SQL チューニング自動 SQL チューニングの設定画面 過去ウインドウ前回実行した記録 未来ウインドウ次に実行する予定 Copyright 2010, Oracle. All rights reserved. 34

11g 新機能自動 SQL チューニング自動 SQL チューニングの設定画面 様々な自動機能の有効化 / 無効化設定が可能 SQL チューニングに関してはさらに細かい構成設定をすることも可能 SQL プロファイルを自動実装することが可能 Copyright 2010, Oracle. All rights reserved. 35

11g 新機能自動 SQL チューニング自動 SQL チューニングの設定画面 スケジュールデフォルト : 平日夜間 10:00~4 時間 スケジュールを変更することも可能 曜日ごとに細かく設定することも可能 Copyright 2010, Oracle. All rights reserved. 36

11g 新機能自動 SQL チューニング自動 SQL チューニングの結果画面 SQL プロファイルの自動実装を設定していた場合 3 倍以上のパフォーマンス向上が見込める SQL プロファイルが 自動的に実装される Copyright 2010, Oracle. All rights reserved. 37

Agenda 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ Copyright 2010, Oracle. All rights reserved. 38

SQL プロファイル : よくある質問 1 Q1. SQL プロファイルを一つ作ると 複数の SQL を速くすることができますか? A1. 個々の SQL プロファイルは デフォルトでは ある特定の SQL を速くするために 個別に作成されます そのため 基本的には 1 つの SQL プロファイルは 1 つの SQL のみに対応します ( この場合 同一の SQL であるかどうかは スペースの個数や大文字 小文字には依存しません ) < 補足 > SQL プロファイルの作成がアドバイスされた後 SQL プロファイルの受入れ ( 作成 ) をする際に コマンドラインで force_match という引数を TRUE に設定すると Where 句のリテラル値のみが異なる SQL 文において 同一の SQL プロファイルを共有することも可能です ( 例 )SQL プロファイルの受入れ SQL> exec DBMS_SQLTUNE.ACCEPT_SQL_PROFILE - > (task_name => SQL_TUNING_1191230007828 - >,name => TEST_PROFILE - >,force_match => TRUE ); SQL チューニング アドバイザ実行時のタスク名 Copyright 2010, Oracle. All rights reserved. 39

SQL プロファイル : よくある質問 2 Q2. SQL チューニング アドバイザ実行の際 明示的に SQL プロファイルの作成を指定することができますか? A2. できません SQL チューニング アドバイザは SQL を分析する際 パフォーマンス改善に最適なアドバイスを作成しようとします < 補足 > 手動のチューニングでも ヒントを使用したチューニングより Index を作成する方が有効な場合は Index 作成を選択します これと同様に Index を作るだけで明らかにパフォーマンスが改善されると判断された場合 SQL プロファイルの作成はアドバイスされません Q3. SQL プロファイルの中身を確認することはできますか? A3. SQL プロファイルの中身を確認することはできません (SQL プロファイルのリストについては DBA_SQL_PROFILES ビューを検索することにより確認できます ) Copyright 2010, Oracle. All rights reserved. 40

SQL プロファイル : よくある質問 3 Q4. SQLプロファイルはデータ量の増加などに伴って動的に更新されますか? A4. SQL プロファイルは静的な情報です 自動的な更新はされません このため運用していく中で データ量の変化などにより SQL プロファイルが古くなり パフォーマンスが劣化していく可能性があります 劣化してきた場合は SQL プロファイルを再作成してください Q5. SQL プロファイルの有効性は分かりましたが よりパフォーマンスの良い実行計画を作成できるのに なぜデフォルトのオプティマイザで使用しないのですか? A5. SQL プロファイルの作成には 通常のコストベース オプティマイザと比較して時間がかかるためです ( デフォルトですべての SQL に対して SQL プロファイルを検討したとすると 全体のパフォーマンスに影響がでる可能性があるため 現状はそのようなアーキテクチャは採用していません ) Copyright 2010, Oracle. All rights reserved. 41

SQL プロファイル : よくある質問 4 Q6. 開発環境で作成した SQL プロファイルを本番環境に移行して使うことはできますか? A6. Oracle Database 10g R2 であれば可能です < 手順 > 開発環境にて 1. dbms_sqltune.create_stgtab_sqlprof を実行し SQL プロファイルを一旦格納するためのステージング表を作成 2. dbms_sqltune.pack_stgtab_sqlprof を実行し SQL プロファイルをステージング表に格納 3. DataPump や Export を使用してステージング表を Dump ファイルに取り出す 本番環境にて 4. 開発環境で作成した Dump ファイルを Data Pump などを使用してインポート 5. dbms_sqltune.unpack_stgtab_sqlprof を実行し ステージング表から SQL プロファイルを取り出し 本番環境に反映 注意 :Oracle Database 10g R1 では SQL プロファイルを別の Oracle データベースへ移行することはできません ( 例えば Index などは 開発環境でアドバイザにより作成したものを Export / Import などで本番環境に移行することができますが SQL プロファイルについては本番環境にて別途作成する必要がありました ) Copyright 2010, Oracle. All rights reserved. 42

SQL プロファイル : よくある質問 5 Q7. SQL プロファイルが使用されているか確認する方法はありますか? A7. 確認には 2 つの方法があります 1SQL*Plus の Autotrace 機能の活用 1. Autotrace を ON に設定 SQL> set autotrace on 2. SQL 文を実行する度に 以下の Note が表示され SQL プロファイルを使用している場合には SQL プロファイル名が表示される Note ------------------------------- SQL profile "SYS_SQLPROF_014564deb351c000" used for this statement 2Explain Plan の活用 1. SQL に対して Explain Plan を実行 ( 例 ) SQL> EXPLAIN PLAN FOR SELECT * FROM emp; 2. 下記の SQL を実行すると 1 と同様の結果が表示される SQL> select plan_table_output from table(dbms_xplan.display()); Note ------------------------------- SQL profile "SYS_SQLPROF_014564deb351c000" used for this statement Copyright 2010, Oracle. All rights reserved. 43

< 補足 > SQL チューニング アドバイザのライセンス Oracle Database Enterprise Edition 下記 2つのOptionの購入が必要 Database Diagnostics Pack Database Tuning Pack データベースおよびサーバーのパフォーマンス管理 SQL 全般のチューニングを行うツール 使用可能機能 AWR ( データベースの統計情報を自動的に取得 ) ADDM ( データベースの自己診断エンジン ) パフォーマンス監視 ( データベースおよびサーバーのパフォーマンス情報の参照 ) イベント通知 1( 通知メソッド ルールおよびスケジュール設定 ) イベント監視 ( アラートの詳細メッセージの参照 アラート履歴の参照 ) メモリー アクセス モード ( 高負荷時にも診断情報を取得可能 ) 使用可能機能 SQL Access Advisor( より良い実行計画 SQL 文書換えの推奨の提示 ) SQL Tuning Advisor( 新しい索引 マテリアライズド ビューの作成の推奨の提示 ) オブジェクトの再編成 ( スキーマ オブジェクトの再編成ウィザード ) 注意 : 本パック単体では使用できません 必ず Diagnostics Pack が必要です Copyright 2010, Oracle. All rights reserved. 44

まとめ 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ Copyright 2010, Oracle. All rights reserved. 45

OTN ダイセミでスキルアップ!! 技術的な内容について疑問点を解消したい! 一般的なその解決方法などを知りたい! セミナ資料など技術コンテンツがほしい! Oracle Technology Network(OTN) を御活用下さい http://otn.oracle.co.jp/forum/index.jspa?categoryid=2 セミナーに関連する技術的なご質問は OTN 掲示版の データベース一般 へ OTN 掲示版は 基本的に Oracle ユーザー有志からの回答となるため 100% 回答があるとは限りません ただ 過去の履歴を見ると 質問の大多数に関してなんらかの回答が書き込まれております http://www.oracle.com/technology/global/jp/ondemand/otn-seminar/index.html 過去のセミナ資料 動画コンテンツは OTN の OTN コンテンツオンデマンド へ セミナ事務局にダイセミ資料を請求頂いても お受けできない可能性がございますので予めご了承ください ダイセミ資料は OTN コンテンツオンデマンドか セミナ実施時間内にダウンロード頂くようお願い致します Copyright 2010, Oracle. All rights reserved. 46

12 月からダイセミ参加方法が変わります セミナお申込み確認メールがご登録のメールアドレスに自動送付されます 確認メール内に Web 会議参加 URL がございますのでクリックしてご参加下さい < メールタイトル > 登録完了のお知らせ : ダイセミセミナー名 ご登録氏名 ここから参加 Copyright 2010, Oracle. All rights reserved. 47

Windows 環境でもシェア No.1!Database の合言葉はオラ 98( キュッパ ) 日頃ご利用 ご提案頂いている皆様の声を投票にてお聞かせください 抽選でプレミアム グッズをプレゼント 47 都道府県を超えたら 投票総数が 2,000 件を超えたら 賞品がグレードアップ!! 締め切りは 11 月 30 日 ( 火 ) まで 皆様のご応募をお待ちしております!! 日本全国オラ 98 Copyright 2010, Oracle. All rights reserved. 48

OTN セミナーオンデマンドコンテンツダイセミで実施された技術コンテンツを動画で配信中!! ダイセミのライブ感はそのままに お好きな時間で受講頂けます 最新情報つぶやき中 oracletechnetjp 人気コンテンツは? お勧め情報 公開予告など OTN オンデマンド 掲載のコンテンツ内容は予告なく変更になる可能性があります 期間限定での配信コンテンツも含まれております お早めにダウンロード頂くことをお勧めいたします Copyright 2010, Oracle. All rights reserved. 49

Oracle エンジニアのための技術情報サイトオラクルエンジニア通信 http://blogs.oracle.com/oracle4engineer/ 最新情報つぶやき中 oracletechnetjp 技術資料 ダイセミの過去資料や製品ホワイトペーパー スキルアップ資料などを多様な方法で検索できます キーワード検索 レベル別 カテゴリ別 製品 機能別 コラム オラクル製品に関する技術コラムを毎週お届けします 決してニッチではなく 誰もが明日から使える技術の あ そうだったんだ! をお届けします オラクルエンジニア通信 先月はこんな資料が人気でした Oracle Database 11gR2 RAC インストレーション ガイド ASM 版 Microsoft Windows x86-64 Oracle Database 11gR2 旧バージョンからのアップグレード Copyright 2010, Oracle. All rights reserved. 50

IT プロジェクト全般に渡る無償支援サービス Oracle Direct Concierge サービス パフォーマンス診断サービス Webシステムボトルネック診断サービスNEW データベースパフォーマンス診断サービス 移行支援サービス SQL Serverからの移行支援サービス DB2からの移行支援サービス Sybaseからの移行支援サービス MySQLからの移行支援サービス Postgre SQLからの移行支援サービス Accessからの移行支援サービス Oracle Application ServerからWeblogicへ移行支援サービス NEW システム構成診断サービス Oracle Database 構成相談サービス サーバー統合支援サービス 仮想化アセスメントサービス メインフレーム資産活用相談サービス BI EE アセスメントサービス 簡易業務診断サービス バージョンアップ支援サービス Oracle Database バージョンアップ支援サービス Weblogic Server バージョンアップ支援サービス Oracle Developer/2000(Froms/Reports) Web アップグレード相談サービス NEW オラクル社のエンジニアが直接ご支援しますお気軽にご活用ください! オラクル無償支援 検索 Copyright 2010, Oracle. All rights reserved. 51

11 月 30 日まで!! 締め切り迫る あの Oracle Database Enterprise Edition が超おトク!! Oracle Database のライセンス価格を大幅に抑えてご導入いただけます 多くのお客様でサーバー使用期間とされる 5 年間にライセンス期間を限定 期間途中で永久ライセンスへ差額移行 5 年後に新規ライセンスを購入し継続利用 5 年後に新システムへデータを移行 Enterprise Edition はここが違う!! 圧倒的なパフォーマンス! データベース管理がカンタン! データベースを止めなくていい! もちろん障害対策も万全! 詳しくはコチラ http://www.oracle.co.jp/campaign/kurukuru/index.html お問い合わせフォーム http://www.oracle.co.jp/inq_pl/inquiry/quest?rid=28 Copyright 2010, Oracle. All rights reserved. 52

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

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

一般的な SQL チューニング参考 : 実行計画の確認方法 実行計画を確認する方法 SQL*PLUSのAUTOTRACEコマンド Explain plan for <SQL> SQLトレース V$SQL 及びV$SQL_PLAN(9i~) Enterprise Manager (10g~) 実行計画の調べ方 (SQL*Plus の AUTOTRACE 機能 ) 1. SYSユーザでPLUSTRACEロールを作成し SQLを実行するユーザに付与する SQL> @%ORACLE_HOME% sqlplus admin plustrce.sql SQL> GRANT plustrace TO scott; 2. SQLを実行するユーザで実行計画を保存するための表 (PLAN_TABLE) を作成する SQL> connect scott/tiger SQL> @%ORACLE_HOME% rdbms admin utlxplan.sql 3. AUTOTRACE 機能を ON にし SQL 文を実行する SQL> SET AUTOTRACE ON SQL> SELECT... Copyright 2010, Oracle. All rights reserved. 55