什么是在MySQL中的等效查询?

查询1:需要最长时间的前10个代码

select top 10 
  source_code,
  stats.total_elapsed_time/1000000 as seconds,
  last_execution_time from sys.dm_exec_query_stats as stats
cross apply(SELECT 
              text as source_code 
            FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
order by total_elapsed_time desc

Query2:采用最大physical_reads的前10位代码

select top 10 
  source_code,
  stats.total_elapsed_time/1000000 as seconds,
  last_execution_time from sys.dm_exec_query_stats as stats
cross apply(SELECT 
              text as source_code 
            FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
order by total_physical_reads desc

取自这篇文章


在MySQL中,您需要从日志文件中捕获此信息,而不是通过查询。 有人可能会告诉你一个查询是可能的,但他们对你不公平。 看到:

http://dev.mysql.com/doc/refman/5.1/en/log-tables.html“目前,登录表格比登录文件带来更多的服务器开销。”

..足够重要的,如果你问这个问题,你不想使用它。

所以现在你的问题变成了“你怎么用日志文件做这件事?”。 查询的物理读取数量不记录在股票MySQL版本中。 它在Percona Server中可用。 增强功能非常棒(即使我有偏见,我也为Percona工作):

http://www.percona.com/docs/wiki/patches:slow_extended

接下来的问题是如何汇总日志,以便找到这些详细信息。 为此,我建议mk-query-digest。 http://www.maatkit.org/doc/mk-query-digest.html。


SELECT TOP 10 ...是MySQL中的SELECT ... LIMIT 10。 如果您询问的CROSS APPLY与INNER JOIN没有太大区别,请参阅何时应使用交叉应用通过内部联接?


你看过关于ServerFault的这个问答吗?

我如何配置MySQL?

链接地址: http://www.djcxy.com/p/86217.html

上一篇: what is the equivalent query in mysql?

下一篇: CROSS APPLY with table valued function restriction performance