欢迎来到天天文库
浏览记录
ID:2018931
大小:38.50 KB
页数:8页
时间:2017-11-14
《oracle索引与高性能sql介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ORACLE索引与高性能SQL介绍什么是索引索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;Oracle存储索引的数据结构是B树,位图索引也是如此,只不过是叶子节点不同B数索引;索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。使用索引的目的加快查询速度减少I/O操作消除磁盘排序何时使用索引查询返回的记录数排序表<40%非排序表<7%表的碎片较多(频繁增加、删除)索引的种类非唯一索引(最常用)唯一索引位图索引局部有前缀分区索引局部无前缀分区索引全局有前缀分区索引散列分区索引基于函数的索引管理索引
2、的准则在表中插入数据后创建索引。在用SQLLoader或import工具插入或装载数据后,建立索引比较有效;索引正确的表和列。经常检索排序大表中40%或非排序表7%的行,建议建索引;。为了改善多表关联,索引列用于联结;。列中的值相对比较唯一;。取值范围(大:B树索引,小:位图索引);。Date型列一般适合基于函数的索引;。列中有许多空值,不适合建立索引为性能而安排索引列。经常一起使用多个字段检索记录,组合索引比单索引更有效;。把最常用的列放在最前面,例:dx_groupid_serv_id(groupid,serv_id),在where条件中使用groupid或groupid,serv
3、_id,查询将使用索引,若仅用到serv_id字段,则索引无效;。合并/拆分不必要的索引。限制每个表索引的数量。一个表可以有几百个索引(你会这样做吗?),但是对于频繁插入和更新表,索引越多系统CPU,I/O负担就越重;。建议每张表不超过5个索引。删除不再需要的索引。索引无效,集中表现在该使用基于函数的索引或位图索引,而使用了B树索引;。应用中的查询不使用索引;。重建索引之前必须先删除索引,若用alterindex…rebuild重建索引,则不必删除索引。索引数据块空间使用。创建索引时指定表空间,特别是在建立主键时,应明确指定表空间;。合理设定pctfress,注意:不能给索引指定pct
4、used;。估计索引的大小和合理地设置存储参数,默认为表空间大小,或initial与next设置成一样大。考虑并行创建索引。对大表可以采用并行创建索引,在并行创建索引时,存储参数被每个查询服务器进程分别使用,例如:initial为1M,并行度为8,则创建索引期间至少要消耗8M空间;考虑用nologging创建索引。对大表创建索引可以使用nologging来减少重做日志;。节省重做日志文件的空间;。缩短创建索引的时间;。改善了并行创建大索引时的性能。怎样建立最佳索引明确地创建索引createindexindex_nameontable_name(field_name)tablespace
5、tablespace_namepctfree5initrans2maxtrans255storage(minextents1maxextents16382pctincrease0);创建基于函数的索引。常用与UPPER、LOWER、TO_CHAR(date)等函数分类上,例:createindexidx_funconemp(UPPER(ename))tablespacetablespace_name;创建位图索引。对基数较小,且基数相对稳定的列建立索引时,首先应该考虑位图索引,例:createbitmapindexidx_bitmonclass(classno)tablespaceta
6、blespace_name;明确地创建唯一索引。可以用createuniqueindex语句来创建唯一索引,例:createuniqueindexdept_unique_idxondept(dept_no)tablespaceidx_1;创建与约束相关的索引。可以用usingindex字句,为与unique和primarykey约束相关的索引,例如:altertabletable_nameaddconstraintPK_primary_keynameprimarykey(field_name)usingindextablespacetablespace_name;如何创建局部分区索引。
7、基础表必须是分区表;。分区数量与基础表相同;。每个索引分区的子分区数量与相应的基础表分区相同;。基础表的子分区中的行的索引项,被存储在该索引的相应的子分区中,例如:CreateIndexTG_CDR04_SERV_ID_IDXOnTG_CDR04(SERV_ID)Pctfree5TablespaceTBS_AK01_IDXStorage(MaxExtents32768PctIncrease0FreeLists1FreeListGroups1)l
此文档下载收益归作者所有