所以我有一个在应用程序中很慢,但在 SSMS 中很快,就像在Sommarskog 的查询计划之谜文章中一样。
查询是具有许多可能变化的参数的搜索。奇怪的是,当我重新索引时,它会在 2 秒内执行。然后我调用 dbcc freeproccache,无论我再次执行多少次存储过程,它都需要 40 秒。如果我再次重新索引,性能就会恢复。如果我释放 proc cachec,它会回到 40 秒。
如何在重新索引后立即执行以保留在缓存中并可供应用程序使用的良好执行计划?
所以我有一个在应用程序中很慢,但在 SSMS 中很快,就像在Sommarskog 的查询计划之谜文章中一样。
查询是具有许多可能变化的参数的搜索。奇怪的是,当我重新索引时,它会在 2 秒内执行。然后我调用 dbcc freeproccache,无论我再次执行多少次存储过程,它都需要 40 秒。如果我再次重新索引,性能就会恢复。如果我释放 proc cachec,它会回到 40 秒。
如何在重新索引后立即执行以保留在缓存中并可供应用程序使用的良好执行计划?