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 语句

使用此语句可为 dbspace 或事务日志预分配空间,也可以在重命名或移动 dbspace 文件时更新目录。

语法
ALTER DBSPACE { dbspace-name | TRANSLOG | TEMPORARY }
 { ADD number [ add-unit ]
   | RENAME filename }
add-unit : 
PAGES 
| KB 
| MB 
| GB 
| TB
参数
  • TRANSLOG 子句   提供一个专用的 dbspace 名称 TRANSLOG,以便为事务日志预分配磁盘空间。如果估计事务日志增长速度很快,则预分配可以提高性能。例如,当处理许多二进制大对象 (BLOB)(如位图)时,可能需要使用此功能。

  • TEMPORARY 子句   提供专用 dbspace 名称 TEMPORARY,用于为临时 dbspace 增加空间。在为临时 dbspace 添加空间时,所增加的空间将立即体现在相应的临时文件中。如果为数据库的临时 dbspace 预分配空间,则在执行使用大型工作表的复杂查询过程中,性能将得到提高。

  • ADD 子句   带 ADD 子句的 ALTER DBSPACE 可为 dbspace 预分配磁盘空间。它使相应的数据库文件按指定的大小扩展,可以指定的单位包括:页、千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或千吉字节 (TB)。如果未指定单位,则使用缺省的 PAGES。创建数据库后,数据库的页面大小是固定的。如果未预分配空间,则当需要空间时,对于 2 KB、4 KB 和 8 KB 的页面大小,数据库文件一次大约扩展 256 KB;对于其它页面大小将扩展大约 32 个页面。预分配空间可在装载大量数据时提高性能,还可以使数据库文件在文件系统中保持更好的连续性。

    可以使用此子句向任何预定义的 dbspace(Ssystem、temporary、temp、translog 和 translogmirror)添加空间。请参见预定义 dbspace

  • RENAME 子句   如果重命名主文件以外的数据库文件或将其移到不同的目录或设备,可以使用带 RENAME 子句的 ALTER DBSPACE,以确保数据库启动时 SQL Anywhere 能够找到新文件。filename 参数可以是字符串文字或变量。

    名称更改生效,如下所示:

    • 如果 dbspace 在语句执行前(即,尚未重命名实际文件)已打开,它仍是可访问的;但是存储在目录中的名称已更新。数据库停止后,必须使用 RENAME 子句重命名文件,使之与所提供的文件名匹配,否则文件名将不会与目录中的 dbspace 名匹配,而且数据库服务器无法在下次启动数据库时打开 dbspace。

    • 如果在执行语句时未打开 dbspace,数据库服务器将在更新目录后尝试打开它。如果可以打开 dbspace,就可以访问它。如果无法打开 dbspace,则不返回任何错误。

      要确定 dbspace 是否打开,请执行以下语句。如果结果为 NULL,则 dbspace 未打开。

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

      对主 dbspace(即 system)使用带 RENAME 子句的 ALTER DBSPACE 无效。

注释

每个数据库都保存在一个或多个文件中。dbspace 是一个附加文件,它具有与每个数据库文件关联的逻辑名称,用于保存比主数据库文件自己所能容纳的数据更多的数据。ALTER DBSPACE 修改主 dbspace(也称为根文件)或附加 dbspace。数据库的 dbspace 名保存在 ISYSFILE 系统表中。主数据库文件的 dbspace 名为 system。

当启动多文件数据库时,启动行或 ODBC 数据源说明会向 SQL Anywhere 告知主数据库文件的位置。主数据库文件中保存着系统表。SQL Anywhere 在这些系统表中查找其它 dbspace 的位置,然后逐个打开它们。可通过设置 default_dbspace 选项指定在哪个 dbspace 中创建新表。

权限

必须具有 DBA 权限。必须是唯一的数据库连接。

副作用

自动提交。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

下面的示例将 system dbspace 的大小增加 200 页:

ALTER DBSPACE system
ADD 200;

以下示例将 system dbspace 的大小增加了 400 MB:

ALTER DBSPACE system
ADD 400 MB;

以下示例更改与 system_2 dbspace 关联的文件名:

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