Oracle函数中使用索引列时失效
发布时间:2020-12-12 18:45:23 所属栏目:百科 来源:网络整理
导读:本周在公司的时候,被领导分配一个任务,优化一个报错的SQL。 第一次做SQL优化,没有考虑太多,找到明显报错的地方,改正后,在测试环境测试了一下,发现速度不慢,于是发到生产上去。但是发到生产之后,发现效率十分低下,一个查询请求使得服务器应用挂起很
本周在公司的时候,被领导分配一个任务,优化一个报错的SQL。 第一次做SQL优化,没有考虑太多,找到明显报错的地方,改正后,在测试环境测试了一下,发现速度不慢,于是发到生产上去。但是发到生产之后,发现效率十分低下,一个查询请求使得服务器应用挂起很久,几个查询同时请求时,服务器应用就挂掉了。 于是向大神同事请教,同时马上把生产上效率低下的语句撤掉。大神开始分析,查看可以优化的地方,最后发现问题出在,表的一个列存在列索引的,但是在查询的时候没有用上索引!进一步分析,该列是在Oracle函数中使用的,Oracle函数中使用列的时候会使得索引列失效!于是,把SQL语句中使用列索引的函数,换一种方式实现,没有用到函数,然后在生产验证,查询速度神奇般的提升上来了。 教训:测试环境中没有问题的SQL不代表在生产环境中没有问题,还要多考虑一番~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |