如何查看正在执行指定sqlid的sql的执行时间

本文提供了一个SQL查询脚本,用于监控特定SQL_id的执行情况,包括执行的会话ID、用户名、持续时间、状态等信息,并展示了如何根据需要调整查询条件。

最近在优化sql,发现有个sql_id对应的sql的IO读取量非常的大,就想知道,每次有多少此类sql在执行,执行时间是多少,具体可以通过如下sql来查询

 

select 
sid,
v$session.username 用户名
,last_call_et 持续时间,
status 状态,
LOCKWAIT 等待锁,
machine 用户电脑名,
logon_time 开始登入时间,
sql_text 
from 
v$session ,v$process ,v$sqlarea
  
where paddr=addr and sql_hashvalue=hash_value

  and status='ACTIVE' and v$session.username is not null

 AND V$SESSION.SQL_ID='{sqlid}'
  order by last_call_et desc

 

将其中的{sqlid}换成你自己的sqlid即可

 

如果

AND V$SESSION.SQL_ID='{sqlid}'

取消,则查询全部在执行sqlid的情况

在 Apache Doris 中,你可以通过以下方式查看当前正在执行SQL 语句,这对于监控系统运行状态、排查慢查询或资源瓶颈非常有用。 --- ### ✅ 查看正在执行SQL #### 方法一:使用 `SHOW PROCESSLIST` 命令 ```sql SHOW PROCESSLIST; ``` 该命令会列出当前所有连接到 Doris 的会话,包括正在执行SQL 语句。 **输出字段说明:** | 字段名 | 说明 | |----------------|----------------------------------| | Id | 连接 ID | | User | 用户名 | | Host | 客户端 IP 地址 | | Cluster | 所属集群 | | Db | 当前数据库 | | Command | 当前执行的命令类型(如 Query) | | Time | 已执行时间(秒) | | State | 当前执行状态 | | Info | 正在执行SQL 语句 | --- #### 方法二:查询 `information_schema.processlist` 表(等价) ```sql SELECT * FROM information_schema.processlist; ``` 效果与 `SHOW PROCESSLIST` 类似,适用于通过 SQL 工具访问的场景。 --- #### 方法三:通过 Doris Web UI 查看(推荐) Doris 提供了一个 Web 管理界面,通常运行在 **Master 节点的 8030 端口**。 1. 打开浏览器访问:`http://<master_host>:8030` 2. 登录后点击 **"Queries"** 标签页。 3. 在这里可以看到: - 当前正在运行的查询 - 已完成的查询 - 查询耗时、SQL 语句、用户、执行节点等信息 --- ### ✅ 杀掉正在执行SQL(可选) 如果你发现某个 SQL 占用资源过高或执行时间过长,可以使用以下命令终止它: ```sql KILL <query_id>; ``` `query_id` 可从 `SHOW PROCESSLIST` 或 Web UI 中获取。 --- ### ✅ 查看慢查询日志(补充) 你也可以查看 Doris 的慢查询日志(默认路径): ``` /log/audit.log ``` 或配置慢查询日志阈值,记录执行时间超过指定毫秒数的 SQL。 --- 如果你使用的是云服务版 Doris(如阿里云 Doris、AWS 等),通常也提供了图形化监控工具来查看实时 SQL 执行情况。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值