ORACLE 数据库需要创建索引的规则

1、表的主键、外键必须有索引;

2、数据量超过300的表应该有索引;

3、经常与其他表进行连接的表,在连接字段上应该建立索引;

4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

5、索引应该建在选择性高的字段上;

6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:

A、正确选择复合索引中的主列字段,一般是选择性较好的字段;

B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;

C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;

D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;

E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;

8、频繁进行数据操作的表,不要建立太多的索引;

9、删除无用的索引,避免对执行计划造成负面影响;

以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。
因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也
会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性
能,特别是对频繁更新的表来说,负面影响更大

时间: 2024-10-16 09:52:27

ORACLE 数据库需要创建索引的规则的相关文章

Oracle数据库视图创建与处理方法教程

有关Oracle数据库视图创建与处理方法教程. 分享下oracle中创建视图与处理视图的方法,学习oracle视图的使用方法. 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 视图是存储在数据字典里的一条select语句.通过创建视图可以提取数据的逻辑上的集合或组合. oracle视图的优点:1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分.2.用

ORACLE数据库中创建、删除--同义词、视图、索引、序列

select * from emp; create synonym emp_ny for emp; create public synonym pub_emp_ny for employees;--创建公有同义词 DROP SYNONYM EMP_NY;--删除同义词 DROP PUBLIC SYNONYM PUB_EMP_NY;--删除公有同义词 查看已有同义词 SELECT * FROM SYS.ALL_SYNONYMS WHERE table_name='DIC_TRIPMODE'; CR

Oracle数据库之创建和删除数据库

创建数据库 1 使用Database Configuration  Assistant工具创建Oracle数据库 步骤一 操作窗口 有4种选择  A 创建数据库 B 配置数据库选件 C 删除数据库 D 管理模板 步骤二 数据库模板 窗口 有3种选择  A 一般用途或事务处理 B 定制数据库 C 数据仓库 步骤三 数据库标识 在这一步中,需要输入 全局数据库名 和 Oracle 系统标识符(SID) 全局数据名是Oracle 数据库的唯一标识,所以不能与已有的数据库重名 打开oracle数据库时,

Oracle数据库的创建启动和关闭

目的: (1) 掌握Oracle 11g数据库的创建与删除. (2) 掌握Oracle 数据库实例的启动和关闭. 内容: 一.创建数据库 1.规划数据库 2.使用Oracle 数据库配置助手创建数据库 3.使用SQL*Plus 脚本创建数据库 二.删除数据库 三.Oracle 数据库实例的启动和关闭 1.数据库启动的步骤 2.在SQL*Plus 中启动与关闭数据库 步骤: 一. 创建数据库 如果在安装Oracle系统时,如果选择不创建数据库,只是安装Oracle数据库服务器软件,在这种情况下,要

Oracle数据库的创建、数据导入导出

如何结合Sql脚本和PL/SQL Developer工具来实现创建表空间.创建数据库.备份数据库.还原数据库等操作,然后实现Oracle对象创建.导入数据等操作,方便我们快速了解.创建所需要的部署Sql脚本和数据库操作. 1.数据库创建脚本 首先使用dba身份登录数据库. /*删除表空间*/ --DROP TABLESPACE whc_tbs INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; --建立数据文件 create tablesp

Oracle数据库对象_索引

查询是在表上进行的最频繁的访问. 在查询数据时,很少有用户愿意查询表中的所有数据,除非要对整个表进行处理.一般情况下用户总是查询表中的一部分数据. 在SELECT语句中,通常需要通过WHERE子句指定查询条件,以获得满足该条件的所有数据.如果能够在很小的范围内查询需要的数据,而不是在全表范围内查询,那么将减少很多不必要的磁盘1/0 ,查询的速度无疑会大大加快.提供这种快速查询的方法就是索引. 索引的基本概念 索引是一种建立在表上的数据库对象,它主要用于加快对表的查询操作. 合理使用索引可以大大减

oracle数据库怎么创建数据库实例

最近进入了一个国家单位,用的是oracle数据库,因为本人之前没有安装过oracle数据库,现在分享一下. 首先我安装的oracle 11g版本的数据库,具体怎么安装的数据库,网上有很多教程,而且这个安装过程比较复杂,所以我就不赘述了. 我本篇记录的是如何从安装好的数据库中创建一个数据库实例,即新建一个数据库. 第一步:在开始菜单栏找到安装好的数据库文件,点击. 第二步: 第三步: 第四步: 第五步: 第六步: 第七步: 第八步: 第九步: 第十步: 第十一步: 第十二步: 第十三步:点击完成

Oracle 空间字段 创建索引

比如我们要给BASE_PASSENGER_STATION的geometry字段创建索引.具体语句如下. INSERT INTO user_sdo_geom_metadata(TABLE_NAME,COLUMN_NAME,DIMINFO,SRID)    VALUES('BASE_PASSENGER_STATION','GEOMETRY',MDSYS.SDO_DIM_ARRAY(                      MDSYS.SDO_DIM_ELEMENT('X',-180,180,0.0

数据库操作--创建索引

前段时间接到个任务,要在两秒内从1000万条数据中查询某一条数据是否存在.着实吓我一跳.1000万条数据!两秒!真的可以么?幸好师傅给指了条明路.可以考虑用表分区来实现.虽然不知道表分区是什么,但是最起码有一个方向了.然后就开始在网上搜索表分区的资料,看了看网上的资料,差不多都是一些建表分区的教程.但是我要建立的表分区和例子上又不一样,需要动态的建立表分区,这就难了.搞了半天没搞好.后来想起来春哥和游哥提到过以前他们在对数据库搜索数据的很慢,然后在数据库中加了索引以后,搜索提升了好几倍. 好,那