表領域とは何か?【Oracle Database】
Sal
sql データベースのオブジェクトである表と索引など「セグメント」という論理構造が格納される先。表領域は表や索引をまとめる入れ物と考えることができる。表領域に対して一つ以上のデータファイルが作成される。

表領域とは何か?【Oracle Database】

  1. 表領域とは
  2. 記憶域のコンポーネント
  3. 事前構成済みのデータベースの表領域
  4. 事前構成済みのデータベースの表領域一覧
  5. SQL文を使用した表領域の新規作成
  6. OMFを使用した表領域の新規作成
  7. 表領域の拡張
  8. データファイルのサイズを手動で拡張する
  9. 自動拡張に設定する
  10. その他の変更
  11. 表領域の削除
  12. オンラインでのセグメントの縮小
  13. セグメントアドバイザ
  14. セグメントの縮小
  15. セグメントアドバイザとは
  16. セグメントアドバイザによるセグメントの縮小
## 表領域とは

答え

データベースのオブジェクトである表と索引など

「セグメント」という論理構造が格納される先

表領域は表や索引をまとめる入れ物と考えることができる

表領域に対して一つ以上のデータファイルが作成される。

なお UNDOセグメントや一時セグメントといった、Oracleデータベースシステムが「内部的に使用するセグメント」には 専用の表領域が存在する
## 記憶域のコンポーネント
- セグメント

答え

一つのオブジェクトには一つのセグメントが入る

セグメントにはいろんなタイプがある。

表であれば「表セグメント」

索引は「索引セグメント」

一つのセグメントは、同じ表領域ないであれば複数のデータファイルにまたがることも可能

- エクステンと

答え

一回の割り当てで取得される特定数の連結したデータブロック

エクステンとのサイズは表領域の作成時に指定できる。

一つのエクステンとはデータファイルをまたぐことはできない

- データブロック

答え

IOの最小単位。

データブロックにはデータが格納される。

オブジェクトが表であれば、一つのデータブロックに複数の行を格納できる。

データブロックのサイズは、データベースの作成時に指定できるが、事前構成済みのデータベースを選択した場合は「8l」で固定され、変更できない

行データの格納によってエクステンとが満杯になると、 自動的に次のエクステントが取得され、セグメントは拡張される。
## 事前構成済みのデータベースの表領域
インストール時に作成した事前構成済みデータベースには作成時点で次の表領域が自動的に作成される。
## 事前構成済みのデータベースの表領域一覧
- SYSTEM

答え

データベース作成時に自動的に作られる。

データベースの管理情報を角の薄rために使用する。

「データディクショナリ」はこの表裏いょういきに格納する

SYSTEM表領域ないのオブジェクトは

答え

SYSスキーマに存在するため、SYSユーザまたは他の管理者ユーザーしか開くっすできない

- SYSAUX

答え

SYSTEM表領域の補助領域

データベース作成時に自動的に作られる。

SYSTEM表領域の負担が減ったため、メンテナンスの負担も軽減されている

- TEMP

答え

一時表領域の

デフォルトの一時表領域である。

ソート処理のデータといった、セッション中にのみ存在する、SQLの処理中に生成された一時的なデータが格納される

- UNDOTBS1

答え

OracleデータベースシステムがUNDOデータの保存に使用する領域。

データベースの作成時に作られる。

全てのデータベースに必要

- USERS

答え

ユーザーが作成するオブジェクトを格納するための表領域

- EXAMPLE

答え

DBCAのなかで「サンプルスキーマを作成する」をチェックすると作られる。

サンプルデータが格納される

## SQL文を使用した表領域の新規作成
CREATE TABLESPACE文を使用する。

答え

CREATE TABLESPACE
  表領域
DATAFILE 'データファイル名'
SIZE サイズ
[EXTENT MANAGEMENT LOCAL { AUTOALLOCATE | UNIFORM SIZE サイズ}]
[SEGMENT SPACE MANAGEMENT {AUTO | MANUAL}];
- WXTENT MANAGEMENT LOCAL

答え

ローカル管理表領域の指定

その表領域ないの全ての「エクステンとの割り当て情報」が ヘッダーに格納されているビットマップを使用して追跡されるため、 エクステントの割り当て及び解除のパフォーマンスが工場する

デフォルトはAUTOALLOCATEである。

答え

これはデータベースが自動的にエクステンとの割り当てを管理する。 最小で64kb。

もう一つのオプションがUNIFORM SIZE

