And*_*nea 7 performance sql-server-2008 sql-server optimization insert
我需要一种快速、同步、持续时间最短的插入表的方法。我试过的(“盲”)是:
我使用的测试场景由 100 个连接组成,每个连接都运行一个 INSERT,然后等待 0.1 秒,然后无限期地再次等待。每个“插入器”记录执行时间。
查看执行时间,我有时会在插入时看到 1.5 秒甚至 10 秒(作为例外情况),否则我看到的是典型的 0.2 秒。
进一步的背景:
我应该在哪里寻找对此类流程性能的进一步改进?
很多人在评论中添加了很多优点。
1) 将您的事务日志分离到不同的驱动器上。使用笔记本电脑会很困难。如果您不能这样做,请为自己的笔记本电脑配备一个 SSD,这将使您的生活变得更好。
2) 将您的数据和日志文件预增长到目标数量。如果您希望将 1GB 的数据添加到您的数据库,请使您的数据和日志文件至少为 1.5GB 以启动。数据和日志文件自动增长是性能的杀手,很可能是您看到这些 10 秒性能“窒息”的原因。SQL Management Studio 有一些内置报告(我相信您右键单击 DB,然后选择 Reports -> Disk Usage)其中应该有一个包含所有自动增长事件的表。)
3) 如果您可以在每个客户端的基础上批量插入插入,则使用 SqlBulkCopy 或 BULK INSERT 语句执行此操作。
4) 应该没有理由为什么您的表不应该有聚集主键。SQL Server 应该能够以相当高效的方式处理 IDENTITY 列上的聚集索引。
| 归档时间: |
|
| 查看次数: |
3510 次 |
| 最近记录: |