- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[ORACLE索引介绍与高性能SQL优化
ORACLE索引介绍与高性能SQL优化2007-9-19来源:不详作者:佚名点击: 481次窗体顶端窗体底端什么是索引 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据; Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引; 索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。 使用索引的目的 加快查询速度 减少I/O操作 消除磁盘排序 何时使用索引 查询返回的记录数 排序表40% 非排序表?7% 表的碎片较多(频繁增加、删除) 索引的种类 非唯一索引(最常用) 唯一索引 位图索引 局部有前缀分区索引 局部无前缀分区索引 全局有前缀分区索引 散列分区索引 基于函数的索引 管理索引的准则 在表中插入数据后创建索引 。在用SQL*Loader或import工具插入或装载数据后,建立索引比较有效; 索引正确的表和列 。经常检索排序大表中40%或非排序表7%的行,建议建索引; 。为了改善多表关联,索引列用于联结; 。列中的值相对比较唯一; 。取值范围(大:B*树索引,小:位图索引); 。Date型列一般适合基于函数的索引; 。列中有许多空值,不适合建立索引 为性能而安排索引列 。经常一起使用多个字段检索记录,组合索引比单索引更有效; 。把最常用的列放在最前面,例:dx_groupid_serv_id(groupid,serv_id),在where条件中使用groupid或groupid,serv_id,查询将使用索引,若仅用到serv_id字段,则索引无效; 。合并/拆分不必要的索引。 限制每个表索引的数量 。一个表可以有几百个索引(你会这样做吗?),但是对于频繁插入和更新表,索引越多系统CPU,I/O负担就越重; 。建议每张表不超过5个索引。 删除不再需要的索引 。索引无效,集中表现在该使用基于函数的索引或位图索引,而使用了B*树索引; 。应用中的查询不使用索引; 。重建索引之前必须先删除索引,若用alter?index?…?rebuild重建索引,则不必删除索引。 索引数据块空间使用 。创建索引时指定表空间,特别是在建立主键时,应明确指定表空间; 。合理设定pctfress,注意:不能给索引指定pctused; 。估计索引的大小和合理地设置存储参数,默认为表空间大小,或initial与next设置成一样大。 考虑并行创建索引 。对大表可以采用并行创建索引,在并行创建索引时,存储参数被每个查询服务器进程分别使用,例如:initial为1M,并行度为8,则创建索引期间至少要消耗8M空间; 考虑用nologging创建索引 。对大表创建索引可以使用nologging来减少重做日志; 。节省重做日志文件的空间; 。缩短创建索引的时间; 。改善了并行创建大索引时的性能。 怎样建立最佳索引 明确地创建索引 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 ); 创建基于函数的索引 。常用与UPPER、LOWER、TO_CHAR(date)等函数分类上,例: create?index?idx_func?on?emp?(UPPER(ename))?tablespace?tablespace_name; 创建位图索引 。对基数较小,且基数相对稳定的列建立索引时,首先应该考虑位图索引,例: create?bitmap?index?idx_bitm?on?class?(classno)?tablespace?tablespace_name; 明确地创建唯一索引 。可以用create?unique?index语句来创建唯一索引,例: create?unique?index?dept_unique_idx?on?dept(dept_no)?tablespace?idx_1; 创建与约束相关的索引 。可以用using?index字句,为与unique和primary?key约束相关的索引,例如: alter?table?table_name add?constraint?PK_p
您可能关注的文档
最近下载
- 三一SY235C9I2KS维护保养手册.pdf VIP
- 纪念中国人民抗日战争暨世界反法西斯战争胜利80周年PPT课件.pptx VIP
- 陶瓷原料及配方基础.ppt VIP
- 茶小绿叶蝉的防治课件.pptx VIP
- 电梯制造与安装安全规范 GB7588-2003.docx VIP
- 2023民航特种车辆操作工民航特种车辆操作工试卷(练习题库).docx VIP
- IEC 60840-2004 额定电压30kV(Um=36kV)以上至150kV(Um=170kV)挤包绝缘电力电缆及其附件试验方法和要求(中文).pdf VIP
- 22G101 三维彩色立体图集.docx VIP
- 混凝土混凝土.ppt VIP
- 沈萍微生物课件第3章b.ppt VIP
文档评论(0)