Slide 1

Similar documents
untitled

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

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

untitled

Slide 1

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

ORACLE TUNING PACK 11G

Slide 1

PA4

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

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

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

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

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

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

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

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

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

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

Slide 1

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

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

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

Slide 1

untitled

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

PowerPoint Presentation

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

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

Slide 1

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

Oracle Data Pumpのパラレル機能

意外と簡単

Slide 1

untitled

Oracle Database 12c

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

Oracle Tuning Pack

Slide 1

Oracle Database 11g Oracle Real Application Testing

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

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

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

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

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

スライド 1

ORACLE PARTITIONING

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

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

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

Oracle活用実践演習コース

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

Oracle Data Pumpのパラレル機能

PowerPoint Presentation

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

Oracle Database 12c Release 1 ( ) CoreTech Seminar

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

Slide 1

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

How to Use the PowerPoint Template

Veritas System Recovery 16 Management Solution Readme

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

Oracle SQL Developer Data Modeler

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

Oracle Database 11gのSQL Plan Management

PowerPoint プレゼンテーション

Slide 1

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

How to Use the PowerPoint Template

Slide 1

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

Oracle Corporation

APEX Spreadsheet ATP HOL JA - Read-Only

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

Microsoft Word - PDFHS _ doc

Enterprise Cloud + 紹介資料

PowerPoint Presentation

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

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

すぐに使える!Essbase キューブ開発テクニック集

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

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

How to Use the PowerPoint Template

OM.indd

スライド 1

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

untitled

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

Null

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

Oracle DatabaseとIPv6 Statement of Direction

Title Slide with Picture

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

雲の中のWebアプリケーション監視術!~いまなら間に合うクラウド時代の性能監視入門~

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

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

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

PowerPoint Presentation

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

(Microsoft PowerPoint - goupGold\224z\225z\227p.ppt)

Transcription:

Oracle Direct Seminar <Insert Picture Here> もうアプリ改修は必要ない! これからの SQL チューニング 日本オラクル株式会社

Agenda 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ 無償技術サービス Oracle Direct Concierge Oracle Database バージョンアップ支援 Oracle 構成相談 (Sizing) サービス パフォーマンス クリニック サービス SQL Server からの移行アセスメント DB2 からの移行支援サービス Sybase からの移行支援サービス MySQL からの移行相談サービス PostgreSQL からの移行相談サービス Access からの移行アセスメント Oracle Developer/2000 Web アップグレード相談 仮想化アセスメントサービス ビジネスインテリジェンス エンタープライズエディション アセスメントサービス 簡易業務診断サービス http://www.oracle.com/lang/jp/direct/services.html Copyright 2010, Oracle. All rights reserved. 2

Agenda 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ 無償技術サービス Oracle Direct Concierge Oracle Database バージョンアップ支援 Oracle 構成相談 (Sizing) サービス パフォーマンス クリニック サービス SQL Server からの移行アセスメント DB2 からの移行支援サービス Sybase からの移行支援サービス MySQL からの移行相談サービス PostgreSQL からの移行相談サービス Access からの移行アセスメント Oracle Developer/2000 Web アップグレード相談 仮想化アセスメントサービス ビジネスインテリジェンス エンタープライズエディション アセスメントサービス 簡易業務診断サービス http://www.oracle.com/lang/jp/direct/services.html 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 文 Statspack に関しては 下記 Direct Seminar で 実践!! パフォーマンスチューニング ~Statspack 解析 Tips ~ データベース内部で 何が行われているか判断 時間 さまざまな処理 ( アプリケーションの実行 / データのロードなど ) スナップショット 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 CUBE( 性別, 年代 ); 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 注文表 ; 実行計画 ---------------------------------------------------- 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) ---------------------------------------------------- 実行計画 ---------------------------------------------------- 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) ---------------------------------------------------- Copyright 2010, Oracle. All rights reserved. 11

一般的な SQL チューニング SQL 文の処理ステップ 発行された SQL 文の解析 ( パース ) 同一 SQL 文 が共有プールにキャッシュされているかチェック キャッシュに存在すれば 結果を利用して実行する (soft parse) キャッシュになければ オプティマイザによる処理を行う (hard parse) オプティマイザが最適な実行計画を検討 オプティマイザが生成した実行計画をキャッシュして実行 SQL 文 プログラム 結果 新たに実行計画を立てる Hard parse メモリ上に実行計画があるか ない オプティマイザ ある Soft parse 共有プール上に同一 SQL 文があれば その実行計画を使って SQL 実行 SQL の実行 実行計画生成 Copyright 2010, Oracle. All rights reserved. 12

一般的な SQL チューニング実行計画を共有するためのコーディング コーディング ルールの統一 SELECT name FROM emp; SELECT name FROM EMP; 大文字 / 小文字の違い SELECT name FROM emp; スペース / 改行の違い バインド変数の利用 SELECT name FROM emp WHERE id = 1023 SELECT name FROM emp WHERE id = 3074 値が異なる variable b1 number begin :b1 := 300; バインド変数 :SQLの条件値を変数化したもの end; / SELECT name FROM emp where id = :b1; Copyright 2010, Oracle. All rights reserved. 13

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

一般的な 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. 15

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

一般的な 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. 17

一般的な 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. 18

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

