当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:20:00  来源:本站整理

Oracle SQL语句优化技术解析[MSSQL防范]

赞助商链接



  本文“Oracle SQL语句优化技术解析[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

操作符优化

IN 操作符

用IN写出来的SQL的长处是对比简单写及清楚易懂,这对比合适现代软件开辟的气势.

但是用IN的SQL性能老是对比低的,从Oracle履行的步骤来解析用IN的SQL与不用IN的SQL有以下辨别:

ORACLE试图将其转换成多个表的衔接,假如转换不成功则先履行IN里面的子查询,再查询外层的表记录,假如转换成功则直接采取多个表的衔接方法查询.由此可见用IN的SQL至少多了一个转换的历程.普通的SQL都可以转换成功,但关于含有分组统计等方面的SQL就不能转换了.

举荐筹划:在业务密集的SQL当中尽大概不采取IN操作符.

NOT IN操作符

此操作是强列举荐不利用的,因为它不能利用表的索引.

举荐筹划:用NOT EXISTS 或(外衔接+判断为空)筹划替换

<> 操作符(不等于)

不等于操作符是永久不会用到索引的,因此对它的处理只会产生全表扫描.

举荐筹划:用别的相同功效的操作运算替换,如

a<>0 改成 a>0 or a<0

a<>’’ 改成 a>’’

IS NULL 或IS NOT NULL操作(判断字段能否为空)

判断字段能否为空普通是不会利用索引的,因为B树索引是不索引空值的.

举荐筹划:

用别的相同功效的操作运算替换,如

a is not null 改成 a>0 或a>’’等.

不答应字段为空,而用一个缺省值替换空值,如业扩申请中状况字段不答应为空,缺省为申请.

成立位图索引(有分区的表不能建,位图索引对比难掌握,如字段值太多索引会使性能下降,多人更新操作会增添数据块锁的现象).

> 及 < 操作符(大于或小于操作符)

大于或小于操作符普通情形下是不用调整的,因为它有索引就会采取索引查找,但有的情形下可以对它举行优化,如一个表有100万记录,一个数值型字段A,30万记录的A=0,30万记录的A=1,39万记录的A=2,1万记录的A=3.那么履行A>2与A>=3的效果就有很大的辨别了,因为A>2时ORACLE会先找出为2的记录索引再举行对比,而A>=3时ORACLE则直接找到=3的记录索引.

LIKE操作符

LIKE操作符可以利用通配符查询,里面的通配符组合大概到达几近是肆意的查询,但是假如用得不好则会产生性能上的问题,如LIKE ‘%5400%’ 这种查询不会引用索引,而LIKE ‘X5400%’则会引用范围索引.一个实际例子:用YW_YHJBQK表中营业编号背面的户标识号可来查询营业编号 YY_BH LIKE ‘%5400%’ 这个条件会产生全表扫描,假如改成YY_BH LIKE ’X5400%’ OR YY_BH LIKE ’B5400%’ 则会操纵YY_BH的索引举行两个范围的查询,性能必定大大提高.

  以上是“Oracle SQL语句优化技术解析[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • SQL Server中利用Linkserver衔接Oracle的办法
  • Oracle数据库网络与安全FAQ精辟堆积
  • Ubuntu 9.10下安装Oracle10g
  • Ubuntu 10.04 下安装Oracle 11g
  • oracle盲注报错语句和oracle提权语句汇总
  • oracle中to_char、to_number、to_date的用法
  • Python模拟Oracle的SQL/PLUS工具的实现办法
  • Oracle数据库访谈之最年青的OCM访谈
  • oracle表数据误删复原
  • Oracle数据库笔记--表空间
  • Oracle数据库树形查询的代码示例
  • oracle中记录和调集
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .