包你学会怎么在oracle中建立索引
查询某张表中哪些字段创建了索引:
select user_ind_columns.index_name,user_ind_columns.column_name,
user_ind_columns.column_position,user_indexes.uniqueness
from user_ind_columns,user_indexes
where user_ind_columns.index_name = user_indexes.index_name
and user_ind_columns.table_name = '表名';
删除索引
使用ALTER TABLE 语句删除索引
alter table 表名 drop index 索引名
使用DROP INDEX 语句删除索引
drop index 索引名 on 表名
不适合创建索引
1、较频繁的作为查询条件的字段应该创建索引.
2、唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
3、更新非常频繁的字段不适合创建索引
大多数场景下比较适合:
1、对于单键索引,尽量选择针对当前查询过滤性更好的索引;
2、在选择组合索引的时候,当前查询中过滤性最好的字段在索引字段顺序中排列越靠前越好;
3、在选择组合索引的时候,尽量选择可以能够包含当前查询的where子句中更多字段索引;
4、尽可能通过分析统计信息和调整查询的写法来达到选择合适索引的目的而减少通过使用Hint人为控制索引的选择,因为这会是后期的维护成本增加,同时增加维护所带来的潜在风险。
建议:
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
1、创建表的时候同时建立索引
语法
CREATE INDEX index_name
ON { table | view } ( column )
]
create table t1(id int not null,
name char(30) not null,
unique index UniqIdx(id)
)
2、在原有的表上建立索引
使用ALTER TABLE 语句创建索引
1.执行语句
alter table book add index BkName(bookname(30))
2.show index 查看表中索引 --- 可以看到新增了一个索引 :show index from 表
创建唯一索引: alter table 表 add index uniqidx(列)
使用CREATE TABLE 语句创建索引
创建普通索引:
create index BkNameIdx on book(bookname)
创建唯一索引:
create unique index UniqIdx on book(bookId)
包你学会怎么在oracle中建立索引相关推荐
- oracle加强制索引,Oracle中建立索引并强制优化器使用
当WHERE子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引. 通常情况下,如果在WHERE子句中不使用诸如UPPER.REPLACE 或SUBSTR ...
- oracle 视图能建索引吗,Oracle视图中建立索引注意事项.doc
Oracle视图中建立索引的注意事项 在视图上创建索引需要三个条件:一.视图必须绑定到架构.要做到这点,在?CREATE?VIEW?语句中,必须加上?WITH?SCHEMABINDING,如果是使用企 ...
- Oracle中加速索引创建或重建的方法
Oracle中加速索引创建或重建的方法 View more documents from Maclean Liu
- solr从pdf、office文档中建立索引
2015年05月28日 ⁄ hadoop ⁄ 评论数 1 使用solr从pdf.office文档中建立索引和从数据库中建立相似,只不过这里需要tika来解析这些文档.8.1 配置一个handler 这 ...
- [转载] 使用Python在Pandas Dataframe中建立索引
参考链接: 用Pandas建立索引并选择数据 In Numpy arrays, we are familiar with the concepts of indexing, slicing, and ...
- oracle如何组合索引,Oracle中组合索引的使用
Oracle中组合索引的使用 Oracle中组合索引的使用 一.什么是索引? 数据库索引类似一本书的目录,目录中将书的内容先分为第一层(第一章.第二章--第N章的标题和对应页码),第二层(1.1XXX ...
- 计算机二级vf索引建立,计算机二级VFP辅导:在VFP中建立索引文件的方法
考试大编辑整理: 在VFP中建立索引文件的方法 1.用命令建立索引 命令格式是: INDEX ON(索引表达式) TO] [FOR(条件)][c()MPACT][ASCENI)ING l I)ESCE ...
- oracle中dblink怎么用,Oracle中建立了dblink怎么使用
Oracle应用服务器OS 1.查看数据库的global_name SELECT * FROM GLOBAL_NAME; 2.查看global_name参数是true还是false show para ...
- oracle中的index函数,Oracle中的索引详解(整理)
一. ROWID的概念 存储了row在数据文件中的具体位置:64位 编码的数据,A-Z, a-z, 0-9, +, 和 /, row在数据块中的存储方式 SELECT ROWID, last_name ...
最新文章
- java void传参,Java中的传参
- CodeSmith注册机,支持5.2.2和5.2.1版
- Python eclipse开发环境搭建
- git 查看pop内容_原创 | 有了Git这个操作,我再也不怕代码混乱了!
- WebStorm学习笔记002---grunt-watch插件的使用-修改html,css,js文件实现自动编译更新
- Code-First将多个实体映射到一张数据库表
- Linux -chattr -隐藏权限(附加权限)
- Golang-PKCS8
- 引用阿里图标库(iconFont)的三种方式
- 【场景化解决方案】OA审批与金蝶云星空集成
- Unbuntu下U盘突然权限只读,无法重命名和复制粘贴文件的问题修复
- “一晚上” 拿到阿里offer的详细准备经历
- 哈夫曼树和哈夫曼编码
- 快速干净卸载Oracle
- 手机和电脑在局域网下快速传递文件,隐私保证,快速搭建一个FTP
- AHCI VS IDE 把我整疯了。。。
- Android必知必会--NinePatch图片制作
- 计算机科学与技术前沿讲座心得体会,技术学习心得体会范文(精选10篇)
- 利用ntp服务同步时间(史上最简单)
- ERP系统与PLC数据对接方法