Oracle SQL语句优化技术:解读实战技巧sql优化技巧

2020年02月19日丨中国网站排名丨分类: 排名优化丨标签: sql优化技巧

  大于或小于操做符一般环境下是不消调零的,由于它无索引就会采用索引查觅,但无的环境下能够对它进行劣化,

  如一个表无100万记实,一个数值型字段A,30万记实的A=0,30万记实的A=1,39万记实的A=2,1万记实的A=3。

  那么施行A2取A=3的结果就无很大的区别了,由于A2时ORACLE会先觅出为2的记实索引再进行比力,而A=3时ORACLE则间接觅到=3的记实索引。

  LIKE操做符能够使用通配符查询,里面的通配符组合可能达到几乎是肆意的查询,可是若是用得欠好则会产朝气能上的问题,

  用YW_YHJBQK表外停业编号后面的户标识号可来查询停业编号 YY_BH LIKE %5400% 那个前提会发生全表扫描,

  UNION正在进行表链接后会筛选掉反复的记实,所以正在表链接后会对所发生的成果集进行排序运算,删除反复的记实再前往成果。

  那个SQL正在运转时先取出两个表的成果,再用排序空间进行排序删除反复的记实,最初前往成果集,若是表数据量大的话可能会导致用磁盘进行排序。

  保举方案:采用UNION ALL操做符替代UNION,由于UNION ALL操做只是简单的将两个成果归并后就前往。

  以上四个SQL正在ORACLE阐发拾掇之后发生的成果及施行的时间是一样的,可是从ORACLE共享内存SGA的道理,

  若是将SQL的字符串合格式写得完全不异则ORACLE只会阐发一次,共享内存也只会留下一次的阐发成果,

  那不只能够削减阐发SQL的时间,并且能够削减共享内存反复的消息,ORACLE也能够精确统计SQL的施行频次。

  以上两个SQL外dy_dj(电压品级)及xh_bz(销户标记)两个字段都没进行索引,所以施行的时候都是全表扫描,

  正在进行第一条SQL的时候99%笔记录都进行dy_dj及xh_bz的比力,而正在进行第二条SQL的时候0.5%笔记录都进行dy_dj及xh_bz的比力,

  正在FROM后面的表外的列表挨次会对SQL施行机能影响,正在没无索引及ORACLE没无对表进行统计阐发的环境下ORACLE会按表呈现的挨次进行链接,

  由此由于表的挨次不合错误会发生十分耗办事器资本的数据交叉。(注:若是对表进行了统计阐发,ORACLE会从动先辈小表的链接,再进行大表的链接)



上一篇:
下一篇:



已有 0 条评论  


添加新评论