Sql server 2005 将排序数据插入到具有聚集索引的表中

Sql server 2005 将排序数据插入到具有聚集索引的表中,sql-server-2005,Sql Server 2005,一个应用程序正在将已排序的数据逐行插入表中,我想提高插入的性能 我应该在运行应用程序之前(开始时为空)还是在运行结束时创建聚集索引 也许最好将数据导入到一个临时表中,并每隔X次插入将其插入到主表中 我不建议在需要导入时删除和添加索引 你评论说 源是由应用程序进行的计算,该应用程序插入 生成一个单独的查询 这意味着您无法绕过单个insert语句。因此,下一个要考虑的解决方案是多线程应用程序。p> 让数据库通过索引处理数据排序,应用程序和数据库之间的IO延迟将导致延迟 如果您可以在另一个线程等待in

一个应用程序正在将已排序的数据逐行插入表中,我想提高插入的性能

我应该在运行应用程序之前(开始时为空)还是在运行结束时创建聚集索引


也许最好将数据导入到一个临时表中,并每隔X次插入将其插入到主表中

我不建议在需要导入时删除和添加索引

你评论说


源是由应用程序进行的计算,该应用程序插入 生成一个单独的查询

这意味着您无法绕过单个insert语句。因此,下一个要考虑的解决方案是多线程应用程序。p> 让数据库通过索引处理数据排序,应用程序和数据库之间的IO延迟将导致延迟

如果您可以在另一个线程等待
insert
完成时计算下一个结果,那么您将节省大量时间

替代解决方案


您可以让应用程序将其结果写入一个文件(快速),然后使用SSIS或大容量插入将结果大容量导入数据库。

请注意,聚集索引不会说明您稍后从表中获取行的顺序。您使用的是哪个版本的SQL Server(更新问题标记)?数据的来源是什么?Excel,CSV?注意使用SQL Server的导入功能,而不是编写自己的应用程序。源代码是由应用程序进行的计算,该应用程序将每个结果插入到单独的查询中。我将尝试第二种方法。谢谢