Artikel ini membawa anda pengetahuan yang berkaitan tentang Oracle terutamanya isu yang berkaitan dengan operasi pengisihan ruang meja pangkalan data, kitar semula dan pelepasan, termasuk menurunkan paras air yang tinggi bagi ruang meja dan memadamkan data isinya, mari kita lihat di bawah, semoga bermanfaat untuk semua.
Tutorial yang disyorkan: "Tutorial Video Oracle"
Apabila menggunakan Oracle untuk ujian input, kami akan mencipta banyak data ujian . Walau bagaimanapun, selepas pemadaman, paras air tinggi ruang meja masih tidak boleh diturunkan secara automatik, mengakibatkan data kosong dalam ruang jadual, yang bukan sahaja menjejaskan prestasi ruang meja tetapi juga mengambil terlalu banyak ruang penyimpanan.
Kodnya adalah seperti berikut:
select b.file_id 物理文件号, b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes/1024/1024 大小M, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M, substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_id,b.file_name,b.bytes order by b.tablespace_name
-- 清除用户回收站 purge recyclebin; -- 清除全库回收站 purge dba_recyclebin;
alter tablespace tablespace_name coalesce;
select a.file#,a.name,a.bytes/1024/1024 CurrentMB, ceil(HWM * a.block_size)/1024/1024 ResizeTo, (a.bytes - HWM * a.block_size)/1024/1024 ReleaseMB, 'alter database datafile '''||a.name||''' resize '|| ceil(HWM * a.block_size/1024/1024) || 'M;' ResizeCMD from v$datafile a, (select file_id,max(block_id+blocks-1) HWM from dba_extents where file_id in (select b.file# From v$tablespace a ,v$datafile b where a.ts#=b.ts# and a.name='tablespace_name') group by file_id) b where a.file# = b.file_id(+) and (a.bytes - HWM *block_size)>0 order by 5
-- 清空表数据 truncate table table_name; -- 释放表空间 alter table table_name deallocate UNUSED KEEP 0;
2. Pindahkan data jadual
--需移动的表数据 select DISTINCT 'alter table '|| owner||'.'||segment_name || ' move tablespace user_test;' from dba_extents where segment_type='TABLE' and file_id=4; --需移动的索引数据 select DISTINCT 'alter index '|| owner||'.'|| segment_name || ' rebuild tablespace user_test;' from dba_extents where segment_type='INDEX' and file_id=4; --需移动的分区表数据 select DISTINCT 'alter table '|| owner||'.'|| segment_name || ' move partition '|| partition_name || ' tablespace user_test;' from dba_extents where segment_type='TABLE PARTITION' and file_id=4; --需移动的分区表索引数据 select DISTINCT 'alter index '|| owner||'.'|| segment_name || ' rebuild partition '|| partition_name || ' tablespace user_test;' from dba_extents where segment_type='INDEX PARTITION' and file_id=4;
Tutorial yang disyorkan: "
Tutorial Video OracleAtas ialah kandungan terperinci Operasi pengisihan ruang jadual pangkalan data Oracle, kitar semula dan pelepasan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!