HACK
(DBS)
1
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【概述】
tidb自动统计更新的时间,能设定天的级别吗?比如每周六日晚上定时做统计更新。
tidb_auto_analyze_end_time
tidb_auto_analyze_start_time
【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】
【附件】
-
TiUP Cluster Display 信息
-
TiUP Cluster Edit Config 信息
-
TiDB- Overview 监控
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
1 个赞
xfworld
(魔幻之翼)
2
时间范围好像没办法支持到这个级别,这个只能支持到每天的某个时间范围内…残念…
可以当需求,,提一下~
2 个赞
Kongdom
(Kongdom)
3
楼上说的对,目前确实还不支持。 可以自己挂定时作业进行触发。
1 个赞
HACK
(DBS)
4
那我怎么关闭这个自动统计更新呢?貌似没有找到相关的参数。
1 个赞
Kongdom
(Kongdom)
5
1 个赞
HACK
(DBS)
6
查看表的统计更新信息
里面的update_time表示的是这个表做统计更新的时间吗?
如果是的话,为啥我设置的统计更新时间是晚上21点到早上6点,但是我看表的UPDATE_TIME有今天早上9点的呢?
1 个赞
Kongdom
(Kongdom)
7
默认是没有设置时区的,需要设置时区。21点到6点,对应的就是5点到14点。
tidb_auto_analyze_start_time='21:00 +0800'
tidb_auto_analyze_end_time='06:00 +0800'
1 个赞
Kongdom
(Kongdom)
9
没错。刚重新看了一下,是我理解错了。那个更新时间是更新的状态,不是自动收集统计信息的时间。在数据发生变化的时候,就会更新update_time。
注意:
在 TiDB 根据 DML 语句自动更新总行数以及修改的行数时, update_time
也会被更新,因此并不能认为 update_time
是最近一次发生 Analyze 的时间。
HACK
(DBS)
10
但是我对一个表进行analyze table table-name以后,这个UPDATE_TIME就会发生变化呀。
这个表是自己的一个测试表。
Kongdom
(Kongdom)
11
是会发生变化,但引起变化的原因,不只是analyze,正常的UPDATE语句也会更新update_time。
所以官方文档中说: 并不能认为 update_time
是最近一次发生 Analyze 的时间。
HACK
(DBS)
12
哦,你的意思是对表执行analyze操作,也会引起update_time的变化,是吧?
HACK
(DBS)
16
感觉还是有点可疑,我查看系统表 ANALYZE_STATUS,发现表的统计更新时间就是今天早上9点多。
所以那两个控制统计更新开始和结束时间的参数,填写的时间是UTC时间呢还是北京时间呢?
Kongdom
(Kongdom)
19
建议还是填写北京时间。
不排除人工执行的可能性,可以再持续观察一段时间