在MySql中测试单个查询的性能,并将查询缓存从图片中删除,您可以在select语句中使用sql_no_cache修饰符:
select sql_no_cache * from Foo;
Microsoft SQL Server中是否存在类似的每个查询选项?我看过很多关于使用的帖子:
CHECKPOINT
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
但这似乎有些过分,并且在尝试将性能与MySql进行比较时,可能会给SQL Server带来不利影响。
答案 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>);