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

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

PA4

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

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

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

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

Slide 1

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

Oracle活用実践演習コース

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

Slide 1

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

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

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

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

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

untitled

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

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

DumpCollection IT Exam Training online / Bootcamp PDF and Testing Engine, study and practice

スライド 1

Oracle Tuning Pack

ORACLE TUNING PACK 11G

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

Oracle Database 11g Oracle Real Application Testing

このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更することがあります このドキュメントに記載された内容は情報提供のみを目的としており 明示または黙示に関わらず これらの情報についてマイクロソフトはいかなる責任も負わないもの

第 1 章 条件分岐 この章では 条件に応じて処理を分岐する方法について説明します 1. CASE 式で複雑な条件分岐を実現 2. 関数を使用した条件分岐 3. MERGE 文による条件に応じた DML の実行

PowerPoint Presentation

Oracle Data Pumpのパラレル機能

プレポスト【問題】

Oracle SQL Developer Data Modeler

はじめに コースの概要と目的条件分岐の方法や複雑な集計の手法など SQL のコーディングの幅を広げるためのテクニックについて説明します また パフォーマンスを考慮した記述方法や正しい結果を取得するための記述方法などについても あわせて説明します 本コースでは 実践的な SQL の記述手法を広く浅く紹

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt

Web GIS Template Uploader 利用ガイド

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

Microsoft Word - J-jdev_dba_db_developers.doc

HP Device Manager 4.7新機能紹介資料

< 写真欄 > 11g R2 Real Application Clusters スキルチェック ポイント解説


概要 ABAP 開発者が SAP システム内の SAP ソースまたは SAP ディクショナリーオブジェクトを変更しようとすると 2 つのアクセスキーを入力するよう求められます 1 特定のユーザーを開発者として登録する開発者キー このキーは一度だけ入力します 2 SAP ソースまたは SAP ディクシ

How to Use the PowerPoint Template

ご注意 1) 本書の内容 およびプログラムの一部 または全部を当社に無断で転載 複製することは禁止されております 2) 本書 およびプログラムに関して将来予告なしに変更することがあります 3) プログラムの機能向上のため 本書の内容と実際の画面 操作が異なってしまう可能性があります この場合には 実

領域サイズの見積方法

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

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

Null

Microsoft認定資格問題集DEMO(70-459_Part2)

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

Slide 1

PowerPoint Presentation

Oracle Database Connect 2017 JPOUG


TALON Tips < カレンダー ( 月別 ) の画面を表示する > 株式会社 HOIPOI 第 1.1 版 p. 1

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

TALON Tips < 親子関係のある構成データを TALON で表示する > 株式会社 HOIPOI 第 1.1 版 p. 1

PowerPoint -O80_REP.PDF

5 Q. 選択リストにアスタリスク (*) を使用して 位置に基づくソートを行うとどうなりますか A. その表を構成している列の順序に対応して 暗黙的に番号が割り振られます 6 Q. 文字データが日本語の場合 ソートは五十音順に行われるのですか A. 五十音順ではなく 文字コード順になります 文字コ

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

[ ]スマートセミナーバージョンアップリリースノート

问题集 ITEXAMPASS 1 年で無料進級することに提供する

標準化 補足資料

Slide 1

3 Q. CONFIGURE で設定した RMAN 構成情報をデフォルトに戻す方法 A. CLEAR コマンドを使用すると 永続設定値をデフォルトに戻すことができます CLEAR コマンドでは 個々のパラメータを 1 つずつ CLEAR します SYS.DBMS_BACKUP_RESTORE.RES

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

Linkexpress トラブル初期調査資料 採取コマンド使用手引書

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

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP

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

Slide 1

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

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

Microsoft Word - sample_adv-programming.docx

Microsoft Word - Android_SQLite講座_画面800×1280

HP Device Manager4.7インストール・アップデート手順書

Oracleの領域管理~トラブル防止のテクニック~

iNetSec Intra Wall マイグレーションキット ユーザーズガイド

Base によるアプリケーション開発とサポート 鎌滝雅久 /OpenOffice.org 日本ユーザー会 OSC2007 Hokkaido 2007 年 6 月 30 日土曜日 10:55-11:40 北海道大学学術交流会館第 4 会議室

Oracle Data Pumpのパラレル機能

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

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

PostgreSQL Plus 管理者ガイド

Copyright 2014 NTT DATA Corporation 2 INDEX 1. 一括請求 Assist とは 1-1. でんさいに係るサービスの関係性 1-2. 一括請求 Assist の必要性 1-3. 一括請求 Assist の特長 2. 機能紹介 2-1. 一括請求 Assist

Oracle Enterprise Linux 5における認証

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

Microsoft Word - S01-01_データ抽出設定.docx

PowerPoint Presentation

ここまでできる!! Oracle Databaseのパラレル処理

Null

5 Q. 結果セットを 1 行飛ばしに FETCH することはできますか A. できません Oracle は必ず結果セットを上から 1 行ずつ FETCH します 6 Q. カーソルを一度にいくつまでオープンできますか A. 初期化パラメータ OPEN_CURSORS で指定したの値までカーソルをオ

(Microsoft PowerPoint - WQ21JDEadapter\215\\\220\254\216\350\217\207\217\221_ ppt)

APEX Spreadsheet ATP HOL JA - Read-Only

Exam : 1Z1-060J Title : Upgrade to Oracle Database 12c Vendor : Oracle Version : DEMO Get Latest & Valid 1Z1-060J Exam's Question and Answers 1 from T

ArcGIS Runtime SDK for .NET アプリケーション配布ガイド

PowerPoint プレゼンテーション

WEBシステムのセキュリティ技術

