SQL插入非常慢[关闭]

Posted

技术标签:

【中文标题】SQL插入非常慢[关闭]【英文标题】:SQL insert very slow [closed] 【发布时间】:2014-03-03 17:51:32 【问题描述】:

我希望每 5 秒在表中插入大约 10k 行。表未规范化,没有主键或任何索引。我注意到插入性能非常慢 - 10k 行在 20 秒内,这对我来说是不可接受的。

据我了解,索引只能提高搜索性能,但不能提高插入性能。这是真的吗?您对如何提高性能有任何建议吗?

【问题讨论】:

该表是否包含任何外键约束? 也只是为了验证它是否有任何插入触发器? 这里已经回答了很多次了,你要的是SqlBulkCopy API。见这里:***.com/questions/8981451/…。这不太可能与索引有关。 【参考方案1】:

除了 Miky 的建议之外,您还可以通过例如减少 varchar 字段的长度、使用枚举而不是文本等来提高优化数据库结构的性能。它也与参照完整性有关,首先我认为,无论如何你都应该规范化数据库。然后你可以继续优化查询。

【讨论】:

【参考方案2】:

你说得对,索引不会提高插入性能(如果有任何事情可能会因为额外的开销而伤害它)。

如果插入速度很慢,可能是由于外部因素,例如运行 SQL Server 实例的硬件的 IO 性能,也可能是由于其他查询导致的数据库或表级别的争用。您需要运行性能分析器以确定原因。

如果您按顺序执行插入,您可能需要考虑执行bulk insert operation,它会具有更好的性能特征。

最后,值得深思的是,如果您每 5 秒执行 10K 次插入,您可能需要考虑使用 NoSQL 数据库进行大容量存储,因为对于此类应用程序而言,它们往往具有更好的性能特征频繁写入。

【讨论】:

以上是关于SQL插入非常慢[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

RcppEigen svd 非常慢[关闭]

亚马逊AWS非常慢,mysql和apache吃很多内存[关闭]

在 Azure VM 中复制文件非常慢 [关闭]

Sql Azure:WITH 语句查询的性能非常慢

SQL SERVER 2008 R2 插入数据非常慢

Azure DB 上 C# 中的 SQL 插入语句 - 运行速度非常慢