【发布时间】:2010-10-06 00:47:12
【问题描述】:
好吧,假设我有 100 行要插入,每行大约有 150 列(我知道这听起来像很多列,但我需要将这些数据存储在一个表中)。插入将随机发生(即,每当一组用户决定上传包含数据的文件时),大约每月 20 次。然而,数据库将在持续负载下处理大型企业应用程序的其他功能。这些列是 varchars、ints 以及各种其他类型。
将这些插入包装在事务中(而不是一次运行一个)的性能增益是巨大的、最小的还是介于两者之间?
为什么?
编辑: 这是针对 Sql Server 2005 的,但如果有不同的说法,我会对 2000/2008 感兴趣。另外我应该提一下,我理解事务主要是为了数据一致性,但我想关注性能影响。
【问题讨论】:
-
在 2000/2008 年之间,没有什么值得注意的差异。性能提升和事务一致性几乎总是相互矛盾的。架构设计、索引架构和存储方法/最佳实践将决定您的性能提升。处理数据时的第一条经验法则是,使您的数据请求和操作尽可能小和短 (OLTP)。然后进行相应的调整。规则是,不要在事务中放置大量记录活动,事务是为了一致性而不是为了“回滚”大批量信息。
标签: sql sql-server database performance transactions