们的推测
?
EXEC dbo.Usp_Recompile_TEST 1100;?
?
EXEC dbo.Usp_Recompile_TEST 1101;?
?
如果我们继续使用该存储过程,那么当参数为什么值时才会触发统计信息更新呢? 1101 +(500+0.2*1101)=1821.2,也就是说必须是1821才会触发统计信息更新,下面SQL Server Profile的截图也验证了我们的推测。
?
EXEC dbo.Usp_Recompile_TEST 1300;?
?
EXEC dbo.Usp_Recompile_TEST 1320;?
?
EXEC dbo.Usp_Recompile_TEST 1321;?
?
EXEC dbo.Usp_Recompile_TEST 1820;?
?
EXEC dbo.Usp_Recompile_TEST 1821;
?
所以综上述实验验证,SQL SERVER 临时表导致存储过程重编译(recompile)的那些阀值确实是正确的,也是没有问题的。当然如有疏漏或不对的地方,敬请指出。