データベース暗号化ツール「D’Amo」性能検証

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows インストールガイド 2013(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

新製品 Arcserve Backup r17.5 のご紹介 (SP1 対応版 ) Arcserve Japan Rev. 1.4

Oracle8簡単チューニング for Windows NT

Transcription:

対応バージョン :Oracle 10gR1 ~ 12cR1 本資料は アシスト Oracle 研修をご受講いただいたお客様からのご質問や 研修ではご案内できなかった情報などを FAQ にまとめたものです 研修受講後のスキルアップの一助として 是非お役立てください ご利用上の注意事項は最後のページにまとめられております ご確認のうえ ご利用ください 第 1 章 SQL パフォーマンスチューニングの基礎知識 SQL パフォーマンス チューニング ~ 研修受講後のスキルアップサポート ~ 1 Q. セグメント内での使用済みブロック数 (HWM までのブロック数 ) の確認方法 A. 全表スキャンで読み込まれるブロック数は HWM までのブロックです この HWM までのブロック ( 使用済みブロック ) 数は 2 つの方法いずれかで確認することができます 1. 統計情報の取得後 DBA_TABLES ビューの BLOCKS 列を参照 2.DBMS_SPACE.UNUSED_SPACE プロシージャを使用する 1 の場合はコストベースオプティマイザに影響を与え 2 の場合は影響を与えません 2 の確認方法 SQL> SET SERVEROUTPUT ON DECLARE sum_blocks number; sum_bytes number; empty_blocks number; empty_bytes number; hwm_file_id number; hwm_extent_id number; hwm_extent_block number; blocks number; BEGIN DBMS_SPACE.UNUSED_SPACE( segment_owner=>'scott', segment_name=>'log_master', segment_type=>'table', total_blocks=>sum_blocks, total_bytes=>sum_bytes, unused_blocks=>empty_blocks, unused_bytes =>empty_bytes, last_used_extent_file_id=>hwm_file_id, last_used_extent_block_id=>hwm_extent_id, last_used_block=>hwm_extent_block ); blocks:=sum_blocks-empty_blocks-1; DBMS_OUTPUT.PUT_LINE(' 使用ブロック数 :' blocks); END; / 使用ブロック数 :18158 PL/SQL プロシージャが正常に完了しました 次ページへ続きます 1

A. 前ページからの続きです DBMS_SPACE.UNUSED_SPACE の各パラメータの意味 segment_owner = オブジェクトの所有者 segment_name = オブジェクト名 segment_type = オブジェクトタイプ total_blocks = セグメント合計ブロック数 total_bytes = セグメントサイズ ( バイト ) unused_blocks = 未使用ブロック数 unused_bytes = 未使用サイズ ( バイト ) last_used_extent_file_id =HWM を含むファイル ID last_used_extent_block_id =HWM を含むエクステントの第 1 ブロック ID last_used_block = HWM を含むエクステント内でのブロック番号 2

第 2 章 SQL の診断ツール 2 Q. SQL トレースのレポートで disk の値が current + query の値を超えている場合があります なぜですか A. disk の値が current + query の値を超える原因は バッファ キャッシュを経由せずにデータ ファイルから直接読み込み ( ダイレクト パス読取り ) が行われているためです 例えば ソートを必要とした処理で このような結果になる場合があります 3 Q. SQL トレースによってトレースファイルを出力すると トレースファイルと同じファイル名で拡張子が.trm のファイルが出力される場合があります どのようなファイルなのでしょうか A..trm 拡張子のファイルは トレース マップ ファイルと呼ばれるものです このファイルには トレースファイルの構造情報が格納されており 内部的な検索で使用されます 4 Q. あるユーザーが SQL トレースを実行できるように DBMS_SESSION.SET_SQL_TRACE プロシージャの実行権限 (EXECUTE 権限 ) を付与しました しかし そのユーザーが SET_SQL_TRACE プロシージャを実行すると 権限が不足しています とのエラーメッセージが返りました なぜでしょうか A. DBMS_SESSION.SET_SQL_TRACE プロシージャを実行するには プロシージャの EXECUTE 権限ではなく ALTER SESSION システム権限 が必要です 5 Q. 実行した SQL がソフト解析だったかハード解析だったかを SQL トレースで確認できますか A. TKPROF で出力した結果の Misses in library cache during parse: 数値 で確認できます 数値が 0 の場合はライブラリ キャッシュ ミス ( ハード解析 ) がなかった つまりソフト解析であったことがわかります フォーマット時に aggregate = no と指定した場合は 同一 SQL であっても個別に結果が出力されます ( デフォルトは aggregate = yes です ) 6 Q. TKPROF や AUTOTRACE で表示される current は何を意味していますか A. アクセスしたブロックが現行モード (DML や SELECT FOR UPDATE でアクセス中 ) の場合 current にそのブロック数が表示されます 3

第 3 章索引の作成と管理 7 Q. 索引をオンライン作成している時に通常作成時よりも時間がかかる場合があるのはなぜでしょうか A. ONLINE 句を使用して索引を作成した場合 索引作成中に発行された DML 文も索引に反映させるため DML 文を発行したトランザクションが終了するまで索引の作成は終了しません そのため 通常よりも作成時間がかかってしまうことがあります 8 Q. 制約によって作成された索引を REBUILD できますか A. 可能です ALTER INDEX ~ REBUILD を実行してください 9 Q. コンポジット索引に指定できる列数の上限 A. コンポジット索引には最大 32 列まで指定できます 10 Q. リーフ ブロックの断片化解消方法 (COALESCE 以外 ) A. 断片化したリーフ ブロックを結合する方法として COALESCE 以外にセグメント縮小機能 (SHRINK) を使用できます 本機能は 通常表に対して行う操作ですが CASCADE オプションを指定することで 表に定義されている索引に対しても同時に縮小処理を行います 1 ALTER TABLE 表名 ENABLE ROW MOVEMENT; /* 行の移動を許可 */ 2 ALTER TABLE 表名 SHRINK SPACE CASCADE; /*CASCADE オプションで関連する索引も縮小 */ ~~~~~~~ セグメント縮小機能では 索引の高さは変わりません 11 Q. DBA_INDEXES ビューの BLEVEL 列と INDEX_STATS ビューの HEIGHT 列の値が違うことについて A. 階層の深さ ( ツリーの高さ ) は DBA_INDEXES ビューの BLEVEL 列や INDEX_STATS ビューの HEIGHT 列で確認することができます これらの列は 高さ (height) blevel などと呼ばれ 高さ (height) は root ブロックから leaf ブロックまでに至るまでに通る root,branch,leaf ブロックの数を示します blevel は root ブロックから leaf ブロックに至るまでに通る root branch ブロックの数を示すので 高さ (height) - 1 になります 12 Q. TRUNCATE 文で表を切り捨てた場合も自動メンテナンスが行われますか A. TRUNCATE 文で表を切り捨てると 表に定義されている索引のデータも全て自動的に削除されます 4

第 4 章効率的な SQL の記述方法 13 Q. SQL を変更できない環境でのチューニング方法 A. アプリケーションがハードコーディングされている等で SQL が修正できない場合 以下のようなチューニングを検討します 索引の追加 / 削除 初期化パラメータの変更 (CBO に影響を与えるパラメータに対して ) ヒント文を含めたビューを作成 パラレル実行 (ALTER SESSION FORCE PARALLEL 文 または表の PARALLEL オプションで設定 ) プランスタビリティ (Oracle 10g まで ) SQL 実行計画管理 (Oracle 11g から ) 不可視化索引の使用 (Oracle 11g から ) 14 Q. ビューを定義する際の SELECT 文にヒントを記述することはできますか A. 可能です ビューを問い合わせると そのビューに定義された SQL が実行され ヒントが有効になります 15 Q. ヒントの記述を一部間違えると 全てのヒントが無効になるのでしょうか A. ヒントの記述方法が間違っている場合 そのヒントだけが無効になります ヒントが複数指定してあった場合は適切に記述されているヒントは有効です 16 Q. 索引フル スキャンと索引スキップ スキャンの動作の違いを教えてください A. 索引フル スキャンは すべてのリーフ ブロックを読込みます 索引スキップ スキャンは すべてのリーフ ブロックではなく 条件値に合致するエントリを含んだリーフ ブロックを読込みます 17 Q. INDEX FAST FULL SCAN が選択される前提条件 A. オプティマイザが INDEX FAST FULL SCAN を選択するには 以下の条件のいずれかを満たしている必要があります 下記条件を満たしているか 確認してください 1.SELECT 文で使用するすべての列が索引に含まれている 2. ヒント INDEX_FFS を使用している 3.NOT NULL 制約が存在する もしくは NULL を除く処理を行っている 5

18 Q. 最初の解析時 ( ハードパース時 ) にバインド変数に割り当てられた値を確認する方法 A. Oracle 10g までの環境でバインド変数を使用している場合 はじめに割り当てられた値をもとに実行計画を決定します (bind peek 機能 ) はじめに割り当てられた値を確認するには DBMS_XPLAN.DISPLAY_CURSOR の format パラメータに ADVANCED もしくは PEEKED_BINDS を指定します 上記を実行すると実行計画が表示され その下にある Peeked Binds セクションにバインドした値が表示されます 実行例 SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'PEEKED_BINDS')); PLAN_TABLE_OUTPUT --------------------------------------------------------------------------------------- SQL_ID 92y8n9h5vygp0, child number 0 ------------------------------------- SELECT * FROM customer.emp WHERE empno = :bind1 Plan hash value: 4025414177 -------------------------------------------------------------------------- Id Operation Name Rows Bytes Cost (%CPU) Time -------------------------------------------------------------------------- 0 SELECT STATEMENT 7 (100) * 1 TABLE ACCESS FULL EMP 1 38 7 (0) 00:00:01 -------------------------------------------------------------------------- Peeked Binds (identified by position): /* このセクションにバインドした値が表示されます */ -------------------------------------- 1 - :BIND1 (NUMBER): 7900 /* 値 7900 がバインドされたことが分かります */ テキスト 2-13 の DBMS_MONITOR.SESSION_TRACE_ENABLE プロシージャでも確認できます 6

