Oracle 豆知識
本講座の内容は、作者の経験に基づきまとめたものです。
Lastupdate : 1999/04/06 by kit
其の一 Oracle基礎編
「データベースとデータベース・ファイル」とはなんですか?
Oracleの「データベース」は、OSのファイルの集合体から成り立っています。
そして、これらファイルは、3種類に大分類することができます。
(1)コントロール・ファイル
物理的なOracleファイルと、Oracleデータベース・ディクショナリの論理的な枠組み
の関係を定義するもの。
(2)REDOログファイル
非同期に行われるデータベースへの書き込みなどのトランザクション処理の整合性など
を保つ為の情報を持つもの。
(3)データ・ファイル
実データを含むファイルなどをもつもの。<----- ここにDBが作成されるようです。
以上は、Oracle関連の文献より引用。
「テーブルスペース」とはなんですか?
Oralceデータベースは、「テーブルスペース」と呼ばれる論理的な蓄積ユニットに区切られています。
Oracleでは、最低次の5つのテーブルスペースを持つようにと推奨しています。
(1)system・・・データベース・ディクショナリ・セグメントだけをもつ。
(2)rbs ・・・・ロールバック・セグメントのみを持つ。
(3)temp・・・・一時セグメントのみを持つ。
(4)tools ・・・Oracleフォームスのような汎用的なツールの為のセグメントを持つ。
(5)users ・・・ユーザのセグメントを持つ。<----- 通常、ここにDBを作成します。
これらのデータ・ファイルは、
create table space...
alter table space ... add datafile ...
などのステートメントによって作成/拡張できます。
以上は、Oracle関連の文献より引用。
其の二 Oracle フラグメンテーション編
「ブロック・フラグメンテーションの修復方法」はどの様にすればよいのですか?
テーブルにlongまたは、long rawのデータが含まれていなければ、次のSQL文で
フラグメンテーションを回避できます。
(これは便利です。しかし、いつもこの様にすめばよいのですが。。。)
<例>
create table xx_temp as select * from xx_tabel
truncate tabel xx_table
insert into xx_table select * from xx_temp
テーブルにlongまたはlong rawのデータが含まれる場合は、expとimp、または
SQL*Loaderによってデータベースにロードし直す必要があります。
「行フラグメンテーションの解析方法」はどの様にすればよいのですか?
Oracleにバンドルされているutlchain.sqlユーティリティにより解析することが可能です。
以上は、Oracle関連の文献より引用。
「セグメント・フラグメンテーションの修復方法」はどの様にすればよいのですか?
セグメントのフラグメンテーションは、expユーティリティを
compress=n
にしてエクスポートし
DB再構築後、impよりインポートすればOKです。
このcompress=yとすると、次の2つの問題が起こるようです。<注意してください>
(1)向上した性能は、また3から4ヶ月以内にまた悪化してしまうおそれがある。
(2)そのため、また、エクスポート/再構築/インポートのプロセスを行わなければならない。
Oracleは、Oracle社の商標または登録商標です。
他の本文中の商品名は、それぞれ各社の商標または登録商標です。