Database OracleDB インフラ

[OracleDB] 表領域作成SQL「create tablespace」文とポイントを紹介

投稿日:2018年5月30日 更新日:

こんにちは!シミダイ(@shimidai2100)です。

Oracle Databaseの表領域作成SQLと作成時のポイントを紹介します。

単純な作成SQLは各種メディアやブログで紹介されていますが、この記事では表領域を操作する時の重要なポイントも合わせて紹介します。

何も考えなくて表領域は作成できますがこの記事を読んで最適な表領域を作成してください。

この記事の内容

  • 表領域の作成SQLの基本構文を紹介
  • 表領域のエクステント管理・セグメント管理の推奨値は?
  • その他表領域作成時に指定するパラメータは?

表領域の作成SQL:create tablespace

まずは表領域の作成のSQLを紹介したいと思います。

create tablespace文は、表領域を作成するコマンドになります。

表領域作成後に変更ができないパラメータが多く存在するため作成SQLを間違えないようにしましょう。

下がサンプルSQLになります。

表領域作成時には接尾語に番号を振ることをオススメします。これはデータファイルを追加する時にファイル番号を振って管理しやすくするためです。

エクステント管理方式とエクステントサイズを指定:extent management

特別な理由がない限り、「ローカル管理方式のUNIFORM ALLOCATE」を指定します。

エクステント管理方式は2つ選択することができますが、スタンダードの「ローカル管理方式」を指定しましょう。

ディクショナリ管理方式」も指定することができますが古い管理方式であるため特に選択する必要がありません。

エクステントサイズですが、「UNIFORM ALLOCATE」で均一に指定することをオススメします。

AUTO ALLOCATE 」で自動サイズ指定もできますが、エクステントが断片化してしまいパフォーマンスが低下化する原因となります。

下がサンプルSQLになります。

セグメント領域管理方式を指定:segment space management

セグメント領域の管理方式も表領域作成時に指定します。

セグメント領域の管理方式は必ず「AUTO」を設定しましょう。

MANUAL」も指定できますが、セグメント内の空きリストを使用してセグメントを管理するため非常に非効率になります。

下がサンプルSQLになります。

データファイルの自動拡張:autoextend on next XXX maxsize XXX

データファイルの自動拡張を指定することでファイルサイズが急に大きくなった時でもエラーを回避できます。

拡張させるサイズは、小さすぎると何度もデータファイルが拡張されますし、サイズが大きすぎると拡張時に待機が発生します。

なので予め余裕値を十分に持ってデータファイルを作成しておくことをオススメします。

下がサンプルSQLになります。

BIGFILEのデータファイルを指定:bigfile

昨今のデータの大容量化に伴い、従来のSMALLFILE(最大32GB)よりも大きいBIGFILEを指定できるようになりました。

BIGFILEはブロックサイズが8KBの時は128TBまでデータファイルを使用することができます。

なお何も指定しないとデフォルトでSMALLFILEが作成されます。

下がサンプルSQLになります。

 

本記事のまとめ

  • create tablespace文で表領域を作成する
  • エクステント管理方式は「ローカル管理方式でUNIFORMでサイズ均一化」させることがオススメ
  • セグメント領域の管理方式は「AUTO」と設定すること

参考:しばちょう先生の試して納得!DBAへの道 第7回 表領域の管理方法を理解

スポンサードリンク

関連記事

-Database, OracleDB, インフラ

Translate »

Copyright© shimidai2100 , 2018 All Rights Reserved.