SQL Server是否与MySql的sql_no_cache修饰符等效?

时间:2013-01-11 21:25:48

标签: mysql sql sql-server database

在MySql中测试单个查询的性能,并将查询缓存从图片中删除,您可以在select语句中使用sql_no_cache修饰符:

select sql_no_cache * from Foo;

Microsoft SQL Server中是否存在类似的每个查询选项?我看过很多关于使用的帖子:

CHECKPOINT
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

但这似乎有些过分,并且在尝试将性能与MySql进行比较时,可能会给SQL Server带来不利影响。

1 个答案:

答案 0 :(得分:2)

要从缓存中删除特定查询计划,请获取查询的计划句柄:

SELECT
    t.text,
    s.plan_handle,
    s.creation_time,
    s.last_execution_time
FROM sys.dm_exec_query_stats as s
CROSS APPLY sys.dm_exec_sql_text (s.sql_handle) as t
-- optionally filter based on query text
-- WHERE t.text LIKE '%blah%';

SQL Server 2008+允许将计划句柄传递给DBCC FREEPROCCACHE以从缓存中删除特定计划:

DBCC FREEPROCCACHE (<plan_handle>);