Skip to content

1.查找占资源sql语句

sql
select
    query, --查询语句.
    count(1) cnt,
    sum(query_duration_ms) /1000 `查询消耗的时间(秒)`,
    sum(read_rows) read_rows, --从参与了查询的所有表和表函数读取的总行数.
    sum(read_bytes) / 1024 / 1024 `read(MB)`, -- 从参与了查询的所有表和表函数读取的大小
    sum(written_rows) written_rows, -- 对于 INSERT 查询,为写入的行数
    sum(written_bytes) written_bytes, --对于 INSERT 查询时,为写入的字节数。
    sum(result_rows) result_rows, --SELECT 查询结果的行数,或INSERT 的行数。
    sum(result_bytes) result_bytes, --  存储查询结果的RAM量.
    sum(memory_usage) memory_usage -- 查询使用的内存.
from system.query_log
where 1=1
  and event_date = today() -- 日期条件 yyyyMMdd
  and type in (1,2) -- 1 — 查询成功启动. 2 — 查询成功完成. 3 — 查询执行前有异常. 4 — 查询执行期间有异常.
  and stack_trace != '' -- 如果查询成功完成,则为空字符串。
group by query
order by cnt,`查询消耗的时间(秒)` desc
select
    query, --查询语句.
    count(1) cnt,
    sum(query_duration_ms) /1000 `查询消耗的时间(秒)`,
    sum(read_rows) read_rows, --从参与了查询的所有表和表函数读取的总行数.
    sum(read_bytes) / 1024 / 1024 `read(MB)`, -- 从参与了查询的所有表和表函数读取的大小
    sum(written_rows) written_rows, -- 对于 INSERT 查询,为写入的行数
    sum(written_bytes) written_bytes, --对于 INSERT 查询时,为写入的字节数。
    sum(result_rows) result_rows, --SELECT 查询结果的行数,或INSERT 的行数。
    sum(result_bytes) result_bytes, --  存储查询结果的RAM量.
    sum(memory_usage) memory_usage -- 查询使用的内存.
from system.query_log
where 1=1
  and event_date = today() -- 日期条件 yyyyMMdd
  and type in (1,2) -- 1 — 查询成功启动. 2 — 查询成功完成. 3 — 查询执行前有异常. 4 — 查询执行期间有异常.
  and stack_trace != '' -- 如果查询成功完成,则为空字符串。
group by query
order by cnt,`查询消耗的时间(秒)` desc