我有一个查询,如果它以插入到空的临时表中的方式运行,则运行大约需要1.5分钟,但即使在20分钟后也无法完成数据的选择。为什么选择要比插入花费更长的时间?SQL Server会基于此制定不同的计划吗?
两者的估计执行计划相同,实际执行计划与估计执行计划不同。
更新:看起来INSERT版本的查询正在使用并行性,而select版本不是。我的问题仍然存在为什么会这样?
一旦单个查询计划达到一定的复杂性,我通常会比一个真正大的讨厌的查询更好地将一组较小的查询排序在一起。这使查询优化器能够评估较小的请求。
高度跨国数据库中的锁定持续时间也可能是一个重要的促成因素。
这听起来像是你们在做一些类似的事情。SQL中有几个运算符会阻止并行性。