Insight Technology, Inc

インサイトテクノロジー

Japanese | English

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


┏━━━━◆ Oracle技術を高めたい人におすすめのセミナー◆━━━━┓
★★  ┏━━━━━━━━━━━━━━━━━━━━━━━┓   ★★
★★  ┃Oracle8プロフェッショナルテクニック セミナー ┃   ★★
★★  ┗━━━━━━━━━━━━━━━━━━━━━━━┛   ★★
★★ご要望にお応えして開催決定!お知らせ&HPにて詳細ご案内中! ★★
┗━http://www.insight-tec.com/jp/topics/semi_information1.html━┛


<<目次>>
■Oracle検証生活・・・フリーブロックに関する検証 その4
■QAコーナー・・・1.コアレスはいつから存在したの?
		 2.ロールバックセグメントのフリーブロックは特殊?
		 3.analyzeコマンドを複数回実行すると悪い影響がある?
■お知らせ・・・★★要チェック!Oracleセミナー情報!!
		○Oracle管理ツール	○連載情報
		○書籍格安販売		○QAについて
■編集者より

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle検証生活 ▼━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<フリーブロックに関する検証  その4>  ペンネーム  ちゃむ
今回はフリーブロックの領域をテーブルなどのオブジェクトが使用するときの
領域の割り当て方にさらに迫ってみる。では、以下の内容に関して順番に説明
しよう。

1.minimum extentに関して
2.フリーブロックの断片をなるべく残さないような動き<次回以降説明>
3.フリーブロックをどのように使うかを表わしたフローチャート
  <次回以降説明>

では1.に関して説明する。minimum extentとは簡単にいうと領域管理の単位
をそこで指定したバイト単位で、つまりはブロック単位でおこなうために使用さ
れる。これは、8.0からのバージョンで使用できるようになったものである。

(1) 具体的な例で見ていこう。
以下は、create tablespaceをおこなうときにバイト単位で指定するものである。
ここでは,db_block_size=2kを指定しているため80K/2K=40ブロック(単位)で領
域管理を行うように指定した。

create tablespace test datafile
'/shome/share/koba/oradata/test.ora' SIZE 880k
minimum extent 80k
default storage (pctincrease 0);

(2) このテーブルスペースにテーブルCHAMUを作ってみる。
CREATE TABLE CHAMU (COL1 NUMBER) TABLESPACE TEST 
STORAGE (INITIAL 2K NEXT 2K PCTINCREASE 0 MINEXTENTS 5);

1ブロックのエクステントを5個作ってくれという命令であるが、結果はどうなる
であろうか?

DBA_EXTENTSを見てみよう。

SEGMENT_NAME  TABLESPACE_NAME  EXTENT_ID  BLOCK_ID  BYTES  BLOCKS
-----------------------------------------------------------------
CHAMU         TEST             4          2         81920  40
CHAMU         TEST             2          42        81920  40
CHAMU         TEST             0          82        81920  40
CHAMU         TEST             1          122       81920  40
CHAMU         TEST             3          162       81920  40

2Kバイト(1ブロック)のエクステントを指定したにも関わらずエクステントは
40ブロック単位となっている。minimum extentで指定した40ブロック単位で領域
は割り当てられてしまっている。

(3)このときの、テーブルスペースのフリーブロックをDBA_FREE_SPACEで見てみよう。
TABLESPACE_NAME  BLOCK_ID  BYTES   BLOCKS
-----------------------------------------
TEST             202       489472  239

239ブロック空いている状況がわかるが、40ブロック*6に満たない。つまり、
あと5エクステント分しかエクステントされない。MINIMUM EXTENTを変更しない
限りは、39ブロックは、まったくの未使用領域になってしまう。

(4)CREATE TABLESPACE でデータファイルのSIZEを880Kで指定しているが、これを作
った直後のフリーブロックの様子は以下のとおりである。

TABLESPACE_NAME  BLOCK_ID  BYTES   BLOCKS
-----------------------------------------
TEST             2         899072  439

(880K/2K) - (ヘッダー1ブロック) = 439ブロック である。データファイルのヘッ
ダーに1ブロック使用されるので、minimum extent 80k の場合にはヘッダー分を考
慮してデータファイルの大きさをSIZE 882kで指定するほうが無駄な領域を作らない
ことがわかる。

参考までに、データファイルのヘッダーのダンプを出力するコマンドは、
ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME FILE_HDRS LEVEL 10';
である。初期化パラメータの user_dump_destにトレースファイルとして出力される。

領域管理の利点からminimum extentを考えてみよう。
例えば、minimum extent 100kで指定した表領域にテーブルを格納するとしよう。
そのとき、DROP TABLE、CREATE TABLE、TRUNCATE TABLEなどが頻繁に行われるとき
領域の管理単位が決まっていると、非常に効率よく領域の解放、確保を行なうこと
ができる。この場合だと断片化したとしても100K単位であり、再利用できるサイズで
あることが理解できるだろう。この話は、「その3」の☆★Question1★☆の回答
の中でも、取り扱ったので、また、読み返してみていただきたい。

minimum extentのサイズを決める指針は、領域を解放するオブジェクトのサイズに注
目するのがよいであろう。日常の業務処理で領域を解放するのは、以下のものがあげ
られるのではないだろうか。

・ある処理をするために中間的に作った表
・REBUILDやDROP AND CREATEなどを頻繁に行なう索引の表領域
・日付をキーにしたパーティション表の古い日付データのDROP

