天极Yesky
  • 笔记本电脑
    笔记本
  • 台式电脑
    台式机
  • 手机
    手机
  • 电脑硬件DIY
    DIY硬件
  • CPU
    主板
    音箱
  • 硬盘
    显卡
    键鼠
  • 内存光驱
    显示器
    机箱电源

  • 数码相机DC
    数码相机
  • MP3播放器
    MP3/MP4
  • 数码摄像机DV
    摄像机
  • 电脑外设
    外设
  • 网络
    网络
  • 服务器
    服务器
  • 数字家庭
    数字家庭
  • 群乐
    群乐
  • 产品报价 行情 商家 新闻 评测 | 软件 设计 网页 开发 安全 论坛 E时代 游戏 图片 壁纸 下载 网摘 博客 索尼专区 Vista 科技奥运
    天极网
    SQL语句优化技术分析(2)
    作者:
    出处: blog.csdn.net/yzsind
    责任编辑: 武扬
    [ 2005-02-26 00:00 ]


      SQL语句索引的利用

      对操作符的优化(见上节)

      对条件字段的一些优化

      采用函数处理的字段不能利用索引,如:

    substr(hbs_bh,1,4)=’5400’,优化处理:hbs_bh like ‘5400%’

    trunc(sk_rq)=trunc(sysdate), 优化处理:

    sk_rq>=trunc(sysdate) and sk_rq<trunc(sysdate+1)

      进行了显式或隐式的运算的字段不能进行索引,如:

    ss_df+20>50,优化处理:ss_df>30

    ‘X’||hbs_bh>’X5400021452’,优化处理:hbs_bh>’5400021542’

    sk_rq+5=sysdate,优化处理:sk_rq=sysdate-5

    hbs_bh=5401002554,优化处理:hbs_bh=’ 5401002554’,注:此条件对hbs_bh 进行隐式的to_number转换,因为hbs_bh字段是字符型。

      条件内包括了多个本表的字段运算时不能进行索引,如:

    ys_df>cx_df,无法进行优化

    qc_bh||kh_bh=’5400250000’,优化处理:qc_bh=’5400’ and kh_bh=’250000’

     

      应用ORACLE的HINT(提示)处理

      提示处理是在ORACLE产生的SQL分析执行路径不满意的情况下要用到的。它可以对SQL进行以下方面的提示

      目标方面的提示:

      COST(按成本优化)

      RULE(按规则优化)

      CHOOSE(缺省)(ORACLE自动选择成本或规则进行优化)

      ALL_ROWS(所有的行尽快返回)

      FIRST_ROWS(第一行数据尽快返回)

      执行方法的提示:

      USE_NL(使用NESTED LOOPS方式联合)

      USE_MERGE(使用MERGE JOIN方式联合)

      USE_HASH(使用HASH JOIN方式联合)

      索引提示:

      INDEX(TABLE INDEX)(使用提示的表索引进行查询)

      其它高级提示(如并行处理等等)

      ORACLE的提示功能是比较强的功能,也是比较复杂的应用,并且提示只是给ORACLE执行的一个建议,有时如果出于成本方面的考虑ORACLE也可能不会按提示进行。根据实践应用,一般不建议开发人员应用ORACLE提示,因为各个数据库及服务器性能情况不一样,很可能一个地方性能提升了,但另一个地方却下降了,ORACLE在SQL执行分析方面已经比较成熟,如果分析执行的路径不对首先应在数据库结构(主要是索引)、服务器当前性能(共享内存、磁盘文件碎片)、数据库对象(表、索引)统计信息是否正确这几方面分析。

    笔名:
    请您注意:

     遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

     天极网拥有管理笔名和留言的一切权利。
    相关内容

  • 内存优化工具大比拼(2005-03-04 09:59)