Oracle索引检查重建与碎片收集.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle索引检查重建与碎片收集

Oracle 表空间索引检查重建与碎片收集,包括检查需要重建的索引,重建索引,对重建好的索引进行检查,收集表空间碎片,查看索引占用空间大小,查看表占用空间大小,整理表空间的碎片。 检查需要重建的索引 根据以下几方面进行检查,确定需要重建的索引。 1、查看 SYSTEM 表空间中的用户索引 为了避免数据字典的碎片出现,要尽量避免在 SYSTEM 表空间出现用户的表和索引。 以下为引用内容: select index_name from dba_indexes where tablespace_name=SYSTEM and owner not in (SYS,SYSTEM) 2、确保用户的表和索引不在同一表空间内 表和索引对象的第一个规则是把表和索引分离。把表和相应的索引建立在不同的表空间中,最好在不同的磁盘上。这样可以避免在数据管理和查询时出现的许多 I/O 冲突。 以下为引用内容: SELECT i.owner OWNER, i.index_name INDEX, t.table_name TABLE, i.tablespace_name TABLESPACE FROM dba_indexes i, dba_tables t WHERE i.owner = t.owner AND i.table_name = t.table_name AND i.tablespace_name = t.tablespace_name AND i.owner NOT IN (SYS, SYSTEM) 3、查看数据表空间里有哪些索引 用户的默认表空间应该不是 SYSTEM 表空间,而是数据表空间。在建立索引时,如果不指定相应的索引表空间名,那么,该索引就会建立在数据表空间中。这是程序员经常忽略的一个问题。应该在建索引时,明确的指明相应的索引表空间。 以下为引用内容: SELECT owner, segment_name, SUM (bytes) FROM dba_segments WHERE tablespace_name =SYSTEM AND segment_type = INDEX GROUP BY owner, segment_name 4、查看哪个索引被扩展了超过10次 随着表记录的增加,相应的索引也要增加。如果一个索引的 next extent 值设置不合理(太小),索引段的扩展变得很频繁。索引的 extent 太多,检索时的速度和效率就会降低。 1. 查看索引扩展次数 以下为引用内容: SELECT COUNT ( * ), owner, segment_name, tablespace_name FROM dba_extents WHERE segment_type = INDEX AND owner NOT IN (SYS, SYSTEM) GROUP BY owner, segment_name, tablespace_name HAVING COUNT ( * ) 10 ORDER BY COUNT ( * ) DESC 2. 找出需要重建的索引后,需要确定索引的大小,以设置合理的索引存储参数。 以下为引用内容: SELECT owner OWNER, segment_name INDEX, tablespace_name TABLESPACE, bytes BYTES/COUNT, SUM (bytes) TOTAL BYTES, ROUND (SUM (bytes) / (1024 * 1024), 0) TOTAL M, COUNT (bytes) TOTAL COUNT FROM dba_extents WHERE segment_type = INDEX AND segment_name IN (INDEX_NAME1, INDEX_NAME2) GROUP BY owner, segment_name, segment_type, tablespace_name, bytes ORDER BY owner, segment_name 3. 确定索引表空间还有足够的剩余空间 确定要把索引重建到哪个索引表空间中。要保证相应的索引表空间有足够的剩余空间。 以下为引用内容: SELECT ROUND (bytes / (1024 * 1024), 2) free(M) FROM sm$ts_free WHERE tablespace_name = 表空间名 4. 重建索引 重建索引时要注意以下几点: 如果不指定 tablespace 名,索引将建在用户的默认表空间。 如果不指定 nologging ,将会写日志,导致速度变慢。由于索引的重建没有恢复的必要,所以,可以不写日志。 如果出现资源忙,表明有进程正在使用该

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档