欢迎来到天天文库
浏览记录
ID:50676379
大小:44.52 KB
页数:3页
时间:2020-03-13
《Oracle用户名重建索引方法探究.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、每个DBA都应该知道数据索引的重要性。特别是管理Oracle的DBA,很多应用项目会涉及到大量的修改删除操作,数据索引是需要周期性的重建的。这里介绍的根据Oracle用户名重建索引的方法可以帮助我们提高查询性能。更重要的是,它不仅可以提高查询性能,还能增加索引表空间空闲空间大小。在Oracle里大量删除记录后,表和索引里占用的数据块空间并没有释放。重建索引可以释放已删除记录索引占用的数据块空间。下面是可以按Oracle用户名生成重建索引的SQL脚本:1.SET ECHO OFF; 2. 3.SET FEEDBACK OFF; 4. 5.SET VERIFY OFF; 6. 7.SET PAGE
2、SIZE 0; 8. 9.SET TERMOUT ON; 10. 11.SET HEADING OFF; 12. 13.ACCEPT username CHAR PROMPT 'Enter the index username: '; 14. 15.spool /oracle/rebuild_&username.sql; 16. 17.SELECT 18. 19.'REM +-----------------------------------------------+'
3、
4、 chr(10)
5、
6、 20. 21.'REM
7、 INDEX NAME : '
8、
9、 owner
10、
11、 '.'
12、
13、
14、 segment_name 22. 23.
15、
16、 lpad('
17、', 33 - (length(owner) + length(segment_name)) ) 24. 25.
18、
19、 chr(10)
20、
21、 26. 27.'REM
22、 BYTES : '
23、
24、 bytes 28. 29.
25、
26、 lpad ('
27、', 34-(length(bytes)) )
28、
29、 chr(10)
30、
31、 30. 31.'REM
32、 EXTENTS : '
33、
34、 extents 32. 33.
35、
36、 lpad ('
37、', 34-(length(extents)) )
38、
39、 chr(10)
40、
41、 34. 35.'REM +--
42、---------------------------------------------+'
43、
44、 chr(10)
45、
46、 36. 1.'ALTER INDEX '
47、
48、 owner
49、
50、 '.'
51、
52、 segment_name
53、
54、 chr(10)
55、
56、 2. 3.'REBUILD '
57、
58、 chr(10)
59、
60、 4. 5.'TABLESPACE '
61、
62、 tablespace_name
63、
64、 chr(10)
65、
66、 6. 7.'STORAGE ( '
67、
68、 chr(10)
69、
70、 8. 9.' INITIAL '
71、
72、 initial_extent
73、
74、 chr(10)
75、
76、 10. 11.'
77、 NEXT '
78、
79、 next_extent
80、
81、 chr(10)
82、
83、 12. 13.' MINEXTENTS '
84、
85、 min_extents
86、
87、 chr(10)
88、
89、 14. 15.' MAXEXTENTS '
90、
91、 max_extents
92、
93、 chr(10)
94、
95、 16. 17.' PCTINCREASE '
96、
97、 pct_increase
98、
99、 chr(10)
100、
101、 18. 19.');'
102、
103、 chr(10)
104、
105、 chr(10) 20. 21.FROM dba_segments 22. 23.WHERE segment_type = 'INDEX' 24. 25.AND ow
106、ner='&username' 26. 27.ORDER BY owner, bytes DESC; 28. 29.spool off; 如果你用的是Windows系统,想改变输出文件的存放目录,修改spool后面的路径成:spoolc:oraclerebuild_&username.sql;如果你只想对大于max_bytes的索引重建索引,可以修改上面的SQL语句:在ANDowner='&username'后面加个限制条件ANDbytes>&max_bytes如果你想修改索引的存储参数,在重建索引rebuild_&username.sql里改也可以。比如把pctincrease不等于零的
107、值改成是零。生成的rebuild_&username.sql文件我们需要来分析一下,它们是否到了需要重建的程度:分析索引,看是否碎片严重。1.SQL>ANALYZE INDEX &index_name VALIDATE STRUCTURE; 2. 3.col name heading 'Index Name' format a30 4. 5.col del_lf_rows heading 'Del
此文档下载收益归作者所有