第 6 章コストベース オプティマイザと実行計画の決定 19 Q. オプティマイザ統計を収集する DBMS_STATS パッケージと ANALYZE コマンドの違い A. オプティマイザ統計は DBMS_STATS パッケージだけでなく ANALYZE コマンドでも収集できます この 2 つは以下のような違いがあります 収集情報 DBMS_STATS は コストベース オプティマイザが必要とする情報のみを取得します それに対して ANALYZE は行連鎖 行移行の数 未使用ブロックの数などの追加情報も収集します DBMS_STATS では 統計情報が古くなったものだけを再取得し直すことができます ANALYZE はできません 統計情報の保存 DBMS_STATS で収集した統計は 31 日間保存されます (31 日以内であれば以前の統計にリストアできます ) ANALYZE では 以前の統計は保存されないため リストアはできません 上記の特徴から コストベース オプティマイザのための統計取得が目的であれば DBMS_STATS パッケージを使用することをお勧めします 20 Q. 特定の表や索引の統計情報が収集されているか ( いつ収集されたか ) を確認する方法 A. DBA_TABLES DBA_INDEXES ビューの LAST_ANALYZED 列には 前回統計収集を行った際の日時が記録されています この列に値がなければ 統計情報は収集されていません 下記例では EMP 表の統計収集日時を確認しています SQL> SELECT table_name,last_analyzed FROM dba_tables 2 WHERE table_name = 'EMP'; TABLE_NAME LAST_ANA -------------------- -------- EMP 14-12-05 21 Q. もともとコストベース オプティマイザを使用しているデータベースをアップグレードしたら 実行計画が変わった SQL がありました なぜでしょうか A. コストベース オプティマイザのコスト計算アルゴリズムは バージョン毎に異なります そのため 変更を全く加えていなくても Oracle をアップグレードすると実行計画が変わる可能性があります 22 Q. 自動統計収集を無効化し (DBMS_AUTO_TASK_ADMIN.DISABLE を実行 ) 手動での統計収集を一切行わなければ オプティマイザ統計情報は変化しないと考えていいでしょうか A. 索引の REBUILD のみ 内部的にオプティマイザ統計が再取得されます それ以外のケースで統計情報が変化することはありません 7

