Oracle 创建索引
来源:互联网 发布:linux如何执行sql文件 编辑:程序博客网 时间:2024/06/06 19:01
怎样建立最佳索引?
1、明确地创建索引
create index index_name on table_name(field_name)
tablespace tablespace_name
pctfree 5
initrans 2
maxtrans 255
storage
(
minextents 1
maxextents 16382
pctincrease 0
);
2、创建基于函数的索引
常用与UPPER、LOWER、TO_CHAR(date)等函数分类上,例:
create index idx_func on emp(UPPER(ename)) tablespace tablespace_name;
3、创建位图索引
对基数较小,且基数相对稳定的列建立索引时,首先应该考虑位图索引,例:
create bitmap index idx_bitm on class (classno) tablespace tablespace_name;
4、明确地创建唯一索引
可以用create unique index语句来创建唯一索引,例:
create unique index dept_unique_idx on dept(dept_no) tablespace idx_1;
5、创建与约束相关的索引
可以用using index字句,为与unique和primary key约束相关的索引,例:
alter table table_name
add constraint PK_primary_keyname primary key(field_name)
using index tablespace tablespace_name;
如何创建局部区索引?
1)基础表必须是分区表
2)分区数量与基础表相同
3)每个索引分区的子分区数量与相应的基础表分区相同
4)基础表的自分区中的行的索引项,被存储在该索引的相应的自分区中,例如
create index TG_CDR04_SERV_ID_IDX on TG_CDR04(SERV_ID)
Pctfree 5
Tablespace TBS_AK01_IDX
Storage(
MaxExtents 32768
PctIncrease 0
FreeLists 1
FreeList Groups 1
)
local
/
如何创建范围分区的全局索引?
基础表可以是全局表和分区表
create index idx_start_date on tg_cdr01(start_date)
global partition by range(start_date)
(partition p01_idx vlaues less than ('0106')
partition p01_idx vlaues less than ('0111')
...
partition p01_idx vlaues less than ('0401'))
/
如何重建现存的索引?
重建现存的索引的当前时刻不会影响查询
重建索引可以删除额外的数据块
提高索引查询效率
alter index idx_name rebuild nologging;
对于分区索引
alter index idx_name rebuild partition partition_name nologging;
删除索引的原因?
1)不再需要的索引
2)索引没有针对其相关的表所发布的查询提供所期望的性能改善
3)应用没有用该索引来查询数据
4)该索引无效,必须在重建之前删除该索引
5)该索引已经变的太碎了,必须在重建之前删除该索引
语句:
drop index idx_name;
drop index idx_name partition partition_name;
建立索引的代价?
基础表维护时,系统要同时维护索引,不合理的索引将严重影响系统资源,
主要表现在CPU和I/O上。
插入、更新、删除数据产生大量db file sequential read锁等待。
- 创建Oracle索引,过犹不及
- 创建ORACLE索引
- Oracle索引创建原则
- oracle创建函数索引
- oracle 创建索引
- Oracle 创建索引分区
- Oracle创建全文索引
- oracle索引的创建
- oracle创建索引
- oracle创建索引
- Oracle索引的创建
- oracle 创建索引 规则
- oracle创建索引
- Oracle 创建索引语法
- oracle创建索引 .
- Oracle 创建索引分区
- Oracle 创建索引
- Oracle创建索引策略
- wpa_supplicant学习
- Weblogic 设置上下文根目录
- GridView绑定时通过RowDataBound事件获取数据源列值
- 新手求教贴 linux设备模型
- glCullFace,GL_CULL_FACE
- Oracle 创建索引
- SQL
- [asp.net]利用HttpRequest登录到某个网站,然后获取网站信息
- Linux 下 Broadcom BCM4312 的安装
- C#中使用DataGridView控件显示DataTable中的数据
- HashMap的相关笔记----创建HashMap
- This system is not registered with RHN
- Oracle+Entity Framework+WCF RIA Service+SilverLight4.0
- 每天一个linux命令(1):ls命令