在SQL Server 2008 R2下,使用大小约为1.5太字节的数据库:
我们正在测试对数据库中的表进行分区。数据库A未分区,B分区。
查询是通过执行SQL运行的,查询以字符串形式传递。
A中的查询在几秒钟内运行。 B中的查询运行超过一分钟。
将RECOMPILE选项添加到查询中,查询在B中与A中的相同时间运行。 删除RECOMPILE。时间又回到了缓慢的时间。
弹跳B&B的实例。 没有RECOMPILE的查询很慢。 快速查询RECOMPILE。 删除RECOMPILE。再次查询速度慢。
我们已经尝试了清除您在线查看的执行计划缓存的所有常用方法。
似乎会生成两个单独的执行计划。一个用于重新编译,一个用于没有重新编译。两者似乎都持续存在。
有人见过这种行为吗?
我们正试图摆脱缓慢的执行计划,以便查询始终采用快速计划,因为SQL始终是相同的。
提前致谢。