标签:tracking default where object enc off base oracle表 sea
全部的数据库对象都存放在建立指定的表空间中。但主要存放的是表, 所以称作表空间。在oracle 数据库中至少存在一个表空间。即SYSTEM的表空间。一个表空间能够包括多个段。以及区。以及最小的块,同一时候也能够包括多个数据文件(物理结构)。
oracle 能够依据表空间对相关的用户配额以及磁盘空间都有极大的保护作用,并且还能够灵活的存放。同一时候也能够把不同的数据文件分开存放,保证不同数据文件的安全行。
所以在一般数据创建后,就会创建相关的表空间,再创建相关的用户。
Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。能够这么说,Oracle中非常多优化都是基于表空间的设计理念而实现的。
下面针对数据表空间一些相关命令进行汇总
1,表空间汇总
--创建表空间的脚本
设定后查看表空间信息
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
--查看表空间使用状况
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(G)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(G)",
CASE
WHEN D.TOT_GROOTTE_MB = 0 THEN
0
ELSE
TO_NUMBER(TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) /
D.TOT_GROOTTE_MB * 100,
2),
‘990.99‘))
END "使用比",
F.TOTAL_BYTES "空暇空间(G)",
F.MAX_BYTES "最大块(G)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 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 * 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 4 DESC
--也能够从视图DBA_TABLESPACE_USAGE_METRICS 查询假设表空间不是自己主动扩展则两者查询结果同样,假设是自己主动扩展的话则两者有偏差,以上面的查询为准
--查看用户使用了那些表空间
SELECT OWNER, OBJECT_TYPE, TABLESPACE_NAME
FROM (SELECT DISTINCT ‘TABLE‘ OBJECT_TYPE, OWNER, TABLESPACE_NAME
FROM DBA_TABLES
UNION
SELECT DISTINCT ‘INDEX‘ OBJECT_TYPE, OWNER, TABLESPACE_NAME
FROM DBA_INDEXES)
WHERE TABLESPACE_NAME IS NOT NULL
AND OWNER = ‘EZOFFICE‘
ORDER BY 1, 2, 3;
SELECT T.SEGMENT_NAME, T.TABLESPACE_NAME, BYTES / 1024 / 1024
FROM DBA_SEGMENTS T
WHERE T.SEGMENT_NAME IN
(‘‘)
AND OWNER = ‘USER‘
--能够查看回收的数据文件大小
SELECT ‘ALTER DATABASE DATAFILE ‘‘‘ || A.FILE_NAME || ‘‘‘ RESIZE ‘ ||
ROUND(A.FILESIZE - (A.FILESIZE - C.HWMSIZE - 100) * 0.8) || ‘M;‘,
A.FILESIZE || ‘M‘ AS "数据文件的总大小",
C.HWMSIZE || ‘M‘ AS "数据文件的有用大小"
FROM (SELECT FILE_ID, FILE_NAME, ROUND(BYTES / 1024 / 1024) AS FILESIZE
FROM DBA_DATA_FILES) A,
(SELECT FILE_ID, ROUND(MAX(BLOCK_ID) * 8 / 1024) AS HWMSIZE
FROM DBA_EXTENTS
GROUP BY FILE_ID) C
WHERE A.FILE_ID = C.FILE_ID
AND A.FILESIZE - C.HWMSIZE > 100;
下一篇会继续讲述uodo表空间
oracle表空间查询维护命令大全之中的一个(数据表空间)史上最全
标签:tracking default where object enc off base oracle表 sea
原文地址:http://www.cnblogs.com/zhchoutai/p/7289193.html