1. 将当前数据库的全部脏页写入磁盘。“脏页”是已输入缓存区高速缓存且已修改但尚未写入磁盘的数据页。
-- CHECKPOINT 可创建一个检查点,在该点保证全部脏页都已写入磁盘,从而在以后的恢复过程中节省时间。
执行语句:CHECKPOINT
2. 若要从缓冲池中删除清除缓冲区,请首先使用 CHECKPOINT 生成一个冷缓存。这可以强制将当前数据库的全部脏页写入磁盘,然后清除缓冲区。
-- 完成此操作后,便可发出 DBCC DROPCLEANBUFFERS 命令来从缓冲池中删除所有缓冲区。
执行语句:DBCC DROPCLEANBUFFERS
3. 释放过程缓存将导致系统重新编译某些语句(例如,即席 SQL 语句),而不重用缓存中的语句。
执行语句:DBCC FREEPROCCACHE
4. 从所有缓存中释放所有未使用的缓存条目。SQL Server 2005 Database Engine 会事先在后台清理未使用的缓存条目,以使内存可用于当前条目。
-- 但是,可以使用此命令从所有缓存中手动删除未使用的条目。
执行语句:DBCC FREESYSTEMCACHE ( 'ALL'
)
5. 要接着执行你的查询,不然SQLServer会时刻的自动往缓存里读入最有可能需要的数据页.
6.其他有与内存有关的语句:
(1)、
select * from sys.dm_os_performance_counters
where counter_name IN ('Target Server Memory (KB)','Total Server Memory (KB)')
(2)、
DBCC MEMORYSTATUS
(3)、
SELECT configuration_id as id,name as 名称,minimum as 配置最小值, maximum as 最大值,
is_dynamic as 是否动态值, is_advanced as 是否优先, value_in_use AS 运行值,
description as 描述 FROM sys.configurations WHERE name LIKE '%MEMORY%'