mysql - SQL Server 是否有等同于 MySql 的 sql_no_cache 修饰符?

标签 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 处于劣势。

最佳答案

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

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/

相关文章:

mysql - 根据 IF 语句更新另一列

php - 标签数据库设计

SQL:设置 IDENTITY_INSERT ON 会禁止更新表的身份表吗?

sql - 只更新单个表的事务是否总是隔离的?

php - 在 Moodle 3.5 中添加新用户时出错

MySql多表查询

mysql - 动态地将数据从.mdb导出到.mysql

mysql - mysql中8位数字转换为日期类型

sql - 在左连接上返回不同的行数

sql - 如何从 JSON_QUERY 有条件地返回 NULL