Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > SQL查询语句优化指南
【标  题】:SQL查询语句优化指南
【关键字】:SQL
【来  源】:http://blog.csdn.net/kingspider/archive/2006/12/04/1430027.aspx

SQL查询语句优化指南

Your Ad Here

改进查询的目标是提高查询效率,改进查询要综合考虑多方面的因素,其基本点就是如何有效使用索引,没有有效利用索引的查询会造成全表扫描,当数据量很大时,查询效率十分低下,甚至是不可接受的。下面列出了常用的查询设计原则。

]     总体原则

查询优化器查看查询的每个字段,并决定对于限制需要扫描的数据量是否有用。如果一个字段可以被用作一个扫描参数(SARG),那么就称之为可优化的,并且可以利用索引快速获得所需数据。

扫描参数SARG的定义:用于限制搜索范围的一个操作,因为它通常是指一个特定的匹配,一个值的范围内的匹配,或者两个以上条件的AND连接。形式如下:

<列名> <操作符> <常数 变量>

<常数 变量> <操作符> <列名>

如果一个表达式不能满足SARG的形式,那它就无法限制搜索的范围了,所以索引对于不满足SARG形式的表达式来说是无用的。

]     Like语句是否属于SARG取决于所使用的通配符的类型

如:name like ‘张% ,这就属于SARG

而:name like %张’ ,就不属于SARG

原因是通配符%在字符串的开头使得索引无法使用。

]     NOT操作符、函数会导致不满足SARG形式的语句

不满足SARG形式的语句最典型的情况就是包括非操作符的语句,如:NOT!=<>!<!>NOT EXISTSNOT INNOT LIKE等,另外还有函数。例如:

     ABS(价格)<5000

     价格*2>5000

]     判断字段是否为空(is null is not null操作)一般是不会应用索引的,因为B树索引是不索引空值的;设计时可用一个缺省值代替空值。

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

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

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

]     字段之间的比较不会有效使用索引

例如,Task.UserExtString1 = EA_WSBMAIN.REFNO

因为这种形式不符合SARG定义

]     经测试,EXISTSIN OR,三者的效率差不多

    Select * from table1 where tid in (2,3)

   

    Select * from table1 where tid=2 or tid=3

]     经测试,count(*)不比count(字段)

综上所述,尽量改造成“<字段名> <操作符> <常量 变量的>”的SARG形式。 
如何在Oracle中设置自增长字段:【上一篇】
聚集索引和非聚集索引:【下一篇】
【相关文章】
  • 关于sqldatareader和sqlconnection
  • 安装MYSQL,并在netbeans中接连MYSQL
  • C#中结合使用SQLDMO实现备份、还原SQLserver数据库
  • 微软公司昨天发布SQL Server 2005 Samples and Sample Databases更新版——超过100个的SQL Serve...
  • php中mysql_pconnect()
  • 频繁对sqlite数据库操作,好象导致内存泄露
  • MS SQL SERVER 的一些有用日期
  • SQL的命令
  • MySQL优化经验
  • Solaris 10下架构MySQL + Apache + php 系统
  • 【随机文章】
  • SERV-U 6002版安全设置全攻略(2)
  • So far as I know -- Part I: Sending a wap push message via SMPP/CMPP(下)
  • 作为例子的一个单独的数据项
  • vpn创新安装步骤
  • ASP.net 2.0 自定义控件的开发之数据分页 第三章
  • 人生没有假如---送给大丁
  • 如何判断进度条是垂直还是水平
  • 挽救可怜的硬盘:逻辑坏道修复记
  • 公式宏解析
  • Solaris 8 设置终端 TTY
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.