统计信息收集失败显示:[tikv:1317]Query execution was interrupted错误

【 TiDB 使用环境】
测试/ Poc
【 TiDB 版本&集群信息】
Cluster version: v6.5.0
Deploy user: tidb
SSH type: builtin
Dashboard URL: http://xxx.xxx.xxx.xxx:2379/dashboard
Grafana URL: http://xxx.xxx.xxx.xxx:3000
ID Role Host Ports OS/Arch Status Data Dir Deploy Dir


xxx.xxx.xxx.xxx:9093 alertmanager xxx.xxx.xxx.xxx 9093/9094 linux/x86_64 Up /tidb/alertmanager-9093/data /tidb/alertmanager-9093
xxx.xxx.xxx.xxx:8300 cdc xxx.xxx.xxx.xxx 8300 linux/x86_64 Up /tidb/cdc-data/cdc-8300 /tidb/cdc-deploy/cdc-8300
xxx.xxx.xxx.xxx:8310 cdc xxx.xxx.xxx.xxx 8310 linux/x86_64 Up /tidb/cdc-data/cdc-8310 /tidb/cdc-deploy/cdc-8310
xxx.xxx.xxx.xxx:8300 cdc xxx.xxx.xxx.xxx 8300 linux/x86_64 Up /tidb/cdc-data/cdc-8300 /tidb/cdc-deploy/cdc-8300
xxx.xxx.xxx.xxx:8310 cdc xxx.xxx.xxx.xxx 8310 linux/x86_64 Up /tidb/cdc-data/cdc-8310 /tidb/cdc-deploy/cdc-8310
xxx.xxx.xxx.xxx:3000 grafana xxx.xxx.xxx.xxx 3000 linux/x86_64 Up - /tidb/grafana-3000
xxx.xxx.xxx.xxx:2379 pd xxx.xxx.xxx.xxx 2379/2380 linux/x86_64 Up /tidb/pd/data /tidb/pd
xxx.xxx.xxx.xxx:2379 pd xxx.xxx.xxx.xxx 2379/2380 linux/x86_64 Up|L|UI /tidb/pd/data /tidb/pd
xxx.xxx.xxx.xxx:2379 pd xxx.xxx.xxx.xxx 2379/2380 linux/x86_64 Up /tidb/pd/data /tidb/pd
xxx.xxx.xxx.xxx:9090 prometheus xxx.xxx.xxx.xxx 9090/12020 linux/x86_64 Up /tidb/prometheus-8249/data /tidb/prometheus-8249
xxx.xxx.xxx.xxx:5001 tidb xxx.xxx.xxx.xxx 5001/10081 linux/x86_64 Up - /tidb/tidb1
xxx.xxx.xxx.xxx:5002 tidb xxx.xxx.xxx.xxx 5002/10082 linux/x86_64 Up - /tidb/tidb2
xxx.xxx.xxx.xxx:5003 tidb xxx.xxx.xxx.xxx 5003/10083 linux/x86_64 Up - /tidb/tidb3
xxx.xxx.xxx.xxx:5004 tidb xxx.xxx.xxx.xxx 5004/10084 linux/x86_64 Up - /tidb/tidb4
xxx.xxx.xxx.xxx:5001 tidb xxx.xxx.xxx.xxx 5001/10081 linux/x86_64 Up - /tidb/tidb1
xxx.xxx.xxx.xxx:5002 tidb xxx.xxx.xxx.xxx 5002/10082 linux/x86_64 Up - /tidb/tidb2
xxx.xxx.xxx.xxx:5003 tidb xxx.xxx.xxx.xxx 5003/10083 linux/x86_64 Up - /tidb/tidb3
xxx.xxx.xxx.xxx:5004 tidb xxx.xxx.xxx.xxx 5004/10084 linux/x86_64 Up - /tidb/tidb4
xxx.xxx.xxx.xxx:5001 tidb xxx.xxx.xxx.xxx 5001/10081 linux/x86_64 Up - /tidb/tidb1
xxx.xxx.xxx.xxx:5002 tidb xxx.xxx.xxx.xxx 5002/10082 linux/x86_64 Up - /tidb/tidb2
xxx.xxx.xxx.xxx:5001 tidb xxx.xxx.xxx.xxx 5001/10081 linux/x86_64 Up - /tidb/tidb1
xxx.xxx.xxx.xxx:5002 tidb xxx.xxx.xxx.xxx 5002/10082 linux/x86_64 Up - /tidb/tidb2
xxx.xxx.xxx.xxx:5001 tidb xxx.xxx.xxx.xxx 5001/10081 linux/x86_64 Up - /tidb/tidb1
xxx.xxx.xxx.xxx:5002 tidb xxx.xxx.xxx.xxx 5002/10082 linux/x86_64 Up - /tidb/tidb2
xxx.xxx.xxx.xxx:9000 tiflash xxx.xxx.xxx.xxx 9000/8123/3930/20170/20292/8234 linux/x86_64 Up /data01/tiflash,/data02/tiflash,/data03/tiflash /tidb/tiflash-9000
xxx.xxx.xxx.xxx:9000 tiflash xxx.xxx.xxx.xxx 9000/8123/3930/20170/20292/8234 linux/x86_64 Up /data01/tiflash,/data02/tiflash,/data03/tiflash /tidb/tiflash-9000
xxx.xxx.xxx.xxx:9000 tiflash xxx.xxx.xxx.xxx 9000/8123/3930/20170/20292/8234 linux/x86_64 Up /data01/tiflash,/data02/tiflash,/data03/tiflash /tidb/tiflash-9000
xxx.xxx.xxx.xxx:20171 tikv xxx.xxx.xxx.xxx 20171/20181 linux/x86_64 Up /data01/tikv /tidb/tikv1
xxx.xxx.xxx.xxx:20172 tikv xxx.xxx.xxx.xxx 20172/20182 linux/x86_64 Up /data02/tikv /tidb/tikv2
xxx.xxx.xxx.xxx:20173 tikv xxx.xxx.xxx.xxx 20173/20183 linux/x86_64 Up /data03/tikv /tidb/tikv3
xxx.xxx.xxx.xxx:20171 tikv xxx.xxx.xxx.xxx 20171/20181 linux/x86_64 Up /data01/tikv /tidb/tikv1
xxx.xxx.xxx.xxx:20172 tikv xxx.xxx.xxx.xxx 20172/20182 linux/x86_64 Up /data02/tikv /tidb/tikv2
xxx.xxx.xxx.xxx:20173 tikv xxx.xxx.xxx.xxx 20173/20183 linux/x86_64 Up /data03/tikv /tidb/tikv3
xxx.xxx.xxx.xxx:20171 tikv xxx.xxx.xxx.xxx 20171/20181 linux/x86_64 Up /data01/tikv /tidb/tikv1
xxx.xxx.xxx.xxx:20172 tikv xxx.xxx.xxx.xxx 20172/20182 linux/x86_64 Up /data02/tikv /tidb/tikv2
xxx.xxx.xxx.xxx:20173 tikv xxx.xxx.xxx.xxx 20173/20183 linux/x86_64 Up /data03/tikv /tidb/tikv3
xxx.xxx.xxx.xxx:20171 tikv xxx.xxx.xxx.xxx 20171/20181 linux/x86_64 Up /data01/tikv /tidb/tikv1
xxx.xxx.xxx.xxx:20172 tikv xxx.xxx.xxx.xxx 20172/20182 linux/x86_64 Up /data02/tikv /tidb/tikv2
xxx.xxx.xxx.xxx:20173 tikv xxx.xxx.xxx.xxx 20173/20183 linux/x86_64 Up /data03/tikv /tidb/tikv3
xxx.xxx.xxx.xxx:20171 tikv xxx.xxx.xxx.xxx 20171/20181 linux/x86_64 Up /data01/tikv /tidb/tikv1
xxx.xxx.xxx.xxx:20172 tikv xxx.xxx.xxx.xxx 20172/20182 linux/x86_64 Up /data02/tikv /tidb/tikv2
xxx.xxx.xxx.xxx:20173 tikv xxx.xxx.xxx.xxx 20173/20183 linux/x86_64 Up /data03/tikv /tidb/tikv3
xxx.xxx.xxx.xxx:20171 tikv xxx.xxx.xxx.xxx 20171/20181 linux/x86_64 Up /data01/tikv /tidb/tikv1
xxx.xxx.xxx.xxx:20172 tikv xxx.xxx.xxx.xxx 20172/20182 linux/x86_64 Up /data02/tikv /tidb/tikv2
xxx.xxx.xxx.xxx:20173 tikv xxx.xxx.xxx.xxx 20173/20183 linux/x86_64 Up /data03/tikv /tidb/tikv3

【问题显现】
大表收集统计信息失败:
xxxxx xxxxxxx auto analyze table all columns with 256 buckets, 500 topn, 4.4275116274756925e-05 samplerate 2027279994 2023-04-02 18:18:27 2023-04-03 06:18:27 failed [tikv:1317]Query execution was interrupted 172.17.3.111:5002
表中数据量:
24 8795 7795
数据库GC参数:tidb_gc_life_time 24小时。

tidb_enable_gc_aware_memory_track OFF
tidb_enable_gogc_tuner ON
tidb_gc_concurrency -1
tidb_gc_enable ON
tidb_gc_life_time 24h0m0s
tidb_gc_max_wait_time 86400
tidb_gc_run_interval 10m0s
tidb_gc_scan_lock_mode LEGACY
tidb_gogc_tuner_threshold 0.6
tidb_server_memory_limit_gc_trigger 0.7

请问对于大表的收集统计信息是否有好的优化方法。

定时手动分析

建议手工收集,可以参考数据库的忙碌程度,选择较闲时段,多开点并发收集,https://docs.pingcap.com/zh/tidb/stable/statistics#控制-analyze-并发度
另外可以不要全表收集,可以设定一个合适的采样率进行收集, WITH FLOAT_NUM SAMPLERATE 用于指定采样率
https://docs.pingcap.com/zh/tidb/stable/statistics#全量收集

停止自动收集
set global tidb_auto_analyze_end_time =‘01:00 +0000’; 即时生效
set global tidb_max_auto_analyze_time =600; 即时生效,在设置之前启动的超过这个时间也被kill;

设置并发参数
set global tidb_build_stats_concurrency=8; 这个变量用来设置 ANALYZE 语句执行时并发度。

执行手工收集
analyze table Table_schema.Table_name 手工速度比自动快的多,15分钟已经比自动3个小时执行的数据多了

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