ITPub博客

首页 > 数据库 > 数据库开发技术 > oracle开发学习笔记一之索引

oracle开发学习笔记一之索引

原创 数据库开发技术 作者:jionjionyoushen 时间:2013-05-16 14:57:03 0 删除 编辑

创建索引:

1、单列索引

Create index name_index on 门诊费用记录(id)

2、复合索引

同一张表可以有多个索引,但是要求列的组合必须不同,例如:

Create index emp_id on emp(ename,job);

Create index emp_id on emp(job,ename);

搜索是按照从后往前的顺序查找到,所以建立索引时,应按照列的区分度创建


创建原则:

1、在大表上创建索引才有意义;

2、在where子句或是连接条件上,经常引用的列上建立索引;

3、索引的层次不要超过4层。


索引的优点和缺点:

优点:

1、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

2、可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

3、可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

4、在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

5、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

缺点:

1、占硬盘和内存空间;

2、更新(增删改)数据时,索引要动态维护,系统需要额外的时间和资源参与维护,以维持数据和索引的一致性;




如何查看索引:

显示表上包含的所有索引:

查询数据字典视图dba_indexs(数据库所有索引)和user_indexs(当前用户的索引)


Select index_name,index_type from user_indexs where table_name='表名';

例如:

select * from user_indexes where table_name='门诊费用记录'

 

显示索引中的列:

查询数据字典视图user_ind_columns

Select table_name,column_name from user_ind_columns where index_name='IND_NAME';

例如:

Select * from user_ind_columns where index_name in('门诊费用记录_IX_登记时间','门诊费用记录_IX_医嘱序号')

 

也可以的通过PLSQL查看



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27025927/viewspace-761370/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: dba 初来乍到
请登录后发表评论 登录
全部评论

注册时间:2013-02-28

  • 博文量
    14
  • 访问量
    66523