时间:2021-07-01 10:21:17 帮助过:15人阅读
表空间 | 说明 |
---|---|
EXAMPLE | 如果在安装时有选择“实例方案”选项,则在Oracle中会有该表空间,如未选择则没有,此表空间中存放的是各样例的数据 |
SYSAUX | SYSTEM表空间的辅助空间。主要用于存储数据字典的其他数据对象,这可以减少SYSTEM表空间的负荷 |
SYSTEM | 存放数据字典,其中包括表、视图、存储过程等等相关数据 |
TEMP | 存放SQL语句处理的表和索引的信息,如:在数据排序时就会占用此表空间 |
UNDOTBS1 | 存放撤销数据的表空间 |
USERS | 一般用于存放Oracle的用户数据 |
而默认的表空间的相关详细信息可以通过sys用户下的DBA_DATA_FILES、DBA_FREE_SPACE、DBA_SEGMENTS这3张字典表查到相关表空间所存放的数据对象、类型及表空间的相关物理文件和拥有者的相关记录,如下用于查询Oracle下表空间的使用详细情况
SELECT F.TABLESPACE_NAME "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比", F.TOTAL_BYTES "空闲空间(M)", F.MAX_BYTES "最大块(M)" FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME AND F.TABLESPACE_NAME <> 'EXAMPLE' AND F.TABLESPACE_NAME <> 'SYSAUX' AND F.TABLESPACE_NAME <> 'SYSTEM' AND F.TABLESPACE_NAME <> 'UNDOTBS1' AND F.TABLESPACE_NAME <> 'USERS' AND F.TABLESPACE_NAME <> 'EXAMPLE' ORDER BY 1;
而在使用表空间收缩也很简单:
SELECT FILE_NAME FROM SYS.DBA_DATA_FILES WHERE TABLESPACE_NAME = 'TEST';#查询出TEST表空间的物理文件路径 ALTER TABLESPACE TEST COALESCE;#回收表空间碎片 ALTER DATABASE DATAFILE '/usr/local/u01/oracle/oradata/oracle/test.dbf' RESIZE 2M;#回收表空间
Oracle下表空间收缩
标签:dba sql语句 datafile name 管理 root and lte ase