`
luodaijun
  • 浏览: 3444 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

SQL语句索引不能使用的一些情况

SQL 
阅读更多
先不论索引是否被滥用,今天只谈虽然建立了索引,但不同的SQL语句写法,用不上的问题

看看下面这颗树,就知道索引用不了的原因了

               a
            ab  ad
         abc     adm
      abcd        admn


1. not 用不了索引
2. <> 用不了索引
3. 与null值比较用不了索引
4. like ,  select * from emp where ename like 'luo%' --能用上
           select * from emp where ename like '%dai' --不能
5. 查询字段使用了函数
   select * from emp where to_char(reg_date,'yyyy')='2009'
   当然,还包括了||连接符,对查询字段做运算等,如: where age+1=30

   解决办法,使用FBI(基于函数的索引)

6. 多个字段建立组合索引
  
   如对班号,姓名建立索引,并且班号在前
  where class_no='200105302'  and stu_name= '罗某'  --可以用索引
  where class_no='200105302'                        --可以
  where stu_name='罗某'                             --不可以
  原因和like类似

7. 注意数据类型隐式转换的问题
  如service_type字段,数据库表里varchar2类型,但是像下面这样写
  where service_type=82  --用不了,隐式类型转换
分享到:
评论
2 楼 1zebra 2010-04-12  
顶一个  写的真不错 
1 楼 tedeyang 2009-05-11  
不错,很有价值的介绍。其中的隐式类型转换

相关推荐

    索引的SQL语句优化

    5. **尽量去掉"&lt;&gt;"**:不等于操作符(`&lt;&gt;`)通常难以使用索引进行优化,因为它不能确定一个明确的方向,应尽可能替换为范围查询。 6. **去掉Where子句中的ISNULL和ISNOTNULL**:直接使用`NULL`值进行比较通常更高效...

    数据库 创建索引 sql oracle

    * 唯一索引:要求创建索引的关键字段值在表中不能有重复值。 * 复合索引:对表创建的索引是基于多个字段对表中的记录排序的。 索引的创建 ------------ 创建索引可以使用 Enterprise Manager、Transact-SQL 语句和...

    sqlserver管理索引优化SQL语句

    sqlserver管理索引优化SQL语句

    SQL语句索引优化_sql索引降龙十八掌(Oracle)

    在数据库管理领域,SQL语句的索引优化是提高数据查询效率的关键技术,尤其是在大型企业级应用中。本文将深入探讨Oracle数据库中的索引优化原则和方法,这些原则和方法同样适用于其他数据库系统。让我们一起领略"SQL...

    SQLserver索引创建语句.txt

    SQLserver索引创建语句

    SQL 执行超长语句

    在数据库管理与开发过程中,编写SQL语句是必不可少的一环。有时,我们可能会遇到需要执行非常长的SQL语句的情况。这些超长语句可能由于包含大量的条件、子查询或是数据量较大等原因而变得异常复杂。本文将围绕“SQL...

    压测Oracle的SQL语句的性能情况

    1. **SQL优化**:优化SQL语句是提升性能的关键,包括避免全表扫描,使用索引,减少子查询,合理使用连接方式等。 2. **绑定变量**:使用绑定变量可以防止硬解析,提高SQL执行效率,减少解析开销。 3. **执行计划**...

    SQLTracker,抓取sql语句的工具

    SQLTracker是一款专为数据库操作监控设计的工具,它在IT领域中主要用于跟踪和记录SQL语句的执行情况。SQL(Structured Query Language)是用于管理关系数据库的编程语言,包括查询、更新、插入和删除数据等操作。SQL...

    sql语句、动态SQL语句基本语法

    在数据库管理系统(如MySQL、Oracle、SQL Server等)中,SQL语句是不可或缺的一部分。 1. SQL基础语法 SQL的基础语法包括SELECT、INSERT、UPDATE、DELETE四大语句,它们分别用于查询、插入、更新和删除数据。 - ...

    SQL 语句大全 SQL 语句大全

    学习并熟练掌握这些SQL语句将使你能够高效地操作和管理数据库,无论是在开发、数据分析还是数据库管理领域,SQL都是不可或缺的基础技能。通过"SQL 语句大全"文档,你可以深入理解并实践这些知识点,提升自己的数据库...

    通过分析SQL语句的执行计划优化SQL

    * 可以使用SQL语句的执行计划获取SQL语句的执行路径 五、如何分析执行计划 * 分析执行计划可以了解SQL语句的执行过程 * 分析执行计划可以了解SQL语句的性能瓶颈 * 分析执行计划可以了解SQL语句的优化空间 六、...

    Oracle数据库sql语句 跟踪器

    6. **优化建议**:根据SQL语句的执行情况,提供优化建议,如索引调整、查询改写等。 7. **报告生成**:自动生成SQL监控报告,方便分享和存档。 8. **警报设置**:设定性能阈值,当SQL执行超时或资源消耗过大时,...

    SQL语句优化,编写搞笑的sql语句

    6. 不要索引只出现在带有函数或操作符的WHERE子句中的列,因为这些情况通常不使用索引。 7. 对于有大量并发DML操作的父子表,考虑为外键创建索引,以减少锁的级别并提高性能。 选择单列索引还是复合索引取决于查询...

    泛微系统SQL语句大全

    **泛微系统SQL语句大全** 在IT行业中,泛微系统是一种广泛应用的企业级协同办公软件,主要用于提升组织的管理效率和工作流程自动化。本资源集合了泛微系统中与SQL Server数据库交互时常用的各种SQL语句,涵盖了组织...

    SQLserver查看索引列语句.txt

    SQLserver查看索引列语句

    Oracle高效SQL语句原则

    5. 通配符(%)在搜寻词首出现,所以 Oracle 系统不使用索引 在使用通配符(%)时, Oracle 系统不会使用索引,因为通配符会导致索引失效。 6. 任何在 Order by 语句的非索引项或者有计算表达式都将降低查询速度 ...

    sqlserver自动生成sql语句工具sqlserver转oracle

    本篇文章将详细探讨如何利用工具实现SQL Server自动生成SQL语句并转换到Oracle。 首先,标题中的"sqlserver自动生成sql语句工具"指的是可以分析SQL Server数据库结构和数据,自动生成对应的SQL创建语句的软件。这种...

    Effective MySQL之SQL语句最优化.pdf

    4. SQL语句优化相关原理:优化原理包括但不限于查询语句的分析、索引的使用、表结构的合理设计、数据的存储方式、事务的管理、锁机制等。 5. 查询语句的分析:分析SQL语句是为了找出可能影响性能的部分,如慢查询。...

    SQL语句语法

    SQL语句是结构化查询语言(Structured Query Language)的简称,是用于管理和处理关系数据库的标准语言。本篇文章将深入探讨SQL语句的基本语法,包括数据定义、数据操作、实用工具、事务处理和锁定、数据库管理、...

Global site tag (gtag.js) - Google Analytics