sql 百分比_查看SQL语句执行进度信息

dce423972136cc935f25e38732b1e0b0.png

查看SQL语句执行进度信息

有时候我们跑一个语句,若修改大表或查询量很大时候,不知道执行到什么程度了,什么时候能执行完成,在5.7版后可以查询sys.session来观察

select * from sys.session where conn_id != connection_id();

模拟对一个大表执行了alter操作

alter table ytest.data_million_large change d d varchar(220);
ps: 这边有个地儿感兴趣的小伙伴可以去了解下,将字段d修改为 varchar(220) 以下,例如 varchar(200),这个会触发copy,执行会非常慢,而若将值改大,例如 varchar(2000),执行会非常快,修改元数据。【表字符集 utf8】
  • 字段progress 可以认为是执行的百分比
  • 百分比并不精准,仅是一个近似值
mysql> select * from sys.session where conn_id != connection_id() G
*************************** 1. row ***************************
                thd_id: 2560
               conn_id: 2534
                  user: root@221.228.242.102
                    db: sys
               command: Query
                 state: copy to tmp table
                  time: 54
     current_statement: alter table ytest.data_million_large change d d varchar(220)
     statement_latency: 55.04 s
              progress: 21.78   ## 执行的百分比
          lock_latency: 39.49 ms
         rows_examined: 0
             rows_sent: 0
         rows_affected: 0
            tmp_tables: 0
       tmp_disk_tables: 0
             full_scan: NO
        last_statement: NULL
last_statement_latency: NULL
        current_memory: 4.29 MiB
             last_wait: NULL
     last_wait_latency: NULL
                source: NULL
           trx_latency: NULL
             trx_state: NULL
        trx_autocommit: NULL
                   pid: NULL
          program_name: NULL
1 row in set (15.10 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值