首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【YashanDB知识库】表收集统计信息默认阈值引起SQL执行效率差

【YashanDB知识库】表收集统计信息默认阈值引起SQL执行效率差

原创
作者头像
用户10349277
发布于 2025-02-20 14:35:35
发布于 2025-02-20 14:35:35
2660
举报
文章被收录于专栏:YashanDB知识库YashanDB知识库

【问题分类】性能优化

【关键字】统计信息,阈值,执行计划

【问题描述】表新增87w数据自动收集统计信息任务没有启动导致SQL执行计划变差

【问题原因分析】

- CUS_REGISTER_READ 数据总量是18374074,插入81万,统计信息失效的阈值是insert+delete+update超过所有行数的10%,没有达到统计信息收集的阈值,不会做收集。

- 统计信息没有失效,为什么插入81万的数据前后给出的执行计划不一样?由于数据库缺乏查看历史执行计划的视图,该问题并不能精准回复。

【解决/规避方法】

- 对于大表需要合理设置统计信息收集的阈值

- 获取SQL执行计划历史变更功能,已提相关需求

```

新引入需要注意的问题:

GATHER_DATABASE_STATS('GATHER AUTO', 0, 8, 'FOR ALL COLUMNS SIZE AUTO', 'AUTO', TRUE, TRUE)

倒数第3个参数是AUTO,在客户场景分区表(100+个分区),会比较慢。

```

【影响范围】严重降低SQL执行效率

【修复版本】23.2补丁版本

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档