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

上传人:cc****pp 文档编号:209920718 上传时间:2021-11-12 格式:DOC 页数:5 大小:77KB
返回 下载 相关 举报
Oracle索引检查重建与碎片收集_第1页
第1页 / 共5页
Oracle索引检查重建与碎片收集_第2页
第2页 / 共5页
Oracle索引检查重建与碎片收集_第3页
第3页 / 共5页
Oracle索引检查重建与碎片收集_第4页
第4页 / 共5页
Oracle索引检查重建与碎片收集_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Oracle索引检查重建与碎片收集》由会员分享,可在线阅读,更多相关《Oracle索引检查重建与碎片收集(5页珍藏版)》请在金锄头文库上搜索。

1、Oracle表空间索引检查重建与碎片收集,包括检查需要重建的索引,重建索引,对重 建好的索引进行检查,收集表空间碎片,查看索引占用空间大小,查看表占用空间大小,整 理表空间的碎片。检查需要重建的索引根据以下儿方面进行检查,确泄需要重建的索引。1、查看SYSTEM表空间中的用户索引为了避免数据字典的碎片出现,要尽量避免在SYSTEM表空间出现用八的表和索引。 以下为引用内容:select index_name from dba_inciexes where tablespace_name=HSYSTEM11 and ownernot in (SYSySYSTEM”)2、确保用户的表和索引不在同一

2、表空间内表和索引对象的第一个规则是把表和索引分离。把表和相应的索引建立在不同的表空 间中,最好在不同的磁盘上。这样可以避免在数据管理和查询时出现的许多I/O冲突。I以下为引用内容:SELECT i.owner “OWNER”, iindex_name nINDEX”,! t. table_name nTABLEf,j i . tablespace_name nTABLESPACE11FROM dba_indexes iz dba_tables tWHERE iowner = townerAND i.table_name = t.table_nameAND i.tablespace_name =

3、 t.tablespace_nameAND i.owner NOT IN (SYS, SYSTEM)3、查看数据表空间里有哪些索引用户的默认表空I、可应该不是SYSTEM表空间,而是数据表空间。在建立索引吋,如果 不指定相应的索引表空间名,那么,该索引就会建立在数据表空间中。这是程序员经常忽略 的一个问题。应该在建索引吋,明确的指明相应的索引表空问。以下为引用内容:SELECT owner, segment_name, SUM (bytes)FROM dba_segmentsWHERE tablespace_name =1 SYSTEM1 AND segment_type = INDEXGRO

4、UP BY owner, segment_name4、查看哪个索引被扩展了超过10次随着表记录的增加,相应的索引也要增加。如果一个索引的next extent值设置不合 理(太小),索引段的扩展变得很频繁。索引的extent太多,检索时的速度和效率就会降 低。1.查看索引扩展次数以下为引用内容:SELECT COUNT ( * ),owner,segmen,tablespace_nameFROM dba_extentsWHERE segment_type = INDEX1 AND owner NOT IN (SYSJ SYSTEM)GROUP BY owner, segment_namef t

5、ablespace_nameHAVING COUNT ( * ) 10ORDER BY COUNT ( * ) DESC2.找出需要重建的索引后,需要确定索引的大小,以设置合理的索引存储参数。以下为引用内容:SELECT owner OWNER,segment_name nINDEXn,tablespace_name nTABLESPACEn.bytes nBYTES/COUNTn,SUM (kytes) nTOTAL BYTESn,ROUND (SUM (bytes) / (1024 * 1024) , 0) f,TOTAL M,COUNT (bytes) nTOTAL COUNTnFROM

6、 dba_extentsWHERE segment_type = 1 INDEX1AND segment_name IN (1INDEX_NAME11z 1INDEX_NAME21) GROUP BY owner, segment_name. segment_type, tablespace_name,b ytesORDER BY owner, segment_name3确定索引表空间还有足够的剩余空间确定要把索引重建到哪个索引表空I可中。要保证相应的索引表空I可有足够的剩余空I可。* 以下为引用内容:SELECT ROUND (bytes / (1024 * 1024) , 2) “free

7、 (M) 11FROM sm$ts_freeWHERE tablespace_name =,表空间名,4.重建索引重建索引时要注意以下儿点:如果不指定tablespace名,索引将建在用户的默认表空间。如果不指定nologging ,将会写日志,导致速度变慢。由于索引的重建没 有恢复的必要,所以,可以不写口志。如果出现资源忙,表明有进程正在使用该索引,等待一会再提交。alter index 索引名 rebuild tablespace 索引表空间名 storage(initial 初始值 next 扩 展值)nologging5. 检查索引对重建好的索引进行检查以下为引用内容:select *

8、 from dba_extents where segment_name=n弓I 名6. 根据索引进行查询,检查索引是否有效使用相应的where条件进行查询,确保使用该索引。看看使用索引后的效果如何。以下为引用内容:select * from dba_ind_co 1 umns where index_name= 1 引名然后,根据相应的索引项进行查询以下为引用内容:select * from ”农名where 7. 找出有碎片的表空间,并收集其碎片重建索引后,原有的索引被删除,这样会造成表空间的碎片。以下为引用内容:SELECT 1 alter tablespace 1 I I tables

9、pace_name I | 1 coalesce;FROM dba_free_space_coalescedWHERE percent_b丄ocks_coa丄esced != 100查看索引占用空间大小以下为引用内容: j select (sum(bytes)/1024/1024)| MB from dba_segments where segmenI =1INDBILLLOG5_CALLEND1;查看表占用空间大小以下为引用内容:select (sum(bytes)/1024/1024) I | MB from dba_segments where segment_name=,TBILLLOG5,;整理表空I可的碎片以下为引用内容:alter tablespace 表空间名 coalesce

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号