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');
这四类分别对应于Object Plans(存储过程、函数、触发器),SQL Plans(即席查询、自动参数化、SP_EXECUTESQL执行的语句),Bound Trees(生成计划时代数化阶段所生成的结构),Extended Stored Procedures(扩展存储过程)。
执行上下文被存储于称为SQL Manager Cache (SQLMGR)的地方。如果缓冲区到达上限时,SQLSERVER会先释放掉SQLMGR这部分的内存,因为它们的编译成本是0。而编译的计划成本会被减半,如果成本到达0后也会被释放。
SQL2005的过程缓存是动态分配的,它的最大大小由下面的公式计算得到:
这里所指的visible target memory是当使用DBCC MEMORYSTATUS命令时在Buffer Counts的结果集中的Visible行返回的大小。如下图所示:
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接