查看与清除缓存计划
来源:互联网 发布:ubuntu退出文件夹命令 编辑:程序博客网 时间:2024/04/30 15:25
SELECT plan_handle, st.text FROM sys.dm_exec_cached_plans CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
where text like '%confirmorder%'
DBCC FREEPROCCACHE (0x050008008FD01E3E40A1E644040000000000000000000000);
缓存管理机制对于任何系统的性能有着很重要的地位。像任何可靠的数据库管理系统一样,SQL Server享有一个优化性能的复杂缓存管理系统而不用任何用户的干涉。有一些方法可以用来把一个计划或者数据增加到SQL Server缓存中或者把一个计划或者数据从SQL Server缓存中删除,但是只建议把这些技术用来测试或者达到解决问题的目的。记住缓存机制的重要性,但是怎样才能得到SQL Server中的计划和它们的使用统计资料呢?
SQL Server 7.0发布的版本之前,计划缓存是用于SQL Server的整个内存的单独可配置缓存区域。只有存储过程缓存在缓存的那个部分。由于这个原因,它被叫做程序缓存,在SQL Server 7.0和后面的版本中,计划缓存不是SQL Server内存单独的一个部分。现在SQL Server 是用一个非常动态的集成内存管理和缓存管理机制。
下面的脚本用于SQL Server 2000和前面的版本。它将提供SQL Server 计划缓存的内容和使用频率。
下面是SQL Server 2000脚本#1的部分结果集。
图一
对于SQL Server 2005和它更新的版本,DMV已经被引进来获得这一信息。因此要得到缓存计划的内容和使用统计数据,你可能要使用下面的DMV脚本。
下面是SQL Server 2005脚本#2的部分结果集。
图二
上述脚本以及它们的描述所使用的整个领域如下:
利用上述脚本你可以看到SQL Server中的对象和它们的使用频率。记住对于SQL Server 2000,你需要使用系统表syscacheobjects而对于SQL Server 2005和更新的版本,主要使用DMV sys.dm_exec_cached_plans
当测试或者解决问题时,你可能需要清除计划缓存。你可以使用下面两种命令来达到目的。
Script # 3: 清除整个SQL Server计划缓存
DBCC FREEPROCCACHE
GO
Script #4: 清除某个特定数据库的SQL Server 计划缓存
DBCC FLUSHPROCINDB ()
GO
/*
You can get DBID through following command
Select dbid from sysdatabases where name = <'DBName'>
*/
除了上面的命令,下面的操作也将刷新整个计划缓存而新批需要新的计划。
分离任何数据库
在SQL Server 2005或更高版本中升级任何数据库到兼容性级别90或者更高
针对任何数据库运行 ALTER DATABASE ... MODIFY FILEGROUP 命令
运行 ALTER DATABASE ... COLLATE来修改任何数据库的校对
用下面任何一个命令来更改一个数据库将会把缓存在具体数据库中的所有计划都删除掉。
ALTER DATABASE ..... MODIFY NAME
ALTER DATABASE ..... SET ONLINE
ALTER DATABASE ..... SET OFFLINE
ALTER DATABASE ..... SET EMERGENCY
下面的操作也会删除一个具体数据库的缓存计划。
删除一个数据库
数据库自动关掉
这是与在这里提及没有一种方法可以把一个单独的查询计划从SQL 2005和更低版本的缓存中删除有关,但是在SQL 2008中现在是可能的。
- 查看与清除缓存计划
- 清除SQL Server数据缓存和执行计划缓存,查看执行计划的各种方式对比
- 清除SQL Server数据缓存和执行计划缓存,查看执行计划的各种方式对比
- android清除缓存,查看缓存
- DNS 缓存查看以及清除
- sqlserver缓存计划-清除只使用一次的缓存计划
- 计算缓存与清除缓存
- 缓存获取与清除
- android 缓存读取与清除
- Android缓存获取与清除
- IOS 显示与清除缓存
- Android 缓存ImageLoader与清除缓存
- SDWebImage计算缓存值与清除缓存
- iOS 获取缓存大小与清除缓存
- Graphite数据清除与查看
- apicloud图片缓存的使用和查看清除缓存
- 使用adb查看安装包的apk路径与清除安装包数据与缓存操作实例
- IOS 沙盒与清除缓存
- SQL用户权限分配
- ssh整合
- linux下的基本网络配置
- ssh中“Host key verification failed.“的解决方案
- jQuery获取Select选中的Text和Value
- 查看与清除缓存计划
- Linux系统下C++开发工具
- c#中构造函数中this的用法
- po vo pojo domain 区别
- 什么是RAC集群。
- tslib 入门学习
- 积累的VC编程小技巧之编辑框
- linux通过tc控制网络QoS(1)
- 使用Spring hibernate no session or session was closed