能否监控到update执行的过程,类似admin show ddl jobs 的操作

是否有工具能监控到update或者delete的进度,类似admin show ddl jobs 能卡到创建索引的进度一样

不能吧,没听说还有这种功能。

trace update/delete xxx看看

这个有点意思了,不过不是很直观,想看到的是某一个sql在后台执行的过程,和admin show ddl jobs差不多,能越估出来这个sql什么时间执行完,知彼知己!

这功能oracle都没能实现吧。。。oracle有个视图V$SESSION_LONGOPS能看到大概的信息,然而也并不准。。。

进度应该监控不到,最多监控到语句吧。

update和delete的操作很快的;之前有失误删除过一个tidb数据库(50G),1分钟左右就没了。目前大多数可以监控到执行语句这一块

我这里大部分是多表关联更新用的innerjoin update 数据量在3千万左右,效率比较低,想监控下执行过程

可以把语句和相关表索引、执行计划发出来,分析分析

监控不到吧

看 dashboard 里面的执行时间不行吗?

oracle em的 sql monitor可以看到 :grinning:

额,如果我没猜错的话,oracle的em也是读同一张系统视图吧。。。反正如果是查询的话,这个还是有点用的,更新或删除的话,有锁没锁的情况也查很多吧。。。他也只能大致猜一猜。。。

都是预测,这个能辅助管理人员做决策

暂时我们还没有实现去语句级和会话级的类似 oracle longops 的视图。

这个执行用时,要看update、delete的batch有多大,另外还收到tidb、tikv等多个组件的执行效率影响。
如果要恢复,可以使用recovery,flashback等多种方法,但前提是GC还没有清理掉,目前tidb默认是10min,若要求留出一定的buffer,可以考虑将这个时间留长一些。

可以使用information_schema.cluster_processlist来查看,其中的time可以看到该进程已经运行了多长时间。但预估还要执行时间,还真没有。

看看expensive sql是否有在日志中记录?
另外使用dashboard中的手动分析profile看看是否能发现一些东东。

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。