Sql server SQL Server过程缓存

Sql server SQL Server过程缓存,sql-server,sql-server-2005,sql-server-2008,Sql Server,Sql Server 2005,Sql Server 2008,如果在同一台SQL Server上运行多个DBs,它们是否都在争夺过程缓存?我想弄清楚的是,SQL Server是如何确定过程缓存的保留时间的?如果其他数据库正在消耗内存,这会影响同一服务器上给定数据库的过程缓存吗 我发现,在应用程序中的一些初始页面加载上,速度很慢,但一旦查询被cachced,速度显然很快。只是不确定SQL Server将过程缓存保留多长时间,以及其他数据库是否会影响该时间。来自: 只要有足够的内存存储执行计划,执行计划就会保留在过程缓存中。当内存压力存在时,数据库引擎使用基于

如果在同一台SQL Server上运行多个DBs,它们是否都在争夺过程缓存?我想弄清楚的是,SQL Server是如何确定过程缓存的保留时间的?如果其他数据库正在消耗内存,这会影响同一服务器上给定数据库的过程缓存吗

我发现,在应用程序中的一些初始页面加载上,速度很慢,但一旦查询被cachced,速度显然很快。只是不确定SQL Server将过程缓存保留多长时间,以及其他数据库是否会影响该时间。

来自:

只要有足够的内存存储执行计划,执行计划就会保留在过程缓存中。当内存压力存在时,数据库引擎使用基于成本的方法来确定要从过程缓存中删除的执行计划。为了做出基于成本的决策,数据库引擎根据以下因素增加和减少每个执行计划的当前成本变量


您可能还对此链接感兴趣:

缓存/编译是端到端进行的

  • 默认情况下,IIS将在20分钟后卸载
  • .net编译到CLR
  • SQL编译
  • 将数据加载到内存中
这就是为什么最初的呼叫需要一些时间

通常情况下,内容会保留在缓存中:

  • 仍在使用时
  • 没有内存压力
  • 仍然有效(例如统计数据更新将使缓存的计划无效)
如果您担心,请添加更多RAM。还要注意,每个数据库都有不同的负载模式,SQLServer将很好地处理内存。除非你没有足够的内存