OpenKIT

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社の商標または登録商標です。
他の本文中の商品名は、それぞれ各社の商標または登録商標です。