-2

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

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

也许最好将数据导入临时表并在每 X 次插入时将其插入主表?

4

1 回答 1

0

当您需要进行导入时,我不建议您删除和添加索引。

你评论说

源是由应用程序进行的计算,该应用程序将每个结果插入单独的查询中

这意味着您无法绕过单独的插入语句。所以下一个要考虑的解决方案是多线程您的应用程序。

让数据库通过索引来处理数据的排序,这将是您的应用程序和数据库之间的 IO 延迟导致延迟。

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

替代解决方案

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

于 2013-10-02T15:03:41.703 回答