加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

由索引未被使用,看SQL开发规范落地

发布时间:2021-01-16 07:49:31 所属栏目:安全 来源:网络整理
导读:副标题#e# 《由索引未被使用,看SQL开发规范落地》要点: 本文介绍了由索引未被使用,看SQL开发规范落地,希望对您有用。如果有疑问,可以联系我们。 作者介绍 王科,新炬网络架构师.Oracle OCM,10年以上运维管理经验,擅长运维服务与运维工具的融合应用,在数

SQL语句的逻辑改写很重要,往往通过逻辑改写就能改变SQL的执行计划,从不好的计划到好的计划,比如semi join,anti join与or,往往走FILTER导致执行计划较差,这时候就需要通过逻辑等价改写.逻辑等价改写往往需要掌握一些集合的知识,比如NOT (A AND B)==NOT A OR NOT B,NOT (A OR B)==NOT A AND NOT B等.

总结

SQL有索引而不走索引的情况还有很多,比如在DBLINK查询中,可能走不了索引,这时候需要通过driving_site hint或者远程库建立视图等方式解决等,需要综合从语法语义、索引选择性、索引访问特点等多方面进行分析.

二、如何将SQL开发规范落地

上面说到的问题,说到底都是不遵守数据库开发规范的问题.说到数据库开发规范,估计很多企业都有制定对应的规范及要求,但说到落地执行情况,这个就比较困难了.如果企业在意旨上是期望开发人员去学懂规范,然后学以致用,就有点太理想化了.于是,为了保证开发人员真的是按照数据库开发规范来编写代码,很多企业就在应用上线前增加了一道SQL上线审核的工序.

说到SQL上线审核,关键要解决三个问题:

1、如何在上线的应用版本中发现新增的SQL语句;

2、新增SQL存在哪些问题,如何快速准确的定位;

3、对于问题SQL,如何快速提供优化方案.

这三个问题,是一环扣一环的,解决不了前面的问题,就无从解决后面的问题.然而,应用系统SQL众多,如果单靠人工,难度是很大的,专家资源投入就更不说了,显然不能满足当今IT系统高速发展的需要.

这里跟大家分享我们在这方面的一些实践和成果.通过结合多年的运维和优化经验,我们自主研发了SQL审核工具,不仅可以自动化完成SQL上线审核,还可以做到SQL的性能监控和自动优化,达到SQL全生命周期管理的效果.对于SQL上线审核,我们将开发规范规则化后落到SQL审核平台,内置了4个维度、200多种常见的审查规则,还支持灵活的按需添加规则.同时,审查的不只是SQL语句本身,还包括了对表的模型设计、索引的构建.

 

在应用新版本上线前,通过SQL审核平台,自动分析出版本的新增SQL,基于以上规则对新增SQL进行审查,并自动提供优化建议,可生成可视化的报表和详细报告.不管是DBA还是开发人员都可以基于此平台,对问题进行确认和解决,实现系统优化前移、提升应用版本质量的目标.

 

三、总结

本文主要和大家分享了SQL无法走索引的一些常见情景及解决方法,当然,SQL的规范化使用是十分重要的,SQL的优化也不仅仅局限于索引的优化.所以,只有平时多积累,结合理论多实践,遇到问题时才能运筹帷幄,对症下药、药到病除.另外,企业在IT建设中要重视开发规范的落地执行,必要时使用合适的工具,在加速IT环境建设效率的同时,还能兼顾到IT系统的建设质量,做到两不误.

文章来自微信公众号:DBAplus社群

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!