SQL 插入非常慢



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

在我的理解中,索引只能提高搜索性能,但不能提高插入。是真的吗?您有什么建议可以提高性能吗?

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

是对的,索引不会对提高插入性能有任何帮助(如果有的话,可能会由于额外的开销而损害它)。

如果插入速度很慢,则可能是由于外部因素(如运行 SQL Server 实例的硬件的 IO 性能)造成的,或者可能是由于其他查询而导致数据库或表级别的争用。需要运行性能探查器才能确定原因。

如果按顺序执行插入,则可能需要考虑执行批量插入操作,该操作将具有更好的性能特征。

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

最新更新