SQL Server 中检查器工作空间的 DBTUNE 和磁盘配置
DBTUNE 存储参数用于控制如何在 SQL Server 中的企业级地理数据库中使用 ArcSDE 技术创建对象。您可以决定如何向表或索引分配空间、在哪个文件组中创建表或索引,以及其他特定于 SQL Server 的存储属性。它们还可用于为空间列的几何指定其中一种可用的存储格式。
DBTUNE 存储参数存储于 DBTUNE 表中。DBTUNE 表以及所有其他元数据表是在执行“创建企业级地理数据库”或“启用企业级地理数据库”工具时在数据库中创建的。
如果大量数据库连接正在访问位于磁盘中同一位置的相同文件,则数据库性能会变慢,因为连接之间正在互相竞争相同的资源。为减缓这种竞争,可以将数据库文件存储到磁盘中的不同位置。
例如,DBTUNE 经修改可以在磁盘各个位置的单独数据文件中存储检查器工作空间。这会使磁盘争用情况减少并提高数据库输入/输出。
标准 GIS 存储建议倾向于将索引和日志文件与矢量和表格业务表分开保存。出于性能方面的考虑,最好分开放置业务、要素和空间索引表,并根据文件组数据文件的使用模式对其进行放置。对于多版本化且非常活跃的编辑地理数据库,VERSIONS 文件组的数据库文件可能是分开的并分布于各个可用磁盘中,从而避免出现输入/输出争用情况。
磁盘配置
大型生产企业级地理数据库系统应采用硬件带区解决方案。最佳的磁盘和数据组织策略涉及到在多个磁盘中分散存储数据。
通过将数据分散到多个磁盘中,便可使用更多心轴对这些数据进行活跃搜索。这样可以增加磁盘读取时间并减缓磁盘争用情况。但磁盘过多会降低查询速度。实现条带化的方法主要有两种:文件组和独立磁盘 (RAID) 的冗余阵列。您也可以通过在磁盘阵列中创建文件组来结合使用这两种方法。您可以采用数据分离策略;如果将表和索引分开或者将某些类型的表与其他表分开,则可提高性能并减轻管理负担。
建议的 SQL Server 最佳配置如下:
- DISK 0 — SQL Server/应用程序软件
- DISK 1 — 主、模型、msdb
- DISK 2 — tempdb
- DISK 3 — 日志文件
- DISK 4 — 要素数据表
- DISK 5 — 空间索引数据表
- DISK 6 — 属性数据/业务表
- DISK 7 — SQL Server 索引
减少磁盘输入/输出的争用情况
通常情况下,应估计数据库为应对未来的增长而需要包含的最大数据量,然后在此最大数据量的基础上创建尽可能大的数据库文件。通过创建大型文件,可以避免产生文件碎片并获得更好的数据库性能。许多情况下,可以允许数据文件自动增长;只需确保对自动增长加以限制,方法是指定最大增长大小从而保留一些可用的硬盘空间。在不同磁盘上放置不同的文件组还有助于在文件增长时消除其中的物理碎片。
要配置数据和日志文件以获得最佳性能,请遵守以下最佳做法:
- 为避免出现磁盘争用情况,请勿将数据文件放置在操作系统文件所在的同一驱动器上。
- 将事务日志文件和数据文件放置在不同的驱动器中。这样便可减缓数据文件和事务日志文件之间的磁盘争用情况,从而带来最佳性能。
- 如有可能,将 tempdb 数据库放置在单独的驱动器上 — 最好使用 RAID 10 或 RAID 5 系统。在密集使用 tempdb 数据库的环境中,可通过将 tempdb 放置在单独的驱动器中来获得更好的性能,从而允许 SQL Server 平行执行 tempdb 操作和数据库操作。
- 最适合于数据库文件的 RAID 配置取决于多个因素,包括性能和可恢复性需求。建议对事务日志、数据和索引文件使用 RAID 10 作为 RAID 系统。由于事务日志文件通常小于数据和索引文件,所以预算有限的人可以考虑将事务日志文件保存在数组容量较小的 RAID 10 系统中,将数据和索引文件存储在数组容量较大的 RAID 5 系统中。
有关 RAID 的详细信息,请参阅 RAID 级别和 SQL Server(网址为 http://technet.microsoft.com/en-us/library/ms190764(SQL.105).aspx)和 Microsoft Windows 2000 Server Administrator's Companion (Microsoft Press) 的第 7 章 Planning Fault Tolerance and Avoidance,作者 Charlie Russel 和 Sharon Crawford(网址为 http://technet.microsoft.com/pt-br/library/bb742464(en-us).aspx)。
- 对大型表使用分区。借助分区功能,可通过分区在多个文件组之间拆分表;您可以将表或索引的子集放置到指定的文件组中。通过该功能可将特定表或索引分隔到各个文件组中,并可有效管理易变表的文件 I/O。借助分区功能可以轻松管理档案例程和数据加载操作。
以下是可减缓磁盘输入/输出争用情况的建议设计:
文件类型 | 数据库活动 | 将文件移动到磁盘的方法 |
---|---|---|
事务日志文件 | 频繁编辑 | 相对低输入/输出 |
事务日志文件 | 很少或不编辑 | 中等输入/输出 |
tempdb | 频繁编辑 | 低输入/输出,但与事务日志文件分开 |
主、模型、msdb | 很少编辑 | 中等输入/输出 |
数据 | 频繁编辑 | 相对低输入/输出 |