快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和记娱乐备用:《Microsoft Sql server 2008 Internal》读书笔记第九章Plan Caching and Recompilation(1)



经由过程第八章的查询优化,我们大年夜致懂得SQL 和记娱乐备用Server中的查询优化进程及查询履行的一些细节。由于查询优化平日是繁杂和耗时的进程,SQL Server几回再三受益于重用已经天生并保存在计划缓存中的查询计划,而不是每次都孕育发生一个新计划。当然,假如前一个计划不抱负,SQL Server照样会天生一个新的计划。当然也可以强制天生新计划和记娱乐备用。

在这一章,我们将关注SQL Server 2008的计划缓存,懂得它是若何组织的。

■计划缓存(The p和记娱乐备用lan Cache)

在SQL Server 2008中,计划缓存并不是一块隔离的内存区域。早期的版本(到SQL Server7)中有两个设置设置设备摆设摆设值会影响到计划缓存的大年夜小,即所谓的Procedure Cache。此中一个值定义SQL Server中可用内存的固定大年夜小,另一个定义用于存储存储历程计划的内存的百分比。在早期的版本(到SQL Server7)中,针对临时添加的SQL语句的查询计划从来不会被缓存。仅仅缓存存储历程。这便是为什么在旧版本中,它被称作历程缓存。在SQL Server 2008中,内存的总大年夜小是动态的,查询计划应用的空间也是异常宽泛的。

■计划缓存元数据

我们并不必要影象过多的语句,一个视图足以帮我们懂得计划缓存元数据。

sys.dm_exec_cached和记娱乐备用_pl和记娱乐备用ans,关于它的具体阐明,请看MSDN:http://msdn.microsoft.com/zh-cn/library/ms187404.aspx

例如,我们想要知道计划缓存的应用数,可以应用如下语句:

SELECT usecounts, cacheobjtype, objtype, [text]

FROM sys.dm_exec_cached_plans P

CROSS APPLY sys.dm_exec_sql_text(plan_handle)

WHERE cacheobjtype = 'Compiled Plan'

AND [text] NOT LIKE '%dm_exec_cached_plans%';

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: