开发的系统要上线了,需要测试程序在1800万的一个表上的性能,结果一个简单的查询竟然要20多秒,这要的速度怎么能用呢?必须得找出原因,于是看查询条件上的字段有没有建索引,可明明建索引了,怎么还这么慢?于是以另外一个索引查询,才0.03秒多,啊,怎么差别这么大呢,在重建索引试试,还是不行,用sql分析器看看,执行快的用到了索引,慢的果然没用索引,百思不得其解,百度一下吧(谷歌总断线),看到一条信息,oracle会根据的判断使不使用索引,会不会就计算出此索引不用?于是使用analyze table ta compute statistics 试试,计算完后,再执行之前的sql,哇!0.03秒多,真是神了,小命令解决大问题!如果你遇到不使用情况,不防试一试
分享到:
相关推荐
在Oracle数据库中,为含有千万级别记录的大表创建索引是一项挑战性任务,尤其是对于那些处于高并发在线生产环境中的表。本文将详细介绍如何为一个核心大表(INFO_CUSTOMER)创建一个全局B树索引,并在此过程中尽可能...
### Oracle为何有时不使用索引来查找数据 Oracle数据库在处理SQL查询时,会根据一系列复杂的因素决定是否使用索引以及如何高效地检索数据。本文将深入探讨Oracle在哪些情况下可能会选择不使用索引的原因,并解释...
1. **重建索引的方式**:在Oracle中,重建索引通常不建议通过先删除再重新创建的方式来完成,因为这种方式不仅效率低下,而且在重建期间无法使用索引。相比之下,使用`REBUILD`命令进行索引重建更为高效。在重建过程...
在Oracle数据库中处理亿级数据量的表时,合理的索引设计是优化查询性能的关键因素之一。索引能够加快数据检索的速度,减少I/O操作次数,但同时也可能会增加插入、更新或删除操作的成本。因此,在大规模数据表上创建...
它是一个有索引节点的有序树,每一个节点包含一个或多个索引项。每个索引项对应于表中的 一行,它包含两个元素:行的索引列值(或数值集)与行的 RowID(或物理磁盘位置)。B-树索引为表中的每行包含一项,除非行的...
4. 避免冗余索引:不要为已有复合索引的列单独创建索引。 三、索引设计原则 1. 索引列的选择:选择经常出现在WHERE子句中的列。 2. 索引顺序:将最常筛选的列放在索引前面。 3. 数据分布:考虑列的基数(不同值的...
Oracle 分区与索引是数据库管理系统中用于优化大数据查询的关键技术。Oracle 分区是一种将大表和索引分成可管理的小部分,以提高查询效率、维护性和可用性。这种技术适用于处理海量数据,通过将数据分散到不同的存储...
通过上述步骤,我们不仅解决了Oracle导入时表空间不一致的问题,还确保了数据能够顺利地从源系统迁移到目标系统中。在实际操作过程中,需要注意细节处理,尤其是表空间名称的替换以及权限的调整,这些都是保证数据...
PCTFREE参数用来设置一个数据块中至少需要保留多少可用空间,以备块中已有数据更新时使用。PCTUSED参数用于决定一个数据块是否可被用于插入新数据,她的依据是数据区与数据块头的容量之和占数据块全部容量的最大...
总结,DML语句对Oracle 11g中的索引产生了显著的影响,主要体现在索引结构的改变、叶节点数量的变化、空间使用率的调整以及潜在的碎片化问题。了解这些影响有助于数据库管理员有效地管理索引,确保查询性能和数据库...
2. **隐式类型转换**:当索引列与不同数据类型的值进行比较时,可能会发生隐式类型转换,这会导致索引不被使用。确保比较操作两边的数据类型匹配,或者使用显式转换。 3. **不等于操作**:使用`<>`或`!=`操作符时,...
这个查询将返回索引名、表名、索引类型等详细信息,帮助你了解该表上已有的索引结构。 接下来,我们讨论如何创建索引。在Oracle中,有多种类型的索引,最常见的是B-Tree索引和位图索引。B-Tree索引适用于经常进行...
应尽量使用已建立索引的列进行排序,并避免在`ORDER BY`子句中使用复杂的表达式。 5. **NOT关键字**:使用`NOT`否定条件通常会导致优化器不使用索引。例如,`NOT IN`和`NOT EXISTS`子句可能比直接使用`IN`和`EXISTS...
由自己手敲代码已验证好用,里面有索引,存储过程,函数
在Oracle中,我们使用`CREATE TABLE`来创建新表,`ALTER TABLE`用于修改已有表的结构,如添加、删除或修改列,`DROP TABLE`用于删除表。另外,`TRUNCATE TABLE`可以快速清空表,但不记录删除操作,而`DELETE`则会...
Oracle数据库中的索引是提升查询性能的关键因素,但设计和管理索引也需要遵循一定的原则以确保最佳效果。以下是一些核心知识点: 1. **索引选择性**:选择性高的字段更适合建立索引,因为这样的字段能更好地区分...
本文将详细探讨在"Oracle使用中经常遇到的问题及解决办法",包括Oracle监听器错误、中文乱码问题、资源正忙的情况、修改Oracle端口以及数据库字符集问题,同时也会介绍如何在命令行下操作Oracle数据库。 首先,...
本文主要探讨了Oracle索引在数据查询中的应用,包括索引的基本概念、工作原理、使用场合以及优化策略。 首先,索引是一种特殊的数据结构,类似于书籍的目录,用于快速定位表中特定行的位置。Oracle使用B-Tree结构来...
### Java中Oracle操作绑定变量使用用户工具模块解决方案 #### 一、背景介绍 在Java开发过程中,特别是与Oracle数据库交互的应用场景中,SQL语句的编写及执行效率一直是开发者关注的重点之一。为了提高SQL语句的...