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

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 监控和提高数据库性能 » 提高数据库性能 » 性能提高提示

 

将不同的文件放置在不同的设备上

磁盘驱动器的运行速度远远低于现代的处理器或内存。通常,等待磁盘读写页就是导致数据库服务器速度慢的原因。

将不同的物理数据库文件放置在不同的物理设备,这样做可能会提高数据库的性能。例如,当一个磁盘驱动器忙于与高速缓存交换数据库页时,另一个设备可能会正在写入日志文件。

请注意,若要实现这些优点,设备必须是独立的。分区成多个较小的逻辑驱动器的单个磁盘不大可能提供这些优点。

SQL Anywhere 使用四种类型的文件:

  1. 数据库 (.db)

  2. 事务日志 (.log)

  3. 事务日志镜像 (.mlg)

  4. 临时文件 (.tmp)

数据库文件包含数据库的全部内容。一个文件可以包含一个数据库,或者,您可以添加最多 12 个 dbspace,它们是存有相同数据库的某些部分的附加文件。可以为数据库文件和 dbspaces 选择一个位置。

事务日志文件是在出现故障时恢复数据库信息所必需的。为了提供额外的保护,您可以在第三种文件(称作事务日志镜像文件)中维护事务日志的一个副本。SQL Anywhere 会在相同的时间将相同的信息写入这两个文件中的每一个。

提示

将事务日志镜像文件(如果您使用了事务日志镜像文件)放置在物理上独立的驱动器上将有助于保护这些文件以防发生磁盘故障,而 SQL Anywhere 的运行速度也会更快,因为它可以高效地对日志文件和日志镜像文件执行写入操作。要指定事务日志文件和事务日志镜像文件的位置,请使用事务日志实用程序 (dblog) 或 Sybase Central 中的 [更改日志文件设置向导]。请参见事务日志实用程序 (dblog)更改事务日志的位置

对于排序和形成联合等操作,当 SQL Anywhere 所需的空间大于高速缓存中的可用空间时,将使用临时文件。当数据库服务器需要该空间时,通常会集中使用该空间。数据库的总体性能越来越多地依赖于包含临时文件的设备的速度。

提示

如果临时文件位于快速设备上,并且该设备在物理空间上独立于保存数据库文件的设备,则 SQL Anywhere 通常会运行得更快。这是因为许多必须使用临时文件的操作也需要从数据库中检索大量的信息。通过将信息放置在两个单独的磁盘上,这些操作就可以同时进行。

请谨慎选择临时文件的位置。临时文件的位置可在使用 -dt 服务器选项启动数据库服务器时指定。如果在启动数据库服务器时未指定临时文件的位置,则 SQL Anywhere 会依次检查以下环境变量:

  1. SATMP

  2. TMP

  3. TMPDIR

  4. TEMP

如果未定义任何环境变量,则在 Windows 中,SQL Anywhere 会将其临时文件放在当前目录中,而在 Unix 中,则会放在 /tmp 目录中。

如果您的计算机配备有足够数量的快速设备,则可以将这些文件中的每一个分别放置在单独的设备上,从而获得更高的性能。您甚至可以将数据库分为多个位于单独设备上的 dbspace。在这种情况下,请将单独 dbspace 中的表分组,使常见的连接操作从不同的 dbspace 中读取信息。

当您在系统 dbspace 之外的位置创建所有表或索引时,系统 dbspace 仅用于存储检查点日志和系统表。在您由于性能原因希望将检查点日志放在与其余数据库对象位置不同的单独磁盘上时,这很有用。要在另一个 dbspace 中创建基表,更改所有 CREATE TABLE 语句以使用 IN DBSPACE 子句,从而指定另一个替代 dbspace,或者在创建任何表之前更改 default_dbspace 选项的设置。临时表只能在 TEMPORARY dbspace 中创建。请参见default_dbspace 选项CREATE TABLE 语句

有关基表和临时表的缺省 dbspace 的详细信息,请参见使用附加 dbspace

一种类似的策略是将临时文件和数据库文件放在 RAID 设备或带区集上。虽然这些设备充当逻辑驱动器,但它们会在多个物理驱动器上分配文件并使用多个驱动器头来访问信息,从而显著地提高性能。

您可以在启动数据库服务器时指定 -fc 选项,以在数据库服务器出现文件系统已满时执行回调函数。请参见-fc dbeng12/dbsrv12 服务器选项

 另请参见