【问题标题】:How to view all queries in MemSQL or MySQL?如何查看 MemSQL 或 MySQL 中的所有查询?
【发布时间】:2017-10-26 07:31:09
【问题描述】:

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

【问题讨论】:

  • 您可以将show [full] processlist 用于当前正在运行的查询。对于完成的查询,您必须启用查询日志。
  • 谢谢。该命令会显示“正在运行”的查询以及“中止”的查询吗?如何启用查询日志?

标签: mysql singlestore


【解决方案1】:

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;

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

【讨论】:

    【解决方案2】:

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

    因此,如果我正确阅读了文档,则应该在执行时将变量 activity_delta_sleep_s 设置为 30 秒,然后在运行查询时,您将看到所有数据库活动都在减少 cpu 时间。我的问题是我似乎没有看到我执行的所有活动,而且很多查询文本都是空白的。根据 memsql forums 的活动_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; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      相关资源
      最近更新 更多