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

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

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

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

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

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

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

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

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

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

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

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

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

PA4

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

ハイウォーターマークを知る

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

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

untitled

PowerPoint Presentation

OWI(Oracle Wait Interface)の概要

Oracle Data Pumpのパラレル機能

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

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

橡ExCtrlPDF.PDF

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

Oracle Tuning Pack

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

Agenda

日本オラクル株式会社

4 Q. クラッシュ リカバリの時間を短縮する方法 A. クラッシュ リカバリに要する時間を短縮したい場合 チェックポイントの発生頻度を増やし リカバリ時に適用する REDO の量を少なくします オンライン REDO ログ ファイルのサイズを小さくするか FAST_START_MTTR_TARGET

MaxGauge_診断分析プロセス

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

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

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

How to Use the PowerPoint Template

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

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

AIP2016 Oracleバックアップ・復旧ガイド

意外と簡単

Microsoft SQL Server 2016 インストール手順書 (Standard) この文書は SQL Server 2016 のインストール手順について簡潔にまとめたもので Microsoft SQL Server 2016 Books Online に記述されている一部を抜粋した内容で

OM.indd

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

Microsoft PowerPoint - Oracle Database 11g Release 2 旧バージョンからのアップグレード.ppt [互換モード]

Microsoft Word - nvsi_100222jp_oracle_exadata.doc

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

Oracle DB 10g R2 構築手順

Oracle Data Pumpのパラレル機能

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

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

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

Oracle Business Intelligence Standard Edition One のインストール

ESMPRO/JMSS Ver6.0

How to Use the PowerPoint Template

Microsoft Word - PDFHS _ doc

プレポスト【問題】

PassSureExam Best Exam Questions & Valid Exam Torrent & Pass for Sure

Web 環境におけるレイヤー別負荷の 2 違い DB サーバ AP サーバ 後ろのレイヤーほど負荷が高く ボトルネックになりやすい

スライド 1

Microsoft Word - J-jdev_dba_db_developers.doc

Slide 1

Microsoft PowerPoint - 3-Forms-Others.ppt

PostgreSQL Plus 管理者ガイド

PowerPoint -O80_REP.PDF

D1印刷用.PDF

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

ESMPRO/JMSS Ver6.0

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

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

領域サイズの見積方法

Slide 1

ORACLE TUNING PACK 11G

スライド 1

Microsoft Word - MOPatch-1.doc

Calpont InfiniDBマルチUM同期ガイド

HP Device Managerご紹介資料

スライド 1

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

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

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows FAQ 集 2013(Mar) NEC Corporation 導入に関する質問 運用に関する質問 動作環境に関する質問

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

Microsoft Word - nvsi_080188jp_r1_netvault_oracle_rac_backup_complemental_guide_j_174x217.doc

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

HP Device Manager 4.7新機能紹介資料

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

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 目次 0 はじめに 本文中の記号について Live Migration を設定するための準備 Live Migration の設定 Live Migration の運

TimeTracker FX セットアップガイド 補足資料 2/14 0. はじめに 本資料は [TimeTracker FX セットアップガイド ] では説明していない Microsoft SQL Server 2005 ( 以下 SQL Server 2005) の設定や操作方法を補足するための

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

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

K5 DB powered by Oracle® Cloud FAQ

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

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

Oracle Database Connect 2017 JPOUG

MonitorExec R8 Installation

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

PowerPoint Presentation

Notes and Points for TMPR454 Flash memory

PowerPoint プレゼンテーション

ESMPRO/JMSS Ver6.0

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10

Transcription:

Oracle パフォーマンスチューニング ~ 研修受講後のスキルアップサポート ~ 対応バージョン :Oracle 10gR1 ~ 12cR1 本資料は アシスト Oracle 研修をご受講いただいたお客様からのご質問や 研修ではご案内できなかった情報などを FAQ にまとめたものです 研修受講後のスキルアップの一助として 是非お役立てください ご利用上の注意事項は最後のページにまとめられております ご確認のうえ ご利用ください 第 2 章動的パフォーマンス ビュー 1 Q. 待機イベント class slave wait について A. class slave とは パラレル処理を行うパラレル スレーブ プロセスや I/O スレーブ プロセスが属するグループのことです class slave wait の待機イベントは CLASS SLAVE の IDLE 時間であるため 特に対処いただく必要はございません class slave wait は CLASS SLAVE が処理を依頼されるまで待機している時間を表しています (CLASS SLAVE が IDLE であった時間を示しています ) 2 Q. V$SESSION(V$SESSION_WAIT) ビューで現在の待機時間をマイクロ秒で確認する方法 A. V$SESSION(V$SESSION_WAIT) ビューで待機イベント情報を確認する際 STATE 列が WAITING の場合は SECONDS_IN_WAIT 列を参照します しかし SECONDS_IN_WAIT 列は秒単位でしか表示できないため 待機中であるにも関わらず 0 秒 (1 秒未満の待機 ) となってしまうことがあります 11g では WAIT_TIME_MICRO 列が追加されており 100 万分の 1 秒までの待機時間を確認できます SQL> SELECT state,seconds_in_wait,wait_time_micro/1000000 FROM v$session; STATE SECONDS_IN_WAIT WAIT_TIME_MICRO/1000000 ------------------- --------------- ----------------------- WAITING 0.452096 0.4 秒待っているということが分かります 1

第 3 章代表的なチューニングポイント 3 Q. ストアド プロシージャを使用した SQL 共有率の向上 A. ストアド プロシージャを使用した場合 同じストアド プロシージャを実行する複数のユーザーが 同じ共有 PL/SQL 領域を使用します また ストアド プロシージャは解析済みで格納されているため 解析を減少させることができます 4 Q. 名前なしの PL/SQL ブロックを見つけ出す方法 A. 名前なしの PL/SQL ブロックは 実行するたびに解析が行なわれるため CPU 負荷の原因となる可能性があります サイズが大きい名前なしの PL/SQL ブロックは データベースにストアドさせることをお勧めします 現インスタンスで実行されたことがある名前なしの PL/SQL ブロックは以下の SQL で特定できます SQL> SELECT substrb(sql_text,1,80) 2 FROM v$sqlarea 3 WHERE command_type = 47 4 AND length(sql_text) > 100 サイズを指定して下さい 5 Q. V$LIBRARYCACHE ビューの INVALIDATIONS 列について A. V$LIBRARYCACHE ビューの INVALIDATIONS 列は SQL の解析結果が無効化された回数を示します SQL で参照されているオブジェクトが ALTER 文などによって定義変更されると解析済みの SQL は無効化され 再解析が必要となります 6 Q. ライブラリ キャッシュ上にある特定のプロシージャだけをメモリから排除できますか A. できません ALTER SYSTEM FLUSH SHARED_POOL コマンドで ライブラリ キャッシュ内のオブジェクト全体を排除することは可能です 7 Q. スキーマ名をつけている場合と つけていない場合でも SQL の共有はされないのでしょうか A. 以下の SQL は同じユーザーで実行しても別の SQL として解析されます SELECT * FROM SCOTT.EMP SELECT * FROM EMP 2

8 Q. ピーク時の DDL 操作について A. DDL 操作 ( 列を追加するなど ) を行なうと その操作が行なわれたセグメントに関連する多くの解析済み SQL は無効となります 無効となった SQL は 次回実行時に再解析されます そのため ピーク時に 使用頻度が高いセグメントに対して DDL 操作を実行しないようにしてください 9 Q. 物理読込みについて A. Oracle では 物理読込みは必ずしもディスク読込みを意味するものではありません ファイル システム キャッシュからの読込みの場合もあります 10 Q. マルチブロック読込みの際 データベース バッファ キャッシュに連続した空き領域がなくても問題ありませんか A. DB_FILE_MULTIBLOCK_READ_COUNT パラメータで設定されたブロック数が読込まれますが そのブロックはデータベース バッファ キャッシュ上で連続している必要はありません データベース バッファ キャッシュの空いているところに置かれます 11 Q. データベース バッファ キャッシュのフラッシュ A. 共有プールのフラッシュと同様にデータベース バッファ キャッシュのフラッシュも可能です 以下のコマンドで行えます SQL> ALTER SYSTEM FLUSH BUFFER_CACHE; 性能検証などで何度もメモリーを空にする場合に有効です 12 Q. log file switch completion 待機イベントについて A. log file switch completion はログ スイッチの完了を待機する際に発生する待機イベントです log file switch(checkpoint incomplete) や log file switch(archiving needed) 待機イベントなどに該当しない その他 としてカウントされます そのため 明確な待機発生原因を特定することはできませんが 一般的には REDO ログ ファイルへの I/O 負荷が高い場合に発生します 13 Q. 空きリスト管理を ASSM での管理に変更できますか A. 空きリストで INSERT 可能ブロックを管理している表領域は ASSM に変更できません ALTER TABLESPACE 文での変更は行えません どうしても変更したい場合は ASSM 管理の表領域を作成し その表領域にデータを移動することで対応します 3

第 4 章自動メモリー管理機能 14 Q. 各プロセスが使用している PGA メモリー使用量の調査方法 A. V$PROCESS ビューの次の列を参照することで 各プロセスの PGA メモリー使用量が分かります pga_used_mem プロセスが現在使用している PGA メモリー使用量 pga_alloc_mem プロセスに現在割当てられている PGA メモリー使用量 pga_max_mem 今までにプロセスへ割当てられた最大の PGA メモリー使用量 15 Q. SGA で使用されるメモリ領域について A. SGA で使用されているメモリ領域は 以下のコマンドで確認できます SQL*Plus を使用しているとき SQL> show sga Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers 55646712 bytes SGA で使用している合計サイズ 453112 bytes 固定領域 29360128 bytes 共有プール ラージプール JAVA プール 25165824 bytes データベース バッファ キャッシュ 667648 bytes REDO ログ バッファ V$SGA ビューで確認 SQL> SELECT name,value FROM v$sga; NAME VALUE -------------------- ---------- Fixed Size 2291472 Variable Size 222300400 Database Buffers 398458880 Redo Buffers 3276800 上記に表示されない SGA 内の領域が実際は存在するため 実際にとられている領域サイズとは 若干の誤差があります 4

第 5 章 Statspack によるデータベース診断 16 Q. SQL ordered by Parse Calls セクションで表示されるの SQL 情報について A. SQL ordered by Parse Calls セクションで表示されるのは ソフト解析 のコールが最も多い SQL 文です デフォルトのしきい値は 1000 解析コール数です 17 Q. セッションレベルで Statspack レポートをとることは可能ですか A. 可能です 以下の実行例をご参考ください 1. セッション ID を調べます SQL> SELECT sid,username FROM v$session 2 WHERE username IS NOT NULL; SID USERNAME ---------- ------------------------------ 9 SYS 10 SCOTT 2.SCOTT ユーザのセッション統計を取得します SQL> EXECUTE statspack.snap(i_session_id=>10) PL/SQL プロシージャが正常に完了しました 18 Q. PERFSTAT ユーザーのデフォルト表領域 一時表領域の指定について A. Statspack インストール時に PERFSTAT ユーザーのデフォルト表領域と一時表領域をどこにするか指定する必要がありますが SYSTEM 表領域を指定すると エラーが発生しインストールに失敗します SYSTEM 表領域以外の表領域を指定するようにしてください 19 Q. AWR が使用する領域サイズの確認方法 A. AWR は SYSAUX 表領域に格納されます AWR が使用しているディスク領域は以下の SQL 文で確認できます SYSAUX を使用している各データは V$SYSAUX_OCCUPANTS ビューで確認できます SQL> SELECT space_usage_kbytes 2 FROM v$sysaux_occupants 3 WHERE occupant_name='sm/awr'; SPACE_USAGE_KBYTES ------------------ 35712 5

20 Q. ビューでも AWR スナップショットの情報を確認できるとのことですが どのようなビューがありますか A. DBA_HIST_ で始まるビューを使用すると AWR スナップショットの情報を確認できます 例えば以下のようなビューがあります DBA_HIST_SNAPSHOT ビュー管理しているスナップショットの取得期間や ID を確認できます DBA_HIST_BASELINE ビューシステムで取得されたベースラインに関する情報を確認できます ビューの詳細は リファレンス マニュアルをご参照ください 付録 21 Q. V$DB_OBJECT_CACHE ビューの EXECUTION 列について A. V$DB_OBJECT_CACHE ビュー列の EXECUTION 列は使用されません 実際の実行回数を確認したい場合は V$SQLAREA ビューの EXECUTION 列を確認してください 22 Q. 予約プール領域の割当てられる場所について A. 予約プール領域は 共有プール内にとられます 予約プールを大きくすれば その分通常の共有プールとして使用される領域は小さくなります 23 Q. ALTER SYSTEM FLUSH SHARED_POOL コマンドを実行すると DBMS_SHARED_POOL パッケージでライブラリ キャッシュに固定しているオブジェクトも消去されてしまいますか A. ALTER SYSTEM FLUSH SHARED_POOL コマンドを実行すると 共有プール上のデータが消去されます しかし 現在実行中のものや 固定しているオブジェクトに関しては消去されません 24 Q. 表領域レベルでのチェックポイント A. インスタンスレベルではなく 表領域レベルでチェックポイントが発生する主な例を以下にまとめます 表領域をオフライン化するとき (NORMAL オプション ) 表領域を READ ONLY にするとき オープンバックアップを行なうため BEGIN BACKUP を実行したとき データ ファイルのサイズが変更されるとき 25 Q. 初期化パラメータ FAST_START_MTTR_TARGET の値が有効になりません A. 初期化パラメータ FAST_START_MTTR_TARGET は Enterprise Edition でのみ指定できます Standard Edition では 使用することができません 6

26 Q. インスタンス起動直後に DBMS_SHARED_POOL パッケージでオブジェクトを固定する方法 A. インスタンス起動時に実行されるトリガーを使用することで インスタンス起動直後に特定のオブジェクトを共有プールに固定できます /* DBMS_SHARED_POOL パッケージで共有プールに固定するプロシージャのリストを記載したプロシージャ keep_object_list を作成する */ SQL> CREATE OR REPLACE PROCEDURE keep_object_list 2 IS 3 BEGIN 4 DBMS_SHARED_POOL.KEEP('SCOTT.TEST_PROC'); 今回はこの 2 つのプロシージャ 5 DBMS_SHARED_POOL.KEEP('SCOTT.TEST2_PROC'); を固定する 6 END; 7 / プロシージャが作成されました /* 固定するプロシージャリストである keep_object_list プロシージャをトリガーを使用して データベース起動時に実行させる */ SQL> CREATE OR REPLACE TRIGGER keep_object 2 AFTER STARTUP ON DATABASE 3 BEGIN 4 keep_object_list; 5 END; 6 / トリガーが作成されました /* データベースを再起動する */ /* 通常はデータベースが再起動されると固定プロシージャもメモリからフラッシュされるが トリガーによって keep_object_list プロシージャが実行されることで 指定したプロシージャが共有プールに固定されている */ SQL> SELECT owner,name,kept 2 FROM v$db_object_cache 3 WHERE name like 'TEST%PROC'; OWNER NAME KEP ---------- ------------ --- SCOTT TEST2_PROC YES SCOTT TEST_PROC YES 27 Q. KEEP プールを使用する表の全表スキャンについて A. 通常 表を全表スキャンすると 対象表のブロックは LRU リストの末尾 (LRU 側 ) に読込まれ LRU リストの MRU 側を使用しません しかし KEEP プールに読込まれる表は 全表スキャンした場合でも 全て LRU リストの MRU 側に読込まれ メモリー上にデータが残るようになっています 7

28 Q. NOLOGGING モードで表を作成したにも関わらず LOGGING モードになっている場合があります なぜでしょうか A. NOLOGGING モードの表を作成するには 副問合せの前に NOLOGGING を指定する必要があります /* 副問合せの後に NOLOGGING の指定 */ SQL> CREATE TABLE dept2 2 AS SELECT * FROM dept 3 NOLOGGING; 表が作成されました SQL> SELECT table_name,logging FROM user_tables 2 WHERE table_name='dept2'; TABLE_NAME LOG ------------------------------ --- DEPT2 YES NOLOGGING が無効 /* 副問合せの前に NOLOGGING の指定 */ SQL> CREATE TABLE dept3 2 NOLOGGING 3 AS SELECT * FROM dept; 表が作成されました SQL> SELECT table_name,logging FROM user_tables 2 WHERE table_name='dept3'; TABLE_NAME LOG ------------------------------ --- DEPT3 NO NOLOGGING が有効 8

その他 29 Q. 廃止になった初期化パラメータを確認する方法 A. V$OBSOLETE_PARAMETER ビューを参照すると 廃止になったパラメータを確認することができます また このビューの ISSPECIFIED 列が TRUE になっている行は その理由を調べる必要があります 30 Q. TRUNCATE 文による削除処理の効率化 A. TRUNCATE 文は 対象となる表の全ての行を削除します DELETE によって行を削除する場合 ロールバックに備えて削除前のデータが UNDO に記録されます これは 全行削除するような場合 大量の書き込みとなり パフォーマンスに大きな影響を与える可能性があります それに対して TRUNCATE は DDL コマンドであり UNDO に対しての書き込みは最低限のものだけであるため ( ロールバック処理は出来ません ) 処理が非常に高速です TEST 表には 3 万件のデータが格納されています SQL> DELETE FROM test; 30000 行が削除されました 経過 : 00:00:37.11 約 37 秒 (SQL*Plus の TIMING 機能を使用して時間を表示しています ) SQL> ROLLBACK; ロールバックが完了しました SQL> TRUNCATE TABLE test; 表が切り捨てられました 経過 : 00:00:00.21 1 秒もかかっていません データ量などによって 処理時間は異なってきます 上記は あくまでも TRUCATE が DELETE に比べ高速であることを確認するための例です 31 Q. CPU_COUNT パラメータの値は搭載 CPU の枚数とコア数のどちらが設定されますか A. CPU_COUNT パラメータには 搭載 CPU のコア数が自動的に設定されます 9

32 Q. CHAR 型を使用している列に UPDATE を行なっても 行移行が発生している時があります なぜですか A. CHAR 型を使用していても初期値が NULL 値である場合 UPDATE によって行の移行が発生します UPDATE された後は CHAR で指定したサイズの領域がとられますので その行が移行することはありません 33 Q. 行移行 行連鎖を確認するために対象表を DBMS_STATS パッケージで分析し CHAIN_CNT 列を確認しましたが データが入っていません なぜですか A. DBMS_STATS パッケージでは行移行 行連鎖の情報は収集しません そのため ANALYZE 文を使用して情報収集を行ってください SQL> EXECUTE dbms_stats.gather_table_stats('scott','test'); PL/SQL プロシージャが正常に完了しました SQL> SELECT table_name,chain_cnt FROM user_tables 2 WHERE table_name = 'TEST'; TABLE_NAME CHAIN_CNT ------------------------------ ---------- TEST 0 SQL> ANALYZE TABLE test COMPUTE STATISTICS; 表が分析されました SQL> SELECT table_name,chain_cnt FROM user_tables 2 WHERE table_name = 'TEST'; TABLE_NAME CHAIN_CNT ------------------------------ ---------- TEST 4296 ご利用上の注意事項 本書の著作権は株式会社アシストに帰属します 本書は参考資料であり 掲載されている情報は予告なしに変更されることがあります 本書で使用している製品の名称は 各社の商標または登録商標です 本資料の内容に関するご質問はご遠慮ください 本資料はお客様の責任のもとでご利用ください これらの使用によりいかなる損害が生じたとしても 株式会社アシストは一切保証致しかねますので ご了承ください 10