文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle如何通过注释改变执行计划

2024-04-02 19:55

关注

小编给大家分享一下Oracle如何通过注释改变执行计划,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Oracle 通过注释改变执行计划

一:问题现象

T_XXX表同步延时1小时,其它表同步速度正常;

主要慢在同步时的一个delete T_XXX语句上,单条执行耗时12秒;

 

二:问题原因

T_XXX表存在唯一性索引,理论上速度很快;

查看T_XXX表存在delete行级触发器,查看触发器逻辑,发现触发器内一个update语句特别慢;

UPDATE CHENJCH.T_CHENJCH_RISK ..where  RISK_ID ....

查看执行计划,update语句走全表扫描,速度很慢,通过hint强制走主键索引,速度特别快;

为什么执行计划不走主键?

查看T_CHENJCH_RISK表统计信息显示表有0行数据,但是实际上有200万行数据;

由于数据同步时T_CHENJCH_RISK表存在大量的delete/update/insert操作,上次收集统计信息时正好这个表里没有数据,但是经过几天的数据同步后,表里的数据量发生了很大变化,统计信息也不是实时进行收集,最终导致生成较差的执行计划;

解决方案:

尝试删除T_CHENJCH_RISK表统计信息,让数据库通过动态取样实时的收据信息,但是执行计划没有变,还是走全表扫描,速度没有提高;

begin

  dbms_stats.delete_table_stats(ownname => 'CHENJCH', tabname => 'T_CHENJCH_RISK');

end;

尝试重新收集T_CHENJCH_RISK表统计信息,让数据库通过动态取样实时的收据信息,但是执行计划没有变,还是走全表扫描,速度没有提高;

begin

  DBMS_STATS.GATHER_TABLE_STATS('CHENJCH',

                                'T_CHENJCH_RISK',

                                estimate_percent => 100,

                                method_opt       => 'FOR ALL INDEXED COLUMNS',

                                degree           => 6,

                                CASCADE          => TRUE);

end;

为什么执行计划没有变?

(数据库版本Oracle 12.2.0.1.0)

因为SQL语句存在绑定变量,SQL文本没有变,导致执行计划也没有发生变化;

通过对表T_CHENJCH_RISK添加和删除注释,可以让数据库重新生成执行计划;

comment on column CHENJCH.T_CHENJCH_RISK.RISK_ID   is  'PK_T_CHENJCH_RISK';

comment on column CHENJCH.T_CHENJCH_RISK.RISK_ID   is  '';

查看新生成的执行计划,T_CHENJCH_RISK已经开始走主键索引了,速度有明显提升;

以上是“Oracle如何通过注释改变执行计划”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