答え

エクステンがサイズに指定した部分で均一に管理される。 指定しない場合は1MB

- SEGMENT SPACE MANAGEMENT セグメント領域の管理方法の指定。 自動と手動のに種類がある。 自動セグメント領域管理では

答え

セグメント内の空き領域を管理するために「ビットマップ」を使用する。

 

AUTO

こっちがデフォルト

手動セグメント領域管理では

答え

セグメント内の空き領域を管理するために「空きリスト」を使用する。

MANUAL

## OMFを使用した表領域の新規作成
Oracle Managed Filesの昨日を使用することで OSファイルをDBAが管理する必要がなくなる。 そのためには DB_CREATE_FILE_DEST初期化パラメータを指定する必要がある。 データベースはそのディレクトリにファイルを自動的に作成しm管理する。 ファイル名はデータベースが自動設定する。

答え

ALTER SYSTEM SET DB_CREATE_FILE_DEST = 'ディレクトリ名'

上記を指定した上で次のコマンドを実行する。

答え

CREATE TABLESPACE 表領域名;

デフォルトのサイズは「100MB」で、無制限に自動拡張可能。
## 表領域の拡張
ALTER TABLESPACE文を使用する。

答え

ALTER TABLESPACE 表領域名 ADD DATAFILE 'データファイル名' SIZE サイズ;

## データファイルのサイズを手動で拡張する
ALTER DATABESE文を使用する。

答え

ALTER DATABESE DATAFILE 'データファイル名' RESIZE サイズ;

## 自動拡張に設定する
ALTER DATABESE文を使用する。

答え

ALTER DATABESE DATAFILE 'データファイル名' AUTOEXTEND ON NEXT サイズ MAXSIZE {サイズ | UNLIMITED};

データファイルに割り当てられるディスク領域を制限しない場合は、UNLIMITEDを指定する。
## その他の変更
- 表領域使用率のアラートのしきい値を変更する - 表領域のステータスをオフラインに変更する
## 表領域の削除
DROP TABLESMACE文を使用する。 空でないセグメントも含めて削除するには

答え

DROP TABLESPACE 表領域名 INCLUDING CONTENTS;
    
同時にデータファイルを削除する場合は

答え

DROP TABLESPACE 表領域名 INCLUDING CONTENTS AND DATAFILES;
    
表領域を削除する場合でも対象が「アクティブセグメント」である場合は、 表領域を削除することはできない。 その場合は表領域をオフラインにすることが推奨される。

答え

DROP TABLESPACE 表領域名 OFFILNE;
    
## オンラインでのセグメントの縮小
DML操作を行うと時間の経過とともに 「使用しているデータブロック」「空き領域のデータブロック」が混在し、 データが断片か指定く。 これはパフォーマンスに影響が出る恐れもあるため、「オンラインでのセグメントの縮小」を行い、断片かしているデータを統合する必要がある。
## セグメントアドバイザ
DML操作を行うごとにエクステント内部にもデータのフラグメントが起こる。 これにより部分的な未使用領域が発生することもある。 これを防ぐためにも

答え

オンラインでのセグメントの縮小

が必要となる。
## セグメントの縮小
ここのプロセスでは「最高水位票HWM(どのデータブロックまでで0田を入れたことがあるかを示す値)」の下の断片化されたデータを統合する。 そうするとHWMが移動し、新しい空き容量が出る。 この「セグメントの縮小」を行うには、セグメントアドバイザを使用すると便利。
## セグメントアドバイザとは
オブジェクトのデータを分析して、再利用できる未使用領域が存在するデータベースオブジェクトを特定することができる機能。 この機能は

答え

自動セグメント管理(ASSM)を備えたローカル管理票領域のセグメントに対して使用可能

## セグメントアドバイザによるセグメントの縮小
oracle databaseではセグメントアドバイザが定期的に実行される。 これを

答え

自動セグメントアドバイザ

必要な場合は手動でも可能。 分析結果については「Enterprise manager Cloud Control」またはPL/SQLパッケージプロシージャで確認できる。 分析結果で

答え

セグメントアドバイザ推奨と表示されると、手動で縮小操作を実行して、セグメントを縮小できる。

title:表領域とは何か?【Oracle Database】 description:データベースのオブジェクトである表と索引など「セグメント」という論理構造が格納される先。表領域は表や索引をまとめる入れ物と考えることができる。表領域に対して一つ以上のデータファイルが作成される。 category_script:page_name.startswith("6")