在 MySql 中测试单个查询的性能,并从图片中取出查询缓存,您可以在 select 语句中使用 sql_no_cache 修饰符:
select sql_no_cache * from Foo;
Microsoft SQL Server 中是否有类似的每个查询选项?我看过很多关于使用的帖子:
CHECKPOINT
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
但这似乎有些矫枉过正,并且在针对相同的非缓存查询尝试将性能与 MySql 进行比较时,可能会使 SQL Server 处于劣势。
最佳答案
要从缓存中删除特定的查询计划,请获取查询的计划句柄:
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>);
关于mysql - SQL Server 是否有等同于 MySql 的 sql_no_cache 修饰符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286889/