WEB开发网
开发学院数据库MSSQL Server SQL 2005缓存计划小结 阅读

SQL 2005缓存计划小结

 2008-11-24 10:12:49 来源:WEB开发网   
核心提示:缓存计划可以被分成两类:编译的计划和执行上下文,前者是对所有用户共享的,SQL 2005缓存计划小结,后者是针对某个特定用户的,它包含了某个用户执行此计划时的具体参数等相关的信息,如果成本到达0后也会被释放,SQL2005的过程缓存是动态分配的,编译的计划有四种类型,可以通过下面的语句进行查看:SELECT *FROM

缓存计划可以被分成两类:编译的计划和执行上下文。前者是对所有用户共享的,后者是针对某个特定用户的,它包含了某个用户执行此计划时的具体参数等相关的信息。编译的计划有四种类型,可以通过下面的语句进行查看:

SELECT *
FROM sys.dm_os_memory_cache_counters
WHERE name IN ('Object Plans', 'SQL Plans',
'Bound Trees', 'Extended Stored Procedures');

SQL 2005缓存计划小结

这四类分别对应于Object Plans(存储过程、函数、触发器),SQL Plans(即席查询、自动参数化、SP_EXECUTESQL执行的语句),Bound Trees(生成计划时代数化阶段所生成的结构),Extended Stored Procedures(扩展存储过程)。

执行上下文被存储于称为SQL Manager Cache (SQLMGR)的地方。如果缓冲区到达上限时,SQLSERVER会先释放掉SQLMGR这部分的内存,因为它们的编译成本是0。而编译的计划成本会被减半,如果成本到达0后也会被释放。

SQL2005的过程缓存是动态分配的,它的最大大小由下面的公式计算得到:

SQL 2005缓存计划小结

这里所指的visible target memory是当使用DBCC MEMORYSTATUS命令时在Buffer Counts的结果集中的Visible行返回的大小。如下图所示:

SQL 2005缓存计划小结

1 2 3 4  下一页

Tags:SQL 缓存 计划

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接