【问题分类】性能优化

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

【问题描述】表新增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补丁版本

【YashanDB知识库】表收集统计信息默认阈值引起SQL执行效率差的更多相关文章

  1. 无法收集统计信息,怎样优化SQL。

    特殊情况如下 客户的统计信息是固定的,没办法收集统计信息 . SQL profile 是最后考虑方案,因为同样写法sql 比较多,几十条. Parallle 并行客户一般不考虑接受,OLTP 系统. ...

  2. Oracle 判断 并 手动收集 统计信息 脚本

    CREATE OR REPLACE PROCEDURE SchameB.PRC_GATHER_STATS AUTHID CURRENT_USER IS BEGIN SYS.DBMS_STATS.GAT ...

  3. ORACLE收集统计信息

    1.     理解什么是统计信息 优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·       ...

  4. ORACLE 收集统计信息

    1.     理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·        ...

  5. 收集统计信息让SQL走正确的执行计划

    数据库环境:SQL SERVER 2005 今天在生产库里抓到一条跑得慢的SQL,语句不是很复杂,返回的数据才有800多行, 却执行了34分钟,甚至更久. 先看一下执行结果 我贴一下SQL. SELE ...

  6. impala系列: 同步Hive元数据和收集统计信息

    ---====================-- Impala 获取hive 的 metadata ---====================Impala 通常和Hive共用同一个metadat ...

  7. Oracle重建表索引及手工收集统计信息

    Oracle重建所有表的索引的sql: SELECT 'alter index ' || INDEX_NAME || ' rebuild online nologging;' FROM USER_IN ...

  8. Oracle收集对表收集统计信息导致全表扫描直接路径读?

    direct path read深入解析 前言 最近碰到一件很奇葩的事情,因为某条SQL执行缓慢,原因是走了笛卡尔(两组大数据结果集),而且笛卡尔还是NL的一个部分,要循环31M次. 很容易发现是统计 ...

  9. 使用DBMS_STATS来收集统计信息【转】

    overview Oracle's cost-based optimizer (COB) uses statistics to calculate the selectivity (the fract ...

  10. Oracle 手动收集统计信息

    收集oracle统计信息 优化器统计范围: 表统计: --行数,块数,行平均长度:all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN: 列统计: --列中唯一值的数量(NDV ...

随机推荐

  1. C#winform软件移植上linux的秘密,用GTK开发System.Windows.Forms

    国产系统大势所趋,如果你公司的winform界面软件需要在linux上运行,如果软件是用C#开发的,现在我有一个好的快速解决方案. 世界第一的微软的Microsoft Visual Studio,确实 ...

  2. CentOS中增加网络连接数的方法

    CentOS默认对外访问,发起的TCP链接总数小于28232个. 可以通过以下命令的结果计算出来 $ cat /proc/sys/net/ipv4/ip_local_port_range 我这里得到的 ...

  3. PowerBuilder编程新思维10.5:外传2(PowerPlume下一代开发解决方案)

    万里归来年愈少 PB编程新思维10.5:外传2(PowerPlume下一代解决方案) 前言 今天我们就来盘点一下,PB下一代开发的所有技术可能性.所谓下一代开发技术,就是指脱离或半脱离PBVM的应用开 ...

  4. mysql Using join buffer (Block Nested Loop) join连接查询优化

    最近在优化链表查询的时候发现就算链接的表里面不到1w的数据链接查询也需要10多秒,这个速度简直不能忍受 通过EXPLAIN发现,extra中有数据是Using join buffer (Block N ...

  5. 接口防刷!利用redisson快速实现自定义限流注解

    问题: 在日常开发中,一些重要的对外接口,需要加上访问频率限制,以免造成资��损失. 如登录接口,当用户使用手机号+验证码登录时,一般我们会生成6位数的随机验证码,并将验证码有效期设置为1-3分钟,如 ...

  6. UE5 打不开

    在游戏开发中,出现了UE打不开的情况 初步推测,新增了接口Attacker, 而我们的DefaultPawn可能一下子实现了两个接口造成的 而这两个接口都在一个插件里,一个是c++实现的,一个是蓝图实 ...

  7. windows上传ipa到开发者中心(app store)的方法

    假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开发者中心才能在构建版本里选择构建版本上架 ...

  8. 【Java】Applet开发

    一.Applet开发环境准备 IDEA在2018版本默认提供了Applet启动配置 创建一个Applet应用配置: 在IDEA2019版本之后,这个应用配置选项被移除了,改为Java Applet S ...

  9. 【Spring-Security】Re14 Oauth2协议P4 整合SSO单点登陆

    创建一个SSO单点登陆的客户端工程 需要的依赖和之前的项目基本一致: <?xml version="1.0" encoding="UTF-8"?> ...

  10. 【Layui】05 进度条 Progress

    文档地址: https://www.layui.com/doc/element/progress.html 演示案例: <div class="layui-progress" ...