1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
发表评论
-
(ZZ)Oracle约束的关键字Enable/Disable/Validate/Novalidate
2015-09-16 11:34 7731 组合特性说明 Validate ... -
快速创建分区表
2013-08-16 16:03 827create table test_partition pa ... -
自动创建分区
2013-08-14 17:46 0vv_Result := masamk.fun_add_ta ... -
Oracle 游标使用全解
2013-07-16 14:43 646-- 声明游标;CURSOR cursor_name IS ... -
(ZT)ROW_NUMBER() OVER函数的基本用法用法
2013-06-19 11:14 724转载 http://www.cnblogs.com/ice ... -
(转) ORACLE GROUPING函数的使用
2013-06-05 09:05 13495GROUPING函数可以接受一列,返回0或者1。如果列值为空 ... -
(转)oracle中LAG()和LEAD()等分析统计函数的用法(统计月增长率)
2013-05-25 18:10 729LAG()和LEAD()统计函数可以在一次查询中取出同一字段 ... -
PL/SQL 快捷键设置
2013-05-23 09:28 896se = select sf = select * fro ... -
分区表数据部分清空
2013-05-20 16:55 772alter table masadw.tb_dw_gc_gr ... -
用于理解join的例子
2013-05-17 13:48 711--第1组-- 这个相当于全关联,只显示两个都存 ... -
Oracle_AWR_报告分析实例讲解
2013-03-27 10:57 1363WORKLOAD REPOSITORY report f ... -
SYS用户登录的方法
2013-03-26 16:54 1096情况一:使用sqlplus登录正常输入用户名的口令,就会报错, ... -
Oracle更改默认端口
2013-03-25 15:24 934启动监听器[oracle@localhost ~]$ lsn ... -
利用oradata进行数据恢复
2013-03-20 18:07 972之前因为现场对方工程师的原因,把oracle其他文件夹都给格 ... -
Windows版Oracle完全卸载
2013-03-20 18:01 7601、停止服务 打开“服务”,然后停止所 ... -
Oracle硬拷贝数据迁移
2013-03-13 15:54 838Windows2003之前崩溃了,之后想恢复数据,将oracl ... -
Oracle中如何执行带返回参数的存储过程
2013-03-06 18:54 6786declare v_return_value num ... -
(ZZ)oracle与mysql的批量插入
2013-01-29 16:34 736oracle与mysql的批量插入 oracle 批量插入 ... -
(ZZ)Oracle Union/Union all 的排序问题
2012-09-03 14:14 1466Oracle 通过在索引列上使用UNION/UNION A ... -
存储过程中创建表时 ORA-01031: insufficient privileges的解决方法
2012-08-31 09:04 1163执行某个存储过程时报错:ORA-01031: insuffic ...
相关推荐
在Oracle数据库中处理亿级数据量的表时,合理的索引设计是优化查询性能的关键因素之一。索引能够加快数据检索的速度,减少I/O操作次数,但同时也可能会增加插入、更新或删除操作的成本。因此,在大规模数据表上创建...
在Oracle数据库中,有时我们需要对多个字段进行联合搜索,即多字段匹配一个关键字查询。本文将详细介绍两种在Oracle中实现这种查询的方法。 ### 一、使用管道符号(||)连接字段 这种方法通过使用Oracle中的字符串...
Oracle数据库在处理复合索引和空值时的行为是SQL优化中的一个重要知识点,特别是对于大型数据库系统来说,理解这些细节能够显著提升查询效率。本文将详细探讨Oracle如何处理含有空值的复合索引以及非空约束对索引...
《WEBHR9.0索引建立帮助文档》是...综上所述,WEBHR9.0系统的索引建立是一个结合业务需求、数据库特性和性能优化的综合过程。理解并遵循上述原则,将有助于构建高效、稳定的数据库环境,提升WEBHR系统的整体运行效率。
通过为同一个表定义不同的别名,可以实现这种关联,如`emp e, emp l`,其中`e`代表雇员,`l`代表领导。 7. 分步思考与解决策略: 面对复杂的多表查询,可以按照以下步骤进行: - 确定所需的数据表及其字段。 - 找...
Oracle数据库索引失效是一个常见的性能问题,它可能导致查询效率降低,影响系统的整体性能。索引失效可能是由多种原因引起的,理解这些原因并采取适当的预防措施至关重要。 首先,当WHERE子句中的条件筛选出的数据...
2. 字段(Field):字段是数据表中的一个列,它定义了特定数据类型和含义,比如姓名(String)、年龄(Integer)或日期(Date)。每个字段都有一个唯一的名称,用于标识其在表中的位置和功能。 3. SQL查询:获取...
- 在一个SELECT语句中,索引只能使用一次(如在WHERE中使用后,在ORDER BY中不再有效)。 - 在查询条件中使用不等于符号(包括<、>、!=)可能导致索引失效。 通过理解MySQL及其索引的基本概念,开发者可以更好地...
5. WHERE子句中常用的字段,尤其是大表的字段,需建立索引。 6. 尽量避免在过长的字段上建立索引。 建立索引可以显著提高查询速度,但过度索引可能导致插入、更新和删除操作的性能下降,因此平衡索引的利弊是关键。...
根据所提供的文件信息,无法提供具体的Oracle SQL知识点,因为文档内容主要是关于图书专营店的重复信息,并且其中并没有包含实际的Oracle SQL教学内容。...希望这可以为Oracle SQL的学习者提供一个全面的入门指南。
Oracle9i是一款由甲骨文公司推出的数据库管理系统,它的全称是Oracle9i Database,是Oracle数据库产品线中的一个重要版本。本教程“40057GC11 - Introduction to Oracle9i:SQL Basics Tutorial”旨在为初学者提供...
在Oracle数据库中,视图(View)是一种虚拟表,它的数据来源于一个或多个表的SQL查询结果。在这里,dw_cx可能是为了方便用户查看和检索学生信息,例如按姓名、学号等条件进行筛选和排序。 在PowerBuilder(PB)中,...
同时,建立联合索引需要谨慎,并且需要控制单表索引的数量。 关于表的空间及表的用户,规范也给出了建议,例如尽量规划在同一表空间,以及对大表的数据保留策略。触发器作为数据库的一个重要对象,其设计也需要遵循...
第五章连接查询是SQL中的重要概念,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)以及自连接,它们用于从多个表中联合提取数据,是处理复杂数据关系的关键。 第六章数据分组与第七章子...
- 联合索引命名时按创建顺序列出字段名,限制不超过3个字段。 - 索引名称长度不得超过30个字符。 **2.7 包命名** - 包命名根据用途区分: - 功能模块包命名格式为`PKG+_+模块名`。 - 个人功能或数据处理包命名...
例如,在本实例中,需要将 device_id、product_id 和 log_time 三个字段设置为联合索引。 知识点2:索引字段的选择 在设置索引时,需要选择合适的字段。除了 Group By 字段外,还需要考虑聚合函数用到的字段。例如...
本文将深入探讨如何利用Oracle来创建一个网上书店系统,包括数据库的设计、表的创建以及功能的实现。 首先,设计数据库是整个系统的基石。网上书店系统需要存储的信息包括书籍信息(如书名、作者、出版社、ISBN码)...
联合索引中,如果查询条件不是第一个字段,索引同样失效。对索引字段进行算术运算,使用不等于`!=`或`<>`,`NOT IN`,`IS NULL`或`IS NOT NULL`等操作,都可能导致索引失效。不同字符编码的表在JOIN时可能无法利用...
- **创建数据库链**:允许从一个数据库访问另一个数据库中的对象。 - **示例命令**: ```sql CREATE DATABASE LINK dbl_spnew CONNECT TO spnew IDENTIFIED BY spnew USING 'jhhx'; ``` ##### 12. 触发器管理...