1、查詢目前表空間使用情況
col FILE_NAME format a50;
col SPACE_NAME format a15;
select b.file_name file_name,b.tablespace_name space_name,
b.bytes/1024/1024 munM,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) "use%"
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id group by > b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name;
2、查詢各表占用空間情況,可以通過blocks塊數判斷空間占用情況
select table_name,tablespace_name,num_rows,blocks from all_tables where owner='IPEMS_DEV_EMS' order by blocks asc;
3、結合業務需要可以對曆史資料表進行删除,如果需要删除的表較多,可通過拼接自動生成SQL腳本,也可利用notpad++工具手動拼接SQL腳本
alter table IPEMS_DEV_EMS.DO_5C6B3296CD1E_1062 move tablespace IPEMS01;
4、增加資料檔案擴充表空間
alter tablespace IPEMS01 add datafile 'D:\APP\ADMINISTRATOR\ORADATA\IPEMS\IPEMS0104.DBF' size 30000m reuse autoextend on next 50M;
5、直接增大現有資料檔案擴充表空間
ALTER DATABASE DATAFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFIRST\DITS.DBF' RESIZE 400M;
6、關于oracle資料檔案大小的說明:
64位OS 和64位oracle,預設oracle表空間資料檔案用的BLOCKSIZE是8k,表空間資料檔案最大是32G(最大blocks 2^22-1,單個資料檔案最大為最大blocks*block_size (2^22-1)*8/1024/1204/1024)。要擴大單個資料檔案的大小限制主要修改block_size的大小
uname -a 檢視linuxOS的位數,sqlplus 登入oracle會顯示oracle的位數,show parameter block;在指令行視窗可以檢視資料塊大小;
計算機右鍵“屬性”檢視windows的位數;
32位OS和32位oracle,預設oracle表空間datafile用的BLOCKSIZE也是8k,表空間資料檔案最大也是32G。試了一下64G檔案,也沒有問題。
是以最終限制資料檔案大小的還是oracle資料庫,而不是作業系統。