oracle表空间的已分配大小和空闲的已分配大小

如何查看oracle表空间已使用大小

1. 查看所有表空间大小

SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
2 group by tablespace_name;

2. 已经使用的表空间大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
2 group by tablespace_name;

3. 所以使用空间可以这样计算

select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;


4. 下面这条语句查看所有segment的大小。
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name

5. 还有在命令行情况下如何将结果放到一个文件里。
SQL> spool out.txt
SQL> select * from v$database;
SQL> spool off

1. 给你个最实用的工具:SQL Developer 这个是oracle官方的工具
下载地址:http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
下载完成连接了数据库之后 右键 点击管理数据库就可以看到所有的表空间实用情况
2.也可以使用 Toad for Oracle
3.当然你还可以在你使用的sql工具中用sql查询 比如plsql
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;

SELECT Total.name "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name = Total.name

  • 17392463170: Oracle数据库中为新创建的表分配的初始空间通常为多大?
    狐瑞:即新建表分配64k,每次扩展1M。
  • 17392463170: ...malloc既然是动态分配,可它在分配的时候已经确定大小了
    狐瑞:int *p=(int *)malloc(sizeof(int));\/\/动态分配一个整数的内存空间。同样是4字节 静态分配内存以及new关键词都是已知类型,malloc分配空间时并不管内存用于储存什么类型的数据,所以它返回虚指针,因此需要强制转换,比如例子中malloc前面要加(int *)。
  • 17392463170: 详解Oracle本地管理表空间
    狐瑞:表五……未用空间很明显 ORACLE需要有一个机制来管理表空间中各数据文件的这些分配的或未分配的空间 为了跟踪这些可以使用的空间(包括未分配使用的和可以重复使用的) 对于每一个空间 我们必须知道 这个可用空间位于什么数据文件 这个空间的尺寸是多大 如果它在用了 是哪一个段占用的这个空间直到 i之前 所有的表空间...
  • 17392463170: Oracle 10g安装过后怎样调整内存分配大小
    狐瑞:ORACLE 10g的话看你是否使用ASMM(自动共享内存管理,11g就是AMM了),如果是的话,就设置参数:sga_target、pga_aggregate_target两个参数就O了,至于比例看系统,OLTP系统前者设计大一点,占用整个INSTANCE百分之六七十比较正常,OLAP的时候SGA没有必要要那么大了。不过你要自己设置每一个细节参数的话,就...
  • 17392463170: 表空间数据块区段大小排序
    狐瑞:2. 区段(Extent):区段是由连续的数据块组成,它是表空间内分配空间的基本单位。当一个表或索引需要更多的空间时,数据库会分配一个新的区段。每个区段包含相同数量的连续数据块。区段的大小等于数据块的大小乘以数据块的数量。3. 表空间(Tablespace):表空间是由一个或多个数据文件组成,数据...
  • 17392463170: 如何在Oracle中建立表和表空间?
    狐瑞:MANUAL:目前已不用,主要是为向后兼容.第七:指定块大小.可以具体指定表空间数据块的大小.创建例子如下:1 CREATE TABLESPACE "SAMPLE"2 LOGGING 3 DATAFILE 'D:\\ORACLE\\ORADATA\\ORA92\\SAMPLE.ora' SIZE 5M,4 'D:\\ORACLE\\ORADATA\\ORA92\\dd.ora' SIZE 5M 5 EXTENT MANAGEMENT LOCAL 6 UNIFORM. ...
  • 17392463170: 查询Oracle数据库表空间信息的方法
    狐瑞:select b file_name 物理文件名 b tablespace_name 表空间 b bytes\/ \/ 大小M (b bytes sum(nvl(a bytes )))\/ \/ 已使用M substr((b bytes sum(nvl(a bytes )))\/(b bytes)* ) 利用率from dba_free_space a dba_data_files bwhere a file_id=b file_idgroup by b tablespace_name...
  • 17392463170: 请问oracle 11g 创建300G表空间需要多长时间啊?
    狐瑞:这个要根据你的存储IO来估算。建议不要创建一个300G的数据文件给该表空间使用,而是分成多个小数据文件进行。如果要创建300G一个数据文件,大概需要挺长时间,我感觉30分钟吧。
  • 17392463170: 电脑虚拟内存的当前已分配怎么设置?
    狐瑞:一、分配方法将初始大小和最大值同时设置为电脑物理内存的1-2倍,比如1G设置为2048MB(1G内存是2倍),2G设置为3072-4096MB(2G内存是1.5-2倍),3G设置为3072-4608MB(3G内存是1-1.5倍),4G内存先设置为4096MB(4G的1倍不够在加),如果用户的物理内存小于2G或是2G,可以升级一下电脑 的...
  • 17392463170: c语言中malloc是什么?怎么用?
    狐瑞:malloc() 函数用来动态地分配内存空间,其原型为:void* malloc (size_t size);说明:【参数说明】size 为需要分配的内存空间的大小,以字节(Byte)计。【函数说明】malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望...

  • 相关链接

  • 查询表空间大小及使用情况
  • oracle表空间为什么会满
  • oracle表空间满了怎么处理
  • oracle临时表空间满了
  • 经验分享为自博友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
    有问题请发邮件给我们
    © 经验分享网