使用索引来更快地遍历表。默认情况下建立的索引是非聚集索引,但有时它并不是最佳的。在非聚集索引下,数据
在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:
有大量重复值且经常有范围查询(between,>,<,>=,< =)和order by、group by发生的列,可考虑建立聚集索引。
经常同时存取多列,且每列都含有重复值可考虑建立组合索引。
组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。
ORDER BY和GROPU BY:使用ORDER BY和GROUP BY短语,任何一种索引都有助于SELECT的性能提高。注意如果索引列中
有NULL值,Optimizer将无法优化。
IN、OR子句常会使用工作表,使索引失效。如果不产生大量重复值,可以考虑把子句拆开,拆开的子句中应该包含索
引。
用聚集索引比用非聚集索引的主键速度快。
用聚集索引比用一般的主键做order by时速度快,特别是在小数据量情况下。 1、操作符优化(同上)  
 
  2、对条件字段的一些优化   
任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等,查询时要尽可能将操作移至等号右边。
  采用函数处理的字段不能利用索引,如:      substr(hbs_bh,1,4)=’5400’,优化处理:hbs_bh like ‘5400%’      trunc(sk_rq)=trunc(sysdate), 优化处理:sk_rq>=trunc(sysdate) and sk_rq   进行了显式或隐式的运算的字段不能进行索引,如:ss_df+20>50,优化处理:ss_df>30   
  
  sk_rq+5=sysdate,优化处理:sk_rq=sysdate-5      hbs_bh=5401002554,优化处理:hbs_bh=’5401002554’,注:此条件对hbs_bh 进行隐式的to_number转换,
因为hbs_bh字段是字符型。      条件内包括了多个本表的字段运算时不能进行索引,如:ys_df>cx_df,无法进行优化 

SQL优化技术分析-3:SQL语句索引的利用的更多相关文章

  1. SQL优化技术分析-1:操作符优化

    1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL 性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有 ...

  2. SQL优化技术分析-2:SQL书写的影响

    1.同一功能同一性能不同写法SQL的影响. 如一个SQL在A程序员写的为 Select * from zl_yhjbqk B程序员写的为 Select * from dlyx.zl_yhjbqk(带表 ...

  3. SQL优化技术分析-4:其他

    ORACLE的提示功能是比较强的功能,也是比较复杂的应用,并且提示只是给ORACLE执行的一个建议,有时如果 出于成本方面的考虑ORACLE也可能不会按提示进行.根据实践应用,一般不建议开发人员应用O ...

  4. [转]SQL语句优化技术分析

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  5. SQL语句优化技术分析

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  6. SQL语句优化技术分析 整理他人的

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  7. SQL优化-如何分析性能瓶颈

    MySQL优化一览图 笔者将优化分为了两大类:软优化和硬优化.软优化一般是操作数据库即可:而硬优化则是操作服务器硬件及参数设置. 1.软优化 1)查询语句优化 首先我们可以用EXPLAIN或DESCR ...

  8. Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)

    转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问对于可以静态化的页面,尽可能静态化对一个动态页面中可以静态的局部,采用静态化部分数据可以生成XML,或者文本文件 ...

  9. 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )

    SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...

随机推荐

  1. Atitti 载入类的几种方法    Class.forName ClassLoader.loadClass  直接new

    Atitti 载入类的几种方法    Class.forName ClassLoader.loadClass  直接new 1.1. 载入类的几种方法    Class.forName ClassLo ...

  2. C#,.Net 学习资源

    原文:http://blog.csdn.net/chinacsharper/article/details/17514923一.网站1.http://msdn.microsoft.com/zh-CN/ ...

  3. 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?

    在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,比如 110,98,99 ALTER PROC [dbo].[Proc_totalS ...

  4. 【Win 10 应用开发】Web授权示例:获取新浪微博的授权码

    在使用类似微博的开放API的时候,会涉及到授权的问题,就拿微博来说,当用户在你的应用中需要调用微博API来处理一些事情时,你首先要让用户登录微博,得到用户授权后,才能调用微博API. 授权通常通过一个 ...

  5. 透视 HTML子元素的margin-top样式会应用在父元素上的原由

    情况说明 当对页面中元素设置margin-top样式时,如果该元素有父元素,则margin-top会应用与父元素,子元素的top与父元素的top重叠.举例说明 <style>body{ma ...

  6. 慕课网H5圣诞主题

    继七夕之后,我又出了一个圣诞主题的课程.圣诞主题是基于HTML5+CSS+JS编写与实现的,同时也是七夕主题的故事延续.圣诞主题依旧延续着七夕主题设计的思路,引入了3个经典的场景页面,在每个场景中表述 ...

  7. Android学习路线

    第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化 ...

  8. MUI跨域请求数据的例子:

                <,                     ,                 success: function(data) {                    ...

  9. Chrome调试中的奇技淫巧

    网上有关Chrome调试的文章一搜一大堆,本文主要记录一下自己平时经常用并且又比较冷门的一些技巧. 打开Chrome调试工具 1.打开控制台的情况下,长按页面的“刷新”按钮可以选择按何种方式刷新(有正 ...

  10. Cesium原理篇:GroundPrimitive

    今天来看看GroundPrimitive,选择GroundPrimitive有三个目的:1 了解GroundPrimitive和Primitive的区别和关系 2 createGeometry的特殊处 ...