我需要有一种方法来插入一个表,快速,同步,最短的时间。我尝试过的(“盲”)是:
我使用的测试场景由100个连接组成,每个连接运行一个INSERT,然后等待0.1秒,然后再无限期地等待。每个“插入器”记录执行时间。
看一看执行时间,我有时在插入上看到1.5秒甚至10秒(作为例外情况),否则我看到的是典型的0.2秒。
进一步背景:
发布于 2012-02-26 13:25:05
许多人在评论中增加了很多优点。
1)将事务日志分离到不同的驱动器上。用一台笔记本就很难了。如果你不能做到这一点,给自己买一个SSD笔记本电脑,这应该会使你的生活更好。
2)将数据和日志文件预增长到目标数量。如果您希望将1GB的数据添加到数据库中,请让您的数据和日志文件至少启动1.5GB。数据和日志文件自动增长是性能的杀手,很可能是您看到这10秒的“瓶颈”性能的原因。有一些内置报告(我相信您可以右键单击DB,然后选择reports ->磁盘使用情况),其中应该有一个包含所有自动增长事件的表。
3)如果可以对每个客户端的插入进行批次处理,则使用SqlBulkCopy或BULK语句进行批处理。
4)您的表不应该有集群主键的原因。Server应该能够以相当高的性能处理身份列上的聚集索引。
发布于 2012-02-25 21:49:08
我的建议是从笔记本电脑上下来。把这个放在一个真正的机器上,带有快速驱动器和大量的内存。
https://dba.stackexchange.com/questions/13866
复制相似问题