Oracle认证:空间管理三个技巧
对它进行编辑,去除“REM”等信息,找到Initial参数,根据需要改变它。
3.在SQL*plus中执行emp.sql.
4.装入数据:
1.mp userid=scott/tiger ignore=y file=emp.dmp
需要注意的是,ignore参数必须设为Y.
C.可以用下面的语句来观察表或索引距离达到最大扩展的状况,“UNUSE”为距离达到最大扩展的值,在User_extents表中,extent_id是从0开始记述数的。
1.SQL 》select a.table_name “TABLE_NAME”,max
2.(a.max_extents) “MAXEXTENTS” ,
3.2 max(b.extent_id)+1 “IN USE”, MAX
4.(a.max_extents)-(max(b.extent_id)+1) “UNUSE”
5.3 from user_tables a, user_extents b
6.4where a.table_name=b.segment_name
7.5 group by a.table_name ORDER BY 4;
8.TABLE_NAME MAXEXTENTS IN USEUNUSE
9.YZPHB 98 1 97
10.SHJYB 121 1 120
11.SHFYB 121 1 120
12.RCHDB 121 1 120
13.SJTXDZB121 1 120
14.SJTXDAB121 1 120
15.CHYHB 121 1 120
16.JFDH 50014 486
17.8 rows selected.
如果“UNUSE”小到一定的程度,我们就应该加以关注,进行适当的调整处理。
三、关于连续空间
可以用下面的语句来查看数据库中的自由空间:
1.SQL 》 select * from dba_free_space
2.where tablespace_name=‘SFSJTS’
3.2 order by block_id;
4.TABLESPACE FILE_ID BLOCK_ID BYTESBLOCKS
5._NAME
6.SFSJTS 6 133455 1064960 130
7.SFSJTS 6 133719 1032192 126
8.SFSJTS 6 133845 1064960 130
9.SFSJTS 6 135275 1064960 130
10.SFSJTS 6 135721 606208 74
11.SFSJTS 6 139877 901120 110
12.SFSJTS 6 143497 737280 90
13.SFSJTS 6 220248 737280 90
14.SFSJTS 6 246228 491520 60
15.SFSJTS 6 261804 1064960 130
16.10 rows selected.
我们可以通过命令的结果来估计相邻自由空间的真正数量。对每一行,用起始快的id(BLOCK_ID)加上自由块(BLOCKS)的数量,如果其和与下一行的块id(BLOCK_ID)相等,则此两行是连续的。如上例第二行和第三行,133719+126=133845,而1338456+130!=135275,所以从block_id为133719开始,有126+130=256个block的连续空间。
在Oracle数据库的后台,系统监视器(SMON)周期性地合并自由空间相邻的块,以得到更大的连续块。而DBA可以用SQL命令来完成这个工作:
1.alter tablespace tablespace_name coalesce;
Oracle空间管理对数据库的工作性能有重要影响,其管理方法值得我们认真摸索研究。
【Oracle认证:空间管理三个技巧】相关文章: