Insight Technology, Inc

インサイトテクノロジー

Japanese | English

株式会社インサイトテクノロジー 発行
http://www.insight-tec.com/jp/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Vol.30
   ☆☆☆  おら!オラ! Oracle −どっぷり検証生活− ☆☆☆
                             2000.11.08
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    他ではなかなか得られない、マニュアルを読んでもわからない、
   そういったOracleに関する技術情報をお届けするメルマガです。
   実際に検証した結果も交えてお伝えしていきます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
/// ///┏━━━━━━━━━━━━━━━━━━━━━━━━━┓/// ///
★  ★ ┃                                                  ┃★  ★
    ┃      ★☆祝☆★メルマガ30号!!      ┃
/// ///┃                                                  ┃/// ///
★  ★ ┗━━━━━━━━━━━━━━━━━━━━━━━━━┛★  ★
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

このメルマガもおかげさまで30号をむかえることができました。
今後とも役だつ情報をご提供できるようにがんばりますので、
応援よろしくお願い申し上げます。

<<目次>>
■Oracle検証生活・・・ローカルエクステントマネージメントに関する検証
								その7
■お知らせ・・・○Oracle管理ツール Performance Insight
		○無料セミナーのご案内
		○SQeeLのご案内		○連載情報
		○書籍ご予約受付中	○QAについて
■編集者より

■■注意事項!!■■
本文中にテーブルが含まれていますので、お読みになる際はMSゴシック等、
等幅フォントをお使いただくことをお勧めします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle検証生活 ▼━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
〜ローカルエクステントマネージメントに関する検証 その7〜
ペンネーム ちゃむ

--------------------------------------------------------------------------
8iからの新機能ローカルエクステントマネージメントを以下「LOCAL」と呼ぶ。
従来のデータディクショナリーでエクステントを管理する方法を以下「DICTIONARY」
と呼ぶ。
--------------------------------------------------------------------------

前回は、「LOCAL」と「DICTIONARY」を比較したときの領域管理上のエンキュー
に関するメリットについて説明した。
今回は、「パフォーマンス」に関するメリットを検証してみよう。


まず、100Mのテーブルスペースの「LOCAL」、「DICTIONARY」をそれぞれ作った直後の
dba_free_spaceの状況を示す。

TABLESPACE_NAME  BLOCK_ID  BYTES      BLOCKS
--------------------------------------------
TESTD            2         104855552  51199
TESTL            33        58720256   28672
TESTL            28705     46071808   22496

なぜ、TESTLが2つのフリーブロックに別れているかは、
〜ローカルエクステントマネージメントに関する検証 その3〜を参照のこと

100Mのテーブルスペースの「LOCAL」,「DICTIONARY」にそれぞれのテーブルス
ペースにテーブルを作成して100万件のデータを挿入したときのパフォーマンス
の違いを示す。

次の2点を比較する。

1.「LOCAL」、「DICTIONARY」上のテーブルにSQL*LOADERを用いて100万件INSERT
したときのパフォーマンスの違い

2.それらのテーブルをtruncateしたときの処理速度の違い。

1.

以下は比較に使用するテーブルスペース、テーブルを作成するSQL文である。
(t100man_orgはemp表を100万件に拡張した表である。)

「DICTIONARY」
create tablespace TESTd
datafile '/mnt1/testd' size 100m
minimum extent 4k
default storage (pctincrease 0);
/* pctincrease 0はSMONにコアレスさせないため */

create table test100man_d
tablespace TESTd
storage (initial 4k next 4k pctincrease 0 maxextents unlimited freelists 1)
as select * from t100man_org where 1=2;

「LOCAL」
create tablespace TESTl
datafile '/mnt1/testl' size 100m
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4k;

create table test100man_l
tablespace TESTl
storage (initial 4k next 4k pctincrease 0 maxextents unlimited freelists 1)
as select * from t10man_org where 1=2;


参考までに、SQL*LOADERでロードするためのCSVのテキストデータを出力するスクリプト
を以下に記述する。

---------------------スクリプト始め------------------------
set heading off
set echo off
set feed off
set spa 0
set newp 0
set pages 0  
set wra off
col EMPNO format 9999999999
col ENAME format a10
col JOB format a9
col MGR format 9999
col SAL format 9999999
col COMM format 9999999
col DEPTNO format 99

spool /mnt1/data100man.txt
select EMPNO || ',' || ENAME || ',' || JOB || ',' || MGR || ',' || HIREDATE || ','
 || SAL || ',' || COMM || ',' || DEPTNO from t100man_org
/
spool  off
---------------------スクリプト終わり------------------------

以下が従来型のSQL*LOADERを用いて100万件INSERTしたときの処理速度の違いである。
(処理をする際は必ずデータベースを再起動して行なった)
処理時間の違いは、やはりSYSTEM表領域へのIOの違いが影響しているであろう。

「DICTIONARY」
実行時間:         00:24:29.86→24分29秒86
CPU時間 :         00:05:18.30→5分18秒30

「LOCAL」
実行時間:         00:17:09.58→17分9秒58
CPU時間 :         00:05:08.74→5分8秒74

そのときのDATAFILEファイルへのIOどうであろうか?
(処理後のv$filestatの値から処理前のv$filestatの値を引き算する)
物理リード回数 → P_R
物理リードブロック回数 → P_R_B
物理ライト回数 → P_W
物理ライトブロック数 → P_W_B

「DICTIONARY」                  P_R      P_R_B      P_W      P_W_B
------------------------------------------------------------------
SYSTEM 表領域                  2958       3377     1925       1925
TESTD 表領域                      3          3    25037      25037
ロールバックセグメント表領域     47         47     5783       5783

「LOCAL」                       P_R      P_R_B      P_W      P_W_B
------------------------------------------------------------------
SYSTEM 表領域                  2272       2612       32         32
TESTL 表領域                      3          3    25061      25061
ロールバックセグメント表領域     30         30     4244       4244

2.

次にそのデータをTRUNCATEしたときの処理時間と物理IOを示す。
時間はsqlplus よりset timing onで取得したものである。
処理時間の違いは、SYSTEM表領域、ロールバックセグメント表領域のIO数
に違いが影響しているであろう。


「DICTIONARY」                  P_R      P_R_B       P_W      P_W_B
-------------------------------------------------------------------
SYSTEM 表領域                  1926       2327        230        230
TESTD 表領域                    103        103        104        104
ロールバックセグメント表領域   1128       1128       1872       1872

Elapsed: 00:09:48.11→9分48秒11

「LOCAL」                       P_R      P_R_B       P_W      P_W_B
-------------------------------------------------------------------
SYSTEM 表領域                   564        622        13         13
test100man_l 表領域             105        105       109        109
ロールバックセグメント表領域     25         25       609        609

Elapsed: 00:00:52.97→52秒97


TRUNCATE直後のdba_free_spaceの様子

「DICTIONARY」
TABLESPACE_NAME   BLOCK_ID   BLOCKS
--------------------------------------
TESTD             4          2
TESTD             6          2
TESTD             8          2
TESTD             10         2
  :               :          :
  :               :          :
  :               :          :
TESTD             24986      2
TESTD             24988      2
TESTD             24990      2
TESTD             24992      26209 → initial 100Mで確保した際の余り

「LOCAL」
TABLESPACE_NAME   BLOCK_ID   BLOCKS
--------------------------------------
TESTL             33         2
TESTL             37         28668
TESTL             28705      22496


「LOCAL」のほうは、DROPした直後に、create tablespace した直後の状態に戻っ
ている。以前、localはコアレス対象外と説明したが、ここに理由を見出せる
であろう。また、「DICTIONARY」の方は、BLOCK_IDを見ればコアレスをすれば、一
つの領域になるが、コアレスをしない状態では、エクステント境界線が12495個も
あるのがわかるであろう。

この結果は、TRUNCATEの処理時間が、「DICTIONARY」は「LOCAL」より遅いという
ことだけでなくその後のエクステントの境界線の状態を考えるといずれ、
coalesce処理が必要になったとき、その分また負荷がかかってしまうという
「負の遺産」を残してしまったということが言える。

最後にコアレス処理を手動で行なったときの処理時間を計ると以下のようになる。

alter tablespace testd coalesce;

Elapsed: 00:05:41.68→5分41秒68

12月14日(木)、15日(金)に開催されるORACLE OPEN WORLD(東京ドーム)へ
の出展が決まりました。メルマガライターもブース(インサイトテクノロジー)
に全員終結します。会場で皆様にお会いできるのを楽しみにしております!!


以上 「牛角(焼肉屋)」が駅前にできた 茅ヶ崎にて



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle 管理ツール Performance Insight ▼━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Oracleを知り尽くしたメンバーが開発したOracleパフォーマンス監視ツール
の決定版。それがPerformance Insightです。インサイトテクノロジーの技術
者の知恵とノウハウがここに結集!
パフォーマンス監視だけでなくOracleを使用しているシステムの運用、管理、
そして開発にも役立つ機能がいっぱいです。
詳しくは以下のURLをご覧ください。

http://www.insight-tec.com/jp/products/products.html

また無料で試使用することも可能です。
是非お問い合わせください。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 無料セミナーのご案内 ▼━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<スキルアップセミナー>
●実践から学ぶDBチューニング第3回「REDOログの仕組み」

無料セミナーの第3回は、11月22日(水)に開催されます。
多くの方々にご出席いただいた第1、2回と同様、有意義な内容のセミナー
です。皆様ぜひご参加ください。詳細は以下のURLにてご案内しています。

http://www.insight-tec.com/jp/topics/semi_information.html


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ SQeeLのご案内  ▼━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<プログラマ待望の言語SQeeL>
●手軽に使える、速い、そしてWEBに適した新言語SQeeL!

フリーソフトSQeeLは、以下のURLより好評ダウンロード中!
既に多くの方々にご利用いただいております。
あなたもSQeeLの世界を体験してみませんか?

http://www.SQeeL.org

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 連載情報 ▼━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<雑誌連載>
Oracleのエキスパートとして定評のある弊社のスタッフが執筆しております
連載記事に関してご紹介しています。
現在書店にて発売中の「DB Magazine 12月号」(翔泳社)にて新連載が
スタートしました。この新連載、読者ハガキアンケートでは、なんと8、9割
の読者が面白いという評価をしているそうです。(やったー!)
是非ご覧下さい。

http://www.insight-tec.com/jp/topics/magazine.html
上記のURLでタイトルがご覧になれます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 書籍ご予約受付中 ▼━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<送料無料でお届けします>
「Oracle8 プロフェッショナルテクニック」は大好評につき、現在在庫切れと
なっており、ご注文いただいた皆様にはたいへんご迷惑をおかけしております。
まもなく入荷する予定ですので、今しばらくお待ちください。
これからご注文いただく方も、入荷次第発送させていただくということで
予約注文を受付けておりますのでよろしくお願い申し上げます。

また弊社のHPよりお申し込みいただいた方に限り、送料無料でお届けします。
専門書としては異例の速さで増刷が決定するほどの好評をいただい
ている「Oracle8 プロフェッショナルテクニック」をぜひご活用ください。

http://www.insight-tec.com/jp/topics/books.html
ホームページより受付中です。お早めに!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ QAについて ▼━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<皆様からのQAを受付けております>
皆様のQAにはできるだけ、お答えしたいと思っています。
すべてのQAにお答えすることはできないかもしれませんが、
適宜メルマガ内でとりあげていく予定ですので、是非QAをお寄せください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 編集者より ▼━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
当初、始めるか始めないかで随分議論したこのメルマガも30号をむかえるこ
とができました。これもご購読いただいている皆様のおかげです。本当にあ
りがとうございます。今後ともよろしくお願い申し上げます。   by UA

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録・解除は以下のURLで行うことができます。
http://www.insight-tec.com/jp/em/mail_magazine.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<おら!オラ!Oracle−どっぷり検証生活−>
発行/編集:株式会社インサイトテクノロジー
http://www.insight-tec.com/jp

マガジンID:0000030093
本メールマガジンに掲載された記事を許可なく転載することを禁じます。
Copyright (c) 1996-2000, Insight Technology, Inc. All rights reserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

 メールマガジン登録/解除