Agenda 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ 無償技術サービス Oracle Direct Concierge Oracle Database バージョンアップ支援 Oracle 構成相談 (Sizing) サービス パフォーマンス クリニック サービス SQL Server からの移行アセスメント DB2 からの移行支援サービス Sybase からの移行支援サービス MySQL からの移行相談サービス PostgreSQL からの移行相談サービス Access からの移行アセスメント Oracle Developer/2000 Web アップグレード相談 仮想化アセスメントサービス ビジネスインテリジェンス エンタープライズエディション アセスメントサービス 簡易業務診断サービス http://www.oracle.com/lang/jp/direct/services.html Copyright 2010, Oracle. All rights reserved. 20

これからの SQL チューニング各種アドバイザの活用 各種アドバイザ機能による自動チューニング Enterprise Manager AWR 自動ワークロードリポジトリ (AWR) データベース稼動状況を保持しておくためのリポジトリ (SYSAUX 表領域 ) Automatic Database Diagnostic Monitor (ADDM) AWR に収集されたデータを定期的に分析しデータベースのパフォーマンスをモニタ 診断する 各種アドバイザ機能最適な設定や問題点を解消する方法を提示 SQL チューニング アドバイザ SQL アクセス アドバイザ メモリ アドバイザ セグメント アドバイザ UNDO アドバイザ リカバリ アドバイザ SQL 修復アドバイザ Copyright 2010, Oracle. All rights reserved. 21

ADDM による自動分析 ADDM とは 自動診断機能 ADDM ( Automatic Database Diagnostics Monitor ) 定期的に蓄積された稼働情報を分析し データベースを診断 問題と対処方法をデータベース管理者に提示 SGA 統計情報負荷の高い SQL メモリー不足 MMON 定期的に負荷情報を保存 手動で起動し 診断させることもできます 起動 スナップショットの差分を診断 ADDM AWR Enterprise Manager 診断結果 / アドバイス Copyright 2010, Oracle. All rights reserved. 22

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

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

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

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

SQL プロファイル SQL プロファイルの使用イメージ SQL チューニング アドバイザの推奨により SQL プロファイルを作成 SQL プロファイルの作成 オプティマイザ ( チューニング モード ) SQL 文の実行時に SQL プロファイルを使用して最適な実行計画が立てられる SQL チューニングアドバイザ 補助的な統計を取得して SQL プロファイルを作成 SQL プロファイル 利用 作成された SQL プロファイルを利用して実行計画を作成 チューニングされた実行計画 アプリケーションの変更は不要! Copyright 2010, Oracle. All rights reserved. 27

SQL チューニングの実行例 Enterprise Manager の パフォーマンス ページ からデータベースの負荷状況を確認 Copyright 2010, Oracle. All rights reserved. 28

SQL チューニングの実行例 トップ アクティビティ ページから 特に負荷の高い SQL 文やセッションを特定 Copyright 2010, Oracle. All rights reserved. 29

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

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

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

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

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

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

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. 36

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. 37

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

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

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

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

Agenda 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ 無償技術サービス Oracle Direct Concierge Oracle Database バージョンアップ支援 Oracle 構成相談 (Sizing) サービス パフォーマンス クリニック サービス SQL Server からの移行アセスメント DB2 からの移行支援サービス Sybase からの移行支援サービス MySQL からの移行相談サービス PostgreSQL からの移行相談サービス Access からの移行アセスメント Oracle Developer/2000 Web アップグレード相談 仮想化アセスメントサービス ビジネスインテリジェンス エンタープライズエディション アセスメントサービス 簡易業務診断サービス http://www.oracle.com/lang/jp/direct/services.html Copyright 2010, Oracle. All rights reserved. 42

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. 43

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. 44

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

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. 46

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. 47

< 補足 > 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. 48

まとめ 従来の SQL チューニング 一般的なチューニングの流れ 一般的なチューニング ポイント 画期的な SQL チューニング SQL チューニング アドバイザ SQL プロファイル チューニング実施手順 11g 新機能 自動 SQL チューニング FAQ 無償技術サービス Oracle Direct Concierge Oracle Database バージョンアップ支援 Oracle 構成相談 (Sizing) サービス パフォーマンス クリニック サービス SQL Server からの移行アセスメント DB2 からの移行支援サービス Sybase からの移行支援サービス MySQL からの移行相談サービス PostgreSQL からの移行相談サービス Access からの移行アセスメント Oracle Developer/2000 Web アップグレード相談 仮想化アセスメントサービス ビジネスインテリジェンス エンタープライズエディション アセスメントサービス 簡易業務診断サービス http://www.oracle.com/lang/jp/direct/services.html Copyright 2010, Oracle. All rights reserved. 49

オラクルクルクルキャンペーン あの 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. 50

IT プロジェクト全般に渡る無償支援サービス Oracle Direct Concierge サービスメニュー システム運用状況の診断 パフォーマンス クリニック サービス システム セキュリティ診断サービス データ管理最適化サービス 運用 経営企画 業務改善計画の作成支援 業務診断サービス BI アセスメントサービス IT 企画 システム企画の作成支援 業務診断サービス BI アセスメントサービス システム構築時の道案内 Access / SQL Server からの移行 MySQL / PostgreSQL からの移行 Oracle Database バージョンアップ支援 Oracle Developer Web アップグレード システム連携アセスメントサービス 構築 設計 RFP/ 提案書の作成支援 BI アセスメントサービス メインフレーム資産活用相談サービス 仮想化アセスメントサービス Oracle Database 構成相談サービス Oracle Database 高可用性クリニック Copyright 2010, Oracle. All rights reserved. 51

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

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. 53

あなたにいちばん近いオラクル 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. 54

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