管理索引
1)索引是用于加速数据存取的数据库对象。通过使用索引,可以降低i/o次数,提高数据访问性能。
按索引数据的存储方式:B*树索引、反向索引、位图索引
按索引列的个数:单列索引、复合索引
按索引列值惟一性:惟一索引、非惟一索引
a)单列索引和复合索引
单列索引是基于单个列所建立的索引;复合索引是基于二列或多列所建立的索引。B*树索引列的个数不能超过32列,位图索引列的个数不能超过30列。可以在同一张表上建立多个索引,但要求列的组合不同。
create index emp_idx1 on emp (ename,job);
b)惟一索引和非惟一索引
惟一索引是索引列值不能重复的索引;非惟一索引是索引列值可以重复的索引。无论是惟一索引还是非惟一索引列都允许为null。当定义主键约束或惟一约束时,oracle会自动在相应的约束列上建立惟一索引。
2)索引管理指导方针
a)装载数据后建立索引
b)索引正确的表和列
c)索引应该建立在where子句经常引用的表列上。如果在大表上频繁使用某列或几列作为条件执行检索操作,并且检索行数低于总行数15%,那么应该考虑在这些列上建立索引
d)为了提高多表连接的性能,应该在连接列上建立索引
e)不要在小表上建立索引
f)如果经常需要基于某列或某几列执行排序操作,那么通过在这些列上建立索引,可以加快数据排序的速度。
g)限制表索引的个数
3)删除不再需要的索引
a)删除小表上建立的索引。如果表很小,使用索引不会加快查询速度
b)删除查询语句不会引用的索引。如果在某列或某几列上建立索引,但这些不会在where子句中引用,那么应该删除相应的索引。
4)建立索引
Ø 建立B*树索引
如果在wehre子句中经常引用某列或几列,应该基于这些列建立B*树索引。
SQL>create index ind_ename on emp(ename) pctfree 30 tablespace user02
Ø 使用B*树索引
建立B*树索引后,如果在where子句中引用索引列,oracle会根据统计信息确定位是否使用B*树索引定位表行数据。
SQL>set autotrace on explain
SQL>select * from emp where ename=’scott’;
1) 建立位图索引
B*树索引建立在重复值很少的列上,而位图索引建立在重复值很多、不同值相对固定的列上,使用位图索引可以节省大量磁盘空间,其占用空间仅仅是在相同列上建立B*树索引所用空间的1/20~1/10.建立位图索引时,oracle会基于每个不同值建立一个位图。
建立位图索引:create bitmap index idx_gender on customers(cust_gender);
初始化参数create_bitmap_area_size用于指定建立位图索引时分配的位图区尺寸,默认值8M,该参数越大,建立位图索引速度越快。
修改该参数的示例如下:
alter system set create_bitmap_area_size=8388608 scope=spfile;
2) 建立反向索引
create index customers_pk on customers(cust_id) reverse;
3) 修改索引
a) 修改索引段存储参数
存储参数initial、minextents是不能修改的,而修改其他存储参数只对新分配的区起作用
alter index upper_ename storage(next 200k maxentents 50);
b) 分配和释放索引空间
当使用sql*loader或insert给表装载数据时,也会为索引填加数据。如果索引段空间不足,将导致动态扩展索引段。
alter index deparment_dname allocate extent(size 1m);
释放多余空间
alter index department_dname deallocate unused;
c) 重建索引
执行delete操作时,会删除表的数据,但在索引上仅仅进行逻辑删除,其所占用的空间不能供其他插入操作使用。如果在索引列上频繁执行update或delete操作,应该定期重建索引,以提高其空间利用率。
alter index department_dname rebuild;
d) 联机重建索引
使用rebuild选项重建索引时,如果其他用户正在表上执行dml操作,那么重建索引将失败。为了最小化dml操作的影响,重建索引时,可以使用rebuild online选项。
alter index department_dname rebuild online;
4) 删除索引
drop index department_dname;
5) 显示表的所有索引
SQL>select index_name,index_type,uniqueness from dba_indexes
where owner=’scott’ and table_name=’emp’;
分享到:
相关推荐
使用NAVICAT工具创建和管理索引 数据索引 课程目标 掌握 —— 通过NAVICAT工具在创建表时创建索引的方法; 掌握 —— 通过NAVICAT工具在现存表中创建索引的方法; 掌握 —— 通过NAVICAT工具删除索引的方法。 使用...
sqlserver管理索引优化SQL语句
Elasticsearch+thinkphp5.1后台管理索引和文档+权限管理,可查看https://blog.csdn.net/weixin_39934453/article/details/120097526
管理索引PPT学习教案.pptx
Oracle管理索引、权限和角色.doc
Oracle管理索引、权限和角色复习过程.pdf
1.索引的创建与使用 2.创建索引的原则 3.索引的分类 4.创建索引的多种方法 5.管理索引 6.索引优化 7.查看、修改索引属性 8.修改索引名 9.删除索引
提出了基于服务的位图连接索引管理机制,其主要特点体现在三个方面:独立于数据库的自管理索引机制;基于存储空间约束的TOP K关键字位图连接索引机制;处理器敏感(processor-conscious)的位图连接索引技术。索引...
Curator 还提供了完善的 Python API,这样就可以和腾讯云无服务云函数做结合,例如 使用 Curator 在腾讯云 Elasticsearch 中
红狗搜索门户Microsoft Azure 搜索的示例管理门户,可让您管理索引、导入数据和执行查询。 使用 RedDog.Search、Autofac、AngularJS、ASP.NET Web API 构建。 RedDog 搜索门户也可用作 Azure 网站的入门配置门户: ...
一、数据库索引概述; 二、数据库索引分类; 三、Mysql数据库管理索引; 四、数据库事务概述; 五、数据库事务特性; 六、Mysqk数据库管理事务;
第六章 管理索引 第七章 管理其他的数据库对象 第八章 管理表簇 第九章 管理用户和安全性 第十章 监控数据库的表、索引、簇、快照和对象 第十一章 监控用户和其他数据库对象 第十二章 Oracle的性能优化 第十三章 ...
索引的创建与管理 Navicat Premium 12 mysql
第3部分:模式对象,内容包括管理模式对象空间、管理表、管理索引、管理分区表和分区索引、管理簇、管理散列、管理视图、序列和同义词、模式对象的常规管理、检测和修复数据块损坏。第4部分:数据库的安全,介绍...
luke查看nutch爬行后索引的工具,操作很简单
文档目录 1 系统概述 1 2 系统需求分析 2 2.1 需求描述 2 2.2 主要业务需求及处理流程 2 2.3 主要功能需求及数据...5.3建立与管理索引 10 5.4 加载数据 10 5.6 查询操作 11 5.7 更新操作 12 5.8 统计操作 12 6 总结 13
10.7 创建和管理索引 10.7.1 了解索引 10.7.2 使用聚集索引 10.7.3 使用非聚集索引 10.7.4 使用XML索引 10.7.5 使用筛选索引 10.7.6 确定应当索引哪些列 10.7.7 索引计算列和视图 10.7.8 查看索引属性 10.7.9 创建...
第09章 管理索引.ppt 第10章 管理索引.ppt 第10章 管理触发器.ppt 第11章 管理存储过程.ppt 第11章 管理触发器.ppt 第12章 数据库安全.ppt 第12章 管理存储过程.ppt 第13章 SQL Server 数据转换.ppt 第13章...
NULL 博文链接:https://super-wangj.iteye.com/blog/2382811