【发布时间】:2013-01-11 21:25:47
【问题描述】:
在 MySql 中测试单个查询的性能,并从图片中取出查询缓存,您可以在 select 语句中使用 sql_no_cache 修饰符:
select sql_no_cache * from Foo;
Microsoft SQL Server 中是否有类似的按查询选项?我看过很多关于使用的帖子:
CHECKPOINT
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
但这似乎有点矫枉过正,并且在尝试将同一非缓存查询的性能与 MySql 进行比较时,可能会给 SQL Server 带来不利影响。
【问题讨论】:
-
对于我们这些不熟悉 MySQL 的人来说,
sql_no_cache控制什么?缓存执行计划还是缓存数据页? -
@MartinSmith:
SQL_NO_CACHE告诉 MySQL 不要将结果存储在查询缓存中。 -
@eggyal - 哦,它实际上存储了查询结果? SQL Server 无论如何都不会这样做。执行计划被编译和缓存,页面读入缓冲池可以使后续执行受益,但不会缓存实际的查询结果。
-
@MartinSmith:确实如此——见The MySQL Query Cache。
标签: mysql sql sql-server database