Oracle11g 如何确定表空间oracle 11g的大小
我有一个包含三个表的数据库。我需要将历史分区数据移动到其他模式 现在我正计划创建新的历史表格。我不知道如何测量分区和子分区的大小。你能帮我吗?请给我一些建议 提前预定。Oracle11g 如何确定表空间oracle 11g的大小,oracle11g,tablespace,Oracle11g,Tablespace,我有一个包含三个表的数据库。我需要将历史分区数据移动到其他模式 现在我正计划创建新的历史表格。我不知道如何测量分区和子分区的大小。你能帮我吗?请给我一些建议 提前预定。 Lou以下查询可用于确定表空间和其他参数: select df.tablespace_name "Tablespace", totalusedspace "Used MB", (df.totalspace - tu.totalusedspace) "Free MB", df.totals
Lou以下查询可用于确定表空间和其他参数:
select df.tablespace_name "Tablespace",
totalusedspace "Used MB",
(df.totalspace - tu.totalusedspace) "Free MB",
df.totalspace "Total MB",
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace)) "Pct. Free"
from (select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name) df,
(select round(sum(bytes)/(1024*1024)) totalusedspace,
tablespace_name
from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name
and df.totalspace <> 0;
资料来源:
对于您的情况,如果您想知道分区名称及其大小,只需运行以下查询:
select owner,
segment_name,
partition_name,
segment_type,
bytes / 1024/1024 "MB"
from dba_segments
where owner = <owner_name>;
方法之一是
使用下面的sql查询
--Size of All Table Space
--1. Used Space
SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS "USED SPACE(IN GB)" FROM USER_SEGMENTS GROUP BY TABLESPACE_NAME
--2. Free Space
SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS "FREE SPACE(IN GB)" FROM USER_FREE_SPACE GROUP BY TABLESPACE_NAME
--3. Both Free & Used
SELECT USED.TABLESPACE_NAME, USED.USED_BYTES AS "USED SPACE(IN GB)", FREE.FREE_BYTES AS "FREE SPACE(IN GB)"
FROM
(SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS USED_BYTES FROM USER_SEGMENTS GROUP BY TABLESPACE_NAME) USED
INNER JOIN
(SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS FREE_BYTES FROM USER_FREE_SPACE GROUP BY TABLESPACE_NAME) FREE
ON (USED.TABLESPACE_NAME = FREE.TABLESPACE_NAME);
在oracle中进行查询的一种方法是运行此查询
SELECT TABLESPACE_NAME, ROUND (SUM (BYTES) / 1048576) "Total Size MB"
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME
选择b.tablespace\u name、tbs\u size SizeGb、a.free\u space FreeGb 从选择表空间_name, 四舍五入字节数/1024/1024/1024,2作为空闲空间 从dba_自由空间 按表空间分组\u名称a, 选择表空间\u名称、字节总数/1024/1024/1024作为tbs\u大小 从dba_数据_文件 按表空间分组\u名称b 其中a.tablespace\u name+=b.tablespace\u name
ORDER BY 1您在标题中谈论表空间,但在文本中谈论分区和子分区。是哪一个?你试过什么?一个简单的搜索有很多可用的东西,为什么基本的东西不能满足你的需要?@user2115594:dude你需要测量一个特定表中的表空间大小或每个分区大小?是的,对不起,我真正需要的是测量我的原始表中的子分区大小。每个源表都使用分区和子分区创建,但它们都将数据插入3个表空间。下一步是为每个子分区创建一个表空间。是否可以知道子分区的大小(以MB或Gigas为单位)?是否有类似的查询来度量临时表空间?