Oracle表空间

一.创建表空间

	 create tablespace ${tablespaceName}
         logging 
         datafile '${datafilePath}' 
         size ${size}m 
         autoextend on 
         next ${size}m maxsize unlimited 
         extent management local;

二.删除表空间

	-- 删除空的表空间,但是不包含物理文件
	drop tablespace ${tablespaceName};
	-- 删除非空表空间,但是不包含物理文件
	drop tablespace ${tablespaceName} including contents;
	-- 删除空表空间,包含物理文件
	drop tablespace ${tablespaceName} including datafiles;
	-- 删除非空表空间,包含物理文件
	drop tablespace ${tablespaceName} including contents and datafiles;
	-- 如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
	drop tablespace ${tablespaceName} including contents and datafiles CASCADE CONSTRAINTS;

三.修改表空间

1)修改表空间大小

alter database datafile'${datafilePath}' resize ${size}M;

四.表空间信息查看

1)查看表空间使用情况

	SELECT 
		UPPER(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
	ORDER BY 1;

2)查看表空间文件

		SELECT file_id,file_name FROM DBA_DATA_FILES D WHERE D.TABLESPACE_NAME = '${tablespaceName}';
posted @ 2020-08-12 23:18  周建林  阅读(139)  评论(0编辑  收藏  举报