Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (A ~ D)

 

ALTER DBSPACE 文

この文は、DB 領域またはトランザクション・ログ用に領域を割り付ける場合、または DB 領域ファイルの名前変更時や移動時に使用します。

構文
ALTER DBSPACE { dbspace-name | TRANSLOG | TEMPORARY }
 { ADD number [ add-unit ]
   | RENAME filename }
add-unit : 
PAGES 
| KB 
| MB 
| GB 
| TB
パラメータ
  • TRANSLOG 句   この特別な DB 領域名 TRANSLOG を指定して、トランザクション・ログにディスク領域を事前に割り付けます。事前に割り付けておくと、トランザクション・ログが急速に大きくなることが予測される場合に、パフォーマンスを改善できます。たとえば、ビットマップのような多量のバイナリ・ラージ・オブジェクト (BLOB) を処理する場合、この機能を使用できます。

  • TEMPORARY 句   特別な DB 領域名 TEMPORARY を指定して、テンポラリ DB 領域にスペースを追加します。テンポラリ DB 領域にスペースが追加されるとすぐに、追加のスペースは対応するテンポラリ・ファイルで実体化されます。データベースのテンポラリ DB 領域に領域を事前に割り付けると、大きなワーク・テーブルを使用する複雑なクエリを実行する場合、パフォーマンスが向上します。

  • ADD 句   ALTER DBSPACE に ADD 句を指定して、DB 領域にディスク領域を事前に割り付けます。ページ、キロバイト (KB)、メガバイト (MB)、ギガバイト (GB)、またはテラバイト (TB) 単位でサイズを指定して、対応するデータベース・ファイルを拡張します。単位を指定しない場合、デフォルトは PAGES です。データベースのページ・サイズはデータベースの作成時に決定されます。領域が事前に割り付けられていない場合、データベース・ファイルは、領域が必要になったとき、ページ・サイズが 2 KB、4 KB、8 KB の場合は一度に約 256 KB 拡張され、その他のページ・サイズの場合は約 32 ページ拡張されます。領域を事前に割り付けると、多量のデータをロードする場合のパフォーマンスを改善でき、ファイル・システム内でデータベース・ファイルの断片化を防ぐことができます。

    この句を使用して、事前定義の DB 領域 (system、temporary、temp、translog、translogmirror) のいずれかに領域を追加できます。事前定義の DB 領域を参照してください。

  • RENAME 句   メイン・ファイル以外のデータベース・ファイルを別のファイル名に変更したり、別のディレクトリまたはデバイスに移動したりする場合は、RENAME 句を指定した ALTER DBSPACE 文を使用すると、SQL Anywhere にデータベース起動時に確実に新しいファイルを検索させることができます。filename パラメータには、文字列リテラルまたは変数を指定できます。

    名前の変更は、次のように有効になります。

    • 文を実行する前に DB 領域がすでに開いている場合 (つまり、実際のファイルの名前はまだ変更していない場合)、継続してアクセスすることはできますが、カタログに格納されている名前は更新されます。データベースが停止した後、ファイルの名前を変更して、RENAME 句で指定したのと同じ名前に変更する必要があります。そうしないと、カタログにある DB 領域の名前とファイル名が一致せず、データベースを次に起動するときに、データベース・サーバが DB 領域を開くことができなくなります。

    • 文を実行したときに DB 領域が開いていない場合、データベース・サーバは、カタログを更新し、その後で DB 領域を開くことを試行します。DB 領域を開くことができたら、アクセス可能になっています。DB 領域を開くことができない場合でも、エラーは返されません。

      DB 領域が開いているかどうかを確認するには、次に示す文を実行します。結果が NULL である場合は、DB 領域は開いていません。

      SELECT DB_EXTENDED_PROPERTY('FileSize','dbspace-name');

      メイン DB 領域の system に RENAME 句を指定した ALTER DBSPACE を使用しても効果はありません。

備考

それぞれのデータベースは 1 つまたは複数のファイルの中に保持されます。DB 領域は、各データベース・ファイルに関連付けられた論理名を持つ追加ファイルであり、メイン・データベース・ファイル単独では保持できないデータを格納するために使用されます。ALTER DBSPACE は、メイン・データベース (ルート・ファイルとも呼ばれます) または追加の DB 領域を修正します。データベースの DB 領域名は、ISYSFILE システム・テーブルに保持されます。メイン・データベース・ファイルの DB 領域名は system です。

マルチファイル・データベースを起動すると、起動ラインまたは ODBC データ・ソースの記述が、SQL Anywhere にメイン・データベース・ファイルの場所を知らせます。メイン・データベース・ファイルは、システム・テーブルを保持しており、SQL Anywhere は、このシステム・テーブルを調べて他の DB 領域のロケーションを検索します。次に、SQL Anywhere は、検索した各 DB 領域を開きます。default_dbspace オプションを設定して新規テーブルを作成する DB 領域を指定できます。

パーミッション

DBA 権限が必要です。また、このデータベースに他のユーザがいないことが必要です。

関連する動作

オートコミット。

参照
標準と互換性
  • SQL/2003   ベンダ拡張。

次の例は、system の DB 領域サイズを 200 ページ増やします。

ALTER DBSPACE system
ADD 200;

次の例は、system の DB 領域サイズを 400 MB 増やします。

ALTER DBSPACE system
ADD 400 MB;

次の例は、system_2 の DB 領域に関連するファイル名を変更します。

ALTER DBSPACE system_2
RENAME 'e:\db\dbspace2.db';