これらのオブジェクトのサイズに注目して、その解放が行なわれる単位を把握した上で、
minimum extentのサイズを決定すべきであろう。

あくまでも、DELELE処理では、領域は解放されないので、注意していただきたい。


以上  茅ヶ崎にて

〜フリーブロックに関する検証 その4〜
by  ちゃむ


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ QAコーナー ▼━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆★Question1★☆
>初歩的な質問なのかもしれませんが、コアレスという概念はOralce7からあった
>ものでしょうか。現在会社の環境がOracle7.3マニュアルは7.2なので、マニュ
>アルのALTER TABLESPACEにはそのパラメータが記載されていません。

☆★Answer&Advice★☆

ALTER TABLESPACE  COALESCE;

上記のコマンドはORACLE7.3からの機能です。この前の記事にもあるとおりそれ
以前のバージョンでも、SMONが5分おきコアレスを行なっていましたが、コマンド
は提供されていませんでした。ちなみにSMONがPCTINCREASE 0 のテーブルスペース
をコアレス対象外にしたのは、7.1.xからのようです。7.0まではPCTINCREASEに
関わらず、すべてのテーブルスペースがコアレス対象であったようです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆★Question2★☆
>SELECT TABLESPACE_NAME,BLOCK_ID,BYTES,BLOCKS FROM DBA_FREE_SPACE ORDER 
>BY BLOCK_ID;
>を実行したときにROLLBACK_DATAのブロックIDが重複して同じ行が5行も出て
>くるのですが、ロールバックセグメントのフリーブロックは特殊なのでしょうか。

☆★Answer&Advice★☆
これはそのテーブルスペースがデータファイル5つで構成されているからでしょう。
ロールバックセグメントのフリーブロックだから特殊というわけではありません。
以下のSQL文でお試しください。こちらの方がデータファイルが別れているときも
使えるので万能なSQL文ですね。

SELECT TABLESPACE_NAME,file_id,BLOCK_ID,BYTES,BLOCKS FROM DBA_FREE_SPACE 
where TABLESPACE_NAME=' ' ORDER by  file_ID, BLOCK_ID;

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆★Question3★☆
>1つのテーブルに対してanalyzeコマンドを複数回実行することで
>かえってレスポンスが低下するということはありますか?
>1回の実行では改善が見られるのですが
>再度analyzeコマンドを実行するとレスポンスが遅くなります。
>(これは表が修正してあっても、未修正でも遅くなりました。)
>現在運用中のシステムで、チューニングを実行中に上記のことに気がつき
>ました。初期化パラメータファイルのOPTIMIZER_MODEにはデフォルト、
>ALL_ROWS、FIRST_ROWSの3種類をそれぞれ指定してみましたが、遅くなる
>事実には変わりありませんでした。

☆★Answer&Advice★
一般的に言いますと、analyzeコマンドを複数回実行してレスポンスが低下する
というのは、TABLEの中身のデータが変わっていなければありえません。
レスポンスが低下するという根本は、実行計画が変わるということなので、問題
のSQL文をピックアップして、実行計画を調べてみるのはいかがでしょうか?


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle8 プロフェッショナルテクニック セミナー ▼━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
昨年開催され大好評を博した上記のセミナーが、皆様からのラブコールに
お応えして再び開催されます。

「今回は新たにOracle DBAとして現場で活躍しようとしているような
フレッシュな方を対象にベーシックな部分に力を入れたセミナーを開きたい」
という講師を務める小幡の言葉にもありますように、Oracle DBAをこれから
目指す方々にわかりやすい言葉で丁寧なセミナーを行います。
テキストとして使われるのは、同名の既刊本(HPにて発売中)。著者による
解説を加えて読み解くことができるので、さらに理解が深まるはずです。

「わたしもこの本を解説してもらってSKILL UPしたんですよ。」(うさぎ談:
月刊DB Magazine誌「DBAのお仕事」で活躍中!)という例もあるように、
有意義なセミナーになること間違いなし!この機会にぜひご参加ください。
お申し込みは以下のURLにて承っています。

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

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

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 連載情報 ▼━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<雑誌連載:体験的・DBAのお仕事(DB Magazine(翔泳社))>
Oracleのエキスパートとして定評のある弊社のスタッフが執筆しております
連載記事です。Oracle関連業務に携わる方、是非ご一読ください。
現在6月号が書店にて発売中です。

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 書籍格安販売 ▼━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<1割引&送料無料>
好評をいただいております既刊本「Oracle8 プロフェッショナルテクニック」
を弊社のHPよりお申し込みいただいた方に限り、1割引&送料無料でご提供いた
します。(先にご紹介した「Oracle8 プロフェッショナルテクニック」
セミナーに参加される方は、こちらでご購入された方がお得です。)

専門書としては異例の速さで増刷が決定するほどの好評をいただいている
「Oracle8 プロフェッショナルテクニック」をお得に入手するチャンスです。
この機会をお見逃しなく!

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

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 編集者より ▼━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ゴールデンウィークもあっという間に終わってしまいました。
帰省も分散されたとかいうことで渋滞にも巻き込まれず、驚くほど快適な
ドライブだったのですが、快適すぎて調子にのってしまい、
スピード違反でつかまってしまいました。26キロオーバーだって。
免停でなくてよかったけれど、連休で出費がかさんだところにとどめの
出費となりました。あーあ.....。皆さん、交通ルールは守りましょうね。
							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.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

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