┏┏┏┏┏━━━━━━━━━━━━━━━━━━━━━━━━…・・ ┏━
┏┏┏┏┛ 2004.10.20 ┏┛┛
┏┏┏┛ ☆おら!オラ!Oracle -どっぷり検証生活-★ ┏┛┛┛
┏┏┛ ┏┛┛┛┛
┏┛・・…━━━━━━━━━━━━━━━━Vol.221━…・・┏┛┛┛┛┛
◇目次◇
■Oracle検証生活・・・Oracle10g Cost Base Optimizerにまつわる検証 その1
■お知らせ・・・○QAについて
■編集者より
◎バックナンバーココから!!
http://www.insight-tec.com/html/mailmagazine/mail_back/mail_back_index.html
┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 Oracle 検証生活 】 ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
<Oracle10g Cost Base Optimizerにまつわる検証 その1>
~Monitoring属性の変~
ペンネーム:グリーンペペ
今回よりCost Base Optimizerにまつわる検証を重ねていきます。10gからRule
BaseでのSQL解析はOracle社のサポート外となってしまいました。言い換える
と、Cost Base Optimizerはとっても進化して優秀になったのでそちらを使っ
てくださいということです。ではどれくらい進化したのかCost Base Optimizer
の真髄を味わってみましょう。
早速、性能比較をと続けたいのですが、その辺はOracle社のホームページなど
見ていただくとして、こちらはまた独自路線で進んでいきます。
Cost Base Optimizerをより強化する機能としていくつかの機能が10gより使用
されています。
では、その一端として早速皆さん。10g環境下で以下のSQL文を実行してみて下
さい。MONITORING列はどのように表示されましたでしょうか?
ほとんどの方は"YES"と表示されているのではないでしょうか?
■環境
Miracle Linux Standard Edition V2.1
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
SQL> select TABLE_NAME,MONITORING from tabs;
TABLE_NAME MON
------------------------------ ---
SALGRADE YES
BONUS YES
EMP YES
DEPT YES
MONITORING列が"YES"であるということはこれらの表はMonitoring属性である
ということです。
Monitoring属性は8iからの機能で表に対する更新(insert,update,delete,
direct load)が表やその表のパーティションに対して発生すると、それらが
何行発生したかなどの情報を記録する機能です。
でも、おかしいですね。テーブルを作成する際にはMonitoring属性の指定はし
ていないのですが。。
今一度読者の方に見守って頂きながら表を作成してみましょう。
SQL> create table test (col1 number);
Table created.
SQL> select TABLE_NAME,MONITORING from tabs where table_name='TEST';
TABLE_NAME MON
------------------------------ ---
TEST YES
やはりMONITORING列は"YES"です。
alterコマンドで属性を変更してみます。
SQL> alter table test nomonitoring;
Table altered.
SQL> select table_name,MONITORING from tabs where table_name='TEST';
TABLE_NAME MON
------------------------------ ---
TEST YES
変わりません。
困った時はマニュアルです。
以下、マニュアルSQLリファレンス16-55転載。
MONITORING | NOMONITORING
以前のリリースでは、これらの句を使用して、表の変更統計の収集を開始また
は停止できました。これらの句は現在使用されていません。
- 以前のリリースではGATHER AUTO またはGATHER STALE モードでDBMS_STATS
パッケージを使用して表の変更統計を収集していましたが、現在は何も操作を
行う必要はありません。これらの統計情報は自動的に収集されます。また、既
存のコードにMONITORING およびNOMONITORING キーワードが含まれていても、
エラーにはなりません。
- パフォーマンス上の理由で表の変更統計を収集しない場合、STATISTICS_LEVEL
初期化パラメータをBASIC に設定する必要があります。ただし、これによって
多くの管理機能が使用禁止になることに注意してください。
何やらstatistics_level=basic に設定すればMonitoring属性を変えられるよ
うです。
SQL> alter system set statistics_level=basic;
System altered.
SQL> select table_name,monitoring from tabs;
TABLE_NAME MON
------------------------------ ---
TEST NO
SALGRADE NO
BONUS NO
EMP NO
DEPT NO
変わりました。
どうやら、10gからstatistics_level=typical(default値) もしくは allに設
定されていた場合、自動でMonitoring属性になってしまうようです。
つまりデフォルトで運用した場合、全ての表がMonitoringされているというこ
とです。
何故このような負荷のかかることが行われているのでしょう?
そしてOracle社がstatistics_level=basicにすることを推奨しない理由は?
次週以降、徐々に解明していきますので、しばらくお付き合い下さい。
引越しブームの茅ヶ崎にて
┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 QAについて 】 ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
<皆様からのQAを受付けております>
皆様のQAにはできるだけ、お答えしたいと思っています。
すべてのQAにお答えすることはできないかもしれませんが、
適宜メルマガ内でとりあげていく予定ですので、是非QAを下記アドレスま
でお寄せください。
┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 編集者より 】 ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
この前、知り合いの人に「筋肉痛」って言葉が多すぎるという指摘をうけた
のですぅ。あまり気にはしていなかったのですが、昔の「編集者より」を読
み返していたら・・かなり書いてありましたぁ。その度に反省しているにも
かかわらず、また気がつけば筋肉痛の一言が・・。これからは気をつけよう
と心に決めた一日でしたっ♪ by TI
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録・解除は以下のURLで行うことができます。
http://www.insight-tec.com/mailmagazine/ora3/mail_top.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<おら!オラ!Oracle-どっぷり検証生活->
発行/編集:株式会社インサイトテクノロジー
http://www.insight-tec.com
マガジンID:0000030093
本メールマガジンに掲載された記事を許可なく転載することを禁じます。
Copyright(c) 1995-2004, Insight Technology, Inc., All Rights Reserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━