Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
一个应用程序将排序的数据逐行插入到表中,我想提高插入的性能。
我应该在运行应用程序之前(开始时为空)还是在运行结束时创建聚集索引?
也许最好将数据导入临时表并在每 X 次插入时将其插入主表?
当您需要进行导入时,我不建议您删除和添加索引。
你评论说
源是由应用程序进行的计算,该应用程序将每个结果插入单独的查询中
这意味着您无法绕过单独的插入语句。所以下一个要考虑的解决方案是多线程您的应用程序。
让数据库通过索引来处理数据的排序,这将是您的应用程序和数据库之间的 IO 延迟导致延迟。
如果您可以在另一个线程等待它insert完成时计算下一个结果,您将节省大量时间。
insert
替代解决方案
您可以让应用程序将其结果写入文件(快速),然后使用 SSIS 或 BULK INSERT 将结果批量导入数据库。