23 Q. オプティマイザ統計を任意の値に変更してテストを行う方法 A. DBMS_STATS.SET_TABLE_STATS プロシージャで 統計を任意の値に設定し それによる効果をシミュレーションできます /* EMP1 表の現在の統計を確認 */ SQL> SELECT table_name, num_rows,blocks, avg_row_len, user_stats 2 FROM user_tables 3 WHERE table_name='emp1'; TABLE_NAME NUM_ROWS BLOCKS AVG_ROW_LEN USER_STAT -------------------- ---------- ---------- ----------- --------- EMP1 1500 16 38 NO /* 任意の統計値に設定 */ SQL> EXECUTE SYS.DBMS_STATS.SET_TABLE_STATS(- > ownname => 'CUSTOMER',- > tabname => 'EMP1',- > numrows => 1000,- NUM_ROWS( 行数 ) > numblks => 10,- BLOCKS(HWM までのブロック数 ) > avgrlen => 30); AVG_ROW_LEN( 平均行サイズ ) 上記パラメータ以外に以下も設定できます cachedblk: キャッシュ済みオブジェクトの平均ブロック数 cachehit : オブジェクトに対する平均キャッシュ ヒット率 /* 変更後の統計値を確認 */ SQL> SELECT table_name, num_rows,blocks, avg_row_len, user_stats 2 FROM user_tables 3 WHERE table_name='emp1'; TABLE_NAME NUM_ROWS BLOCKS AVG_ROW_LEN USER_STAT -------------------- ---------- ---------- ----------- --------- EMP1 1000 10 30 YES ~~~ USER_STATS 列で ユーザーが任意に設定した統計かどうかが分かります 変更した統計は 統計を再取得するまで有効です 8

付録 24 Q. ANALYZE INDEX VALIDATE STRUCTURE 実行後 他のセッションで INDEX_STATS を参照しても結果が表示されません なぜでしょうか A. INDEX_STATS の情報はセッション間でのみ有効です ANALYZE INDEX VALIDATE STRUCTURE を実行したセッションとは異なるセッションからは 分析結果は参照できません ご利用上の注意事項 本書の著作権は株式会社アシストに帰属します 本書は参考資料であり 掲載されている情報は予告なしに変更されることがあります 本書で使用している製品の名称は 各社の商標または登録商標です 本資料の内容に関するご質問はご遠慮ください 本資料はお客様の責任のもとでご利用ください これらの使用によりいかなる損害が生じたとしても 株式会社アシストは一切保証致しかねますので ご了承ください 9