我们大家都知道在Oracle数据库里,DBA是可以通过相关观测某些表或是相关的视图来了解其当前相关空间的具体使用的状况,来作出可能的相关调整决定。以下就是文章的主要内容的具体描述。 一、表空间的自由空间! D* N6 d0 m% g
通过对表空间的自由空间的观察,可用来判断分配给某个表空间的空间是太多还是不够。请看下列的语句:
$ \7 x7 U* l9 F9 g9 z8 c7 T 1.SQL > select a.file_id "FileNo",a.tablespace_name
+ k( f8 e3 U$ X* w 2."Tablespace_name",' L* f7 l7 m7 g7 ?1 b4 ^$ A
3.2 a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",6 G6 Y' {# N* P. e+ F
4.3 sum(nvl(b.bytes,0)) "Free",
1 t4 ?- ^- l4 Z 5.4 sum(nvl(b.bytes,0))/a.bytes*100 "%free" ?4 X5 D& I# ~1 ~" ?
6.5 from dba_data_files a, dba_free_space b- Q/ W' z T2 }
7.6 where a.file_id=b.file_id(+)
d& M4 n$ e1 i1 f# C8 Z. k' x 8.7 group by a.tablespace_name ,
% U+ X8 l9 S% m* s, H6 {4 r 9.8 a.file_id,a.bytes order by a.tablespace_name;
: D, {. p/ w3 D G 10.File Tablespace6 A3 _% t8 f. H! z# t8 y1 e
11.No _nameBytes Used Free %free' w7 A- ?, k/ Z% A [7 E+ r
12.11IDX_JF .146E+09 849305600 1.297E+09 60.431806% Q. A2 l! q) `# o/ o* I8 ^
13.9 JFSJTS 2.146E+09 1.803E+09 343793664 16.016961
- V# @% f ~0 j- X+ {- W! I 14.10JFSJTS 2.146E+09 1.359E+09 787431424 36.6855468 o5 _$ q8 ]7 x' j, X
15.2 RBS523239424 359800832 163438592 31.235909
0 W* g, K& `2 s 16.12RBS1.610E+09 1.606E+09 3104768 .192894950 G" F% _3 B) ^" `' t( Y9 ~9 E
17.8 RBSJF 3.220E+09 2.716E+09 504356864 15.6623967 z0 G; H L [% |( E
18.7 SFGLTS 2.146E+09 1.228E+09 918159360 42.776014
- H' B5 r! w1 Y 19.6 SFSJTS 2.146E+09 1.526E+09 620093440 28.889457$ g2 F, v$ z- c- D% P
20.1 SYSTEM 523239424 59924480 463314944 88.547407& g# n/ x% H$ M, C# N4 X
21.3 TEMP 523239424294912 522944512 99.943637
]0 {3 X* W! }+ j# p 22.4 TOOLS 15728640 12582912 314572820; R( U1 }0 d% n
23.5 USERS 7340032 81927331840 99.888393- M" q( K1 u* V, O" N1 r
24.12 rows selected.! C$ a+ x1 \3 f6 _: l9 [7 F
可以看出,在FileNo为12的表空间RBS中,只有0.19%的分配空间未被使用,这个比例太小了,而在SYSTEM及TEMP等表空间中,高达80%以上的空间未被利用,对于生产型Oracle数据库,这个表空间的设置有些偏高。5 J0 ]2 K. k* d7 ^2 {
关于自由空间的管理,有下面的一些建议:( T, @# O2 S0 H/ w2 U7 A6 M7 U r
利用Export及Import命令卸出和装入表空间可以释放大量的空间,从而缓解增加另外的数据文件的要求。. k' @1 B7 i0 I0 f
如果包含具有高插入(insert)和更新(update)活动的表的表空间中自由空间的比重下降到了15%以下,要为此表空间增加更多的空间。4 _0 @; v& g' [8 n3 Y @
对于一个基本是静态表数据的表空间,如果有多于20%的自由空间,则可以考虑减少分配给它的文件空间量。
) ^8 h/ r4 J, \, i; H2 x7 y 减少SYSTEM表空间的空间量比较困难,因为那要重建Oracle数据库。 |