大容量数据库服务器

来源:互联网 发布:python 列表推导式循环 编辑:程序博客网 时间:2024/06/02 16:30

高可用性:

如果日志传送的主服务器和辅助服务器可以是同一台计算机,但对于这种情况,SQL Server 故障转移群集可带来更好的结果。

日志:

只有在大容量日志恢复模式或简单恢复模式下,才可以按最小方式记录大容量导入操作。对于完整恢复模式下的数据库,大容量导入执行的所有行插入操作都会完整地记录在事务日志中。如果使用完整恢复模式,大型数据导入会导致填充事务日志的速度很快。相反,按最小方式记录日志可以降低大容量导入操作填充日志空间的几率。另外,按最小方式记录日志的效率也比按完整方式记录日志高。按最小方式记录日志要求数据库使用大容量日志恢复模式(如果数据库一般使用完整恢复)或简单恢复模式。

优化大容量导入性能:

若要加快大容量导入数据的速度,SQL Server 提供了下列方法:

  • 使用最小日志记录

对于完整恢复模式下的数据库,大容量导入期间执行的所有行插入操作被完整地记录到事务日志中。如果数据导入量较大,会导致迅速填满事务日志。最小日志比完整日志记录更加有效,它降低了大容量导入操作填满日志空间的可能性。有关简单恢复模式或大容量日志恢复模式下其他最小日志记录操作的信息,请参阅按最小方式记录操作。

注意: 
仅当经过优化的大容量日志记录适用时,才会按最小方式记录插入的行,否则会将插入的行完整记录到事务日志中。有关何时记录大容量导入操作以及如何执行最小日志记录大容量导入操作的信息,请参阅在大容量导入中按最小方式记录日志的前提条件。 

  • 将数据从多个客户端并行导入到单个表

SQL Server 允许将数据从多个客户端并行大容量导入到单个表。三个大容量导入机制都支持并行导入数据。这可以提高数据导入操作的性能。

有关详细信息,请参阅使用表级锁定并行导入数据。


  • 使用批处理

有关导入数据时使用批处理的信息,以及有关用于管理批处理的命令限定符的信息,请参阅管理大容量导入的批处理。


注意: 
OPENROWSET 子句的 BULK 选项不支持批大小控制。
 


  • 禁用触发器

与以前的版本不同的是,大容量导入优化现在在启用触发器的情况下是可用的。尽管优化大容量导入操作并不要求禁用触发器,但禁用触发器可能会提高性能,因为这样避免了触发器的开销。


重要事项: 
如果启用了触发器,则可能需要增加 tempdb 的大小才能使用触发器大容量导入一大批数据记录。这是因为 SQL Server 2005 对触发器使用行版本控制并将行版本存储在 tempdb 的版本存储区中;有关详细信息,请参阅行版本控制资源的使用情况。
 


有关执行触发器对大容量操作的影响以及如何启用或禁用触发器的信息,请参阅导入大容量数据时控制触发器执行。


  • 禁用约束

有关约束检查对大容量导入操作的影响以及如何启用或禁用表的 CHECK 约束的信息,请参阅通过大容量导入操作控制约束检查。


  • 对数据文件中的数据排序

默认情况下,大容量导入操作假定数据文件未排序。bcp 实用工具和 BULK INSERT 语句使您可以在大容量导入操作期间指定数据文件中数据的排序方式。根据需要,可以将数据文件中的数据按表中相同的顺序进行排序。但是,如果为数据文件和表指定相同的顺序,则可以提高大容量导入操作的性能。

有关详细信息,请参阅大容量导入数据时控制排序顺序。


注意: 
INSERT ... SELECT * FROM OPENROWSET(BULK...) 语句不支持排序顺序控制。
 


  • 控制锁定行为

有关如何指定大容量导入操作期间的锁定行为的信息,请参阅控制大容量导入的锁定行为。


  • 导入本机格式数据

有关详细信息,请参阅使用本机格式导入或导出数据和使用 Unicode 本机格式导入或导出数据。

 

 

原创粉丝点击