Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL插入非常慢_Sql_Sql Server - Fatal编程技术网

SQL插入非常慢

SQL插入非常慢,sql,sql-server,Sql,Sql Server,每5秒钟我想在表中插入大约10k行。表未格式化,并且没有主键或任何索引。我注意到insert的性能非常慢,在20秒内插入10k行,这对我来说是不可接受的 据我所知,索引只能提高搜索性能,而不能提高插入性能。这是真的吗?您对如何提高绩效有何建议 您是对的,索引对提高插入性能没有任何作用(如果有任何影响,可能会因为额外的开销而影响插入性能) 如果插入速度较慢,则可能是由于外部因素(如运行SQL Server实例的硬件的IO性能)造成的,也可能是由于其他查询导致的数据库或表级别的争用。您需要运行性能分

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


据我所知,索引只能提高搜索性能,而不能提高插入性能。这是真的吗?您对如何提高绩效有何建议

您是对的,索引对提高插入性能没有任何作用(如果有任何影响,可能会因为额外的开销而影响插入性能)

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

如果您按顺序执行插入,您可能需要研究执行一个具有更好性能特征的插入


最后还有一些值得思考的问题,如果你每5秒做一次10K的插入,你可能需要考虑一个NoSQL数据库来进行大容量存储,因为它们对于这种类型的应用程序来说有更好的性能特性,其中有大量的和频繁的写入。除了Miky的建议之外,

< P>您还可以通过优化数据库结构来提高性能,例如减少varchar字段的长度,使用枚举代替文本等等。它还与引用完整性有关,首先,我认为,无论如何都应该规范化数据库。然后您可以继续优化查询。

该表是否包含任何外键约束?还只是为了验证它是否有任何插入触发器?这里已经回答了很多次,您需要的是SqlBulkCopy API。请参见此处:。这不太可能与索引有任何关系。