如何在MemSQL或MySQL中查看所有查询?

时间:2017-10-26 07:31:10

标签: mysql memsql

如何在MemSQL或MySQL中查看数据库/集群中所有查询的列表/历史记录,包括已完成和正在运行的查询?我想查看任何查询的状态,例如它是否已完成或是否正在运行或是否已中止。有没有我可以运行查询的查询?谢谢。

2 个答案:

答案 0 :(得分:2)

MemSQL具有information_schema视图,可获取有关运行和已完成/失败查询的信息。看看https://docs.memsql.com/concepts/v6.0/workload-profiling/

例如,以下查询将显示在过去10分钟内运行的所有查询: select query_text,success_count,failure_count from information_schema.mv_activities_cumulative join information_schema.mv_queries using (activity_name) where last_finished_timestamp > now() - interval '10' minute;

您还可以使用这些视图深入钻取以了解查询的资源使用情况。

答案 1 :(得分:0)

根据Management View Reference上的正式memsql文档,他们说:“ mv_activities通过计算一段时间内mv_activities_cumulative的变化来确定最近的资源使用。此时间间隔由activity_delta_sleep_s会话变量的值控制。”

因此,如果我正确阅读文档,则应在执行时将变量activity_delta_sleep_s设置为30秒,然后在运行查询时,您会看到所有数据库活动的CPU时间都在减少。我的问题是,我似乎看不到我执行的所有活动,而且很多查询文本都是空白的。根据memsql forums的activity_delta_sleep_s表示,变量simple使所有管理视图调用在返回结果之前都在此变量时间内休眠。我认为这里的想法是,这将允许在节点和网络流量中聚合活动。

#set the lookback period desired
set activities_delta_sleep_s = 30;

#This query is supposed to show resource costs of server activities, but not sure how to ID specific queries.
SELECT * #look at QUERY_TEXT
from information_schema.MV_ACTIVITIES a
LEFT JOIN information_schema.mv_queries q ON a.ACTIVITY_NAME = q.ACTIVITY_NAME
order by 4 DESC;