查看表空间使用的两条常用SQL

1. 查看表空间大小:

  SELECT tablespace_name, SUM(bytes)/1024/1024 total FROM DBA_FREE_SPACE GROUP BY tablespace_name ORDER BY 2 DESC;

  SQL> SELECT tablespace_name, SUM(bytes)/1024/1024 || 'MB' total FROM DBA_FREE_SPACE GROUP BY tablespace_name ORDER BY 2 DESC;

  注意下上面两条SQL的排序,显然第一条SQL是我们需要的结果,按照表空间大小降序排列。之所以第二条SQL的排序乱,是因为使用了|| 'MB'连接字符串,则这个字段就作为字符串类型检索,排序时就会按照字符的ASCII进行排序。

  2. 查看表空间使用率:


SQL> BREAK ON REPORT

SQL> COMPUT SUM OF tbsp_size ON REPORT

SQL> compute SUM OF used        ON REPORT

SQL> compute SUM OF free         ON REPORT

SQL> COL tbspname     FORMAT     a20          HEADING 'Tablespace Name'

SQL> COL tbsp_size       FORMAT     999,999   HEADING 'Size|(MB)'

SQL> COL used             FORMAT     999,999    HEADING 'Used|(MB)'

SQL> COL free              FORMAT      999,999   HEADING 'Free|(MB)'

SQL> COL pct_used       FORMAT     999,999    HEADING '% Used'

SQL> SELECT df.tablespace_name                              tbspname,

sum(df.bytes)/1024/1024                                           tbsp_size,

nvl(sum(e.used_bytes)/1024/1024,0)                         used,

nvl(sum(f.free_bytes)/1024/1024,0)                            free,

nvl((sum(e.used_bytes)*100)/sum(df.bytes),0)            pct_used

FROM DBA_DATA_FILES df,

(SELECT file_id, SUM(nvl(bytes, 0)) used_bytes

FROM dba_extents

GROUP BY file_id) e,

(SELECT MAX(bytes) free_bytes, file_id

FROM dba_free_space

GROUP BY file_id) f

WHERE e.file_id(+) = df.file_id

AND df.file_id = f.file_id(+)

GROUP BY df.tablespace_name

ORDER BY 5 DESC;

  视图定义:

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-12-26 04:26:08

查看表空间使用的两条常用SQL的相关文章

Oracle 查看表空间的大小及使用情况sql语句_oracle

SQL1: 复制代码 代码如下: --1.查看表空间的名称及大小 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; --2.查看表空间物理文件的名称及大小 SELECT tables

oracle中如何查看表空间

1. 查看所有表空间大小 select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; 2. 未使用的表空间大小 select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name; 3. 所以使用空间可以这样计算 select a.tablespace_name,tot

sql oracle 数据库-一个表空间可以拥有两个用户吗

问题描述 一个表空间可以拥有两个用户吗 Create tablespace pro Datafile 'doradataworkts01.dbf Size 3m Autoextend on 请问上面datafile workts01.dbf文件里面包括表空间吗? 解决方案 当你创建用户的时候你就知道了,系统会让你制定表空间,若不制定就会设置为默认 1个数据库实例可以有多个表空间,一般用户是在表空间下的, 也就是说表空间是用户的上级,自然一个表空间就可以有多个用户了

ORACLE查看表空间对象

ORACLE如何查看表空间存储了那些数据库对象呢?可以使用下面脚本简单的查询表空间存储了那些对象: SELECT TABLESPACE_NAME       AS TABLESPACE_NAME      , SEGMENT_NAME          AS SEGMENT_NAME      , SUM(BYTES)/1024/1024  AS SEGMENT_SIZE FROM DBA_SEGMENTS WHERE TABLESPACE_NAME=&TABLESPACE_NAME GROUP

show_space(查看表空间使用情况)

第一个过程这个过程是用来查看表空间中已经使用的块字节未使用的块字节 create or replace procedure show_space(  p_segname in varchar2,  p_owner in varchar2 default user,  p_type in varchar2 default 'TABLE',  p_partition in varchar2 default null) as   l_total_blocks   number;  l_total_by

sql查询-sql 同一个表中如何把两条数据合并成一条显示,并显示两条数据的全部内容

问题描述 sql 同一个表中如何把两条数据合并成一条显示,并显示两条数据的全部内容 数据库是 sqlserver2008的环境. 是一个列变行的问题 ,请大师帮忙啊. 比如 table表中 字段: id name bianhao address shijian 1 张三 001 北京 2013-12-1 2 李四 001 北京 2013-12-1 最后显示的内容为: 字段: name1 name2 bianhao address shijian 张三 李四 001 北京 2013-12-1 合并

查看表空间及文件大小的语句

SELECT d.tablespace_name TS_Name,        d.contents TS_Type,        d.status TS_Status,        d.extent_management TS_ExtentManagement,        trunc(NVL(a.bytes / 1024 / 1024, 0)) TS_Size,        trunc(NVL(a.bytes - NVL(f.bytes, 0), 0) / 1024 / 1024)

Oracle中查看表空间使用率的SQL脚本分享_oracle

复制代码 代码如下: /* Formatted on 2012/5/31 14:51:13 (QP5 v5.185.11230.41888) */ SELECT D.TABLESPACE_NAME,        SPACE || 'M' "SUM_SPACE(M)",        BLOCKS "SUM_BLOCKS",        SPACE - NVL (FREE_SPACE, 0) || 'M' "USED_SPACE(M)",   

跟日期有关的两条经典SQL语句

语句 1.用一条语句得出某日期所在月份的最大天数? SELECT DAY(DATEADD(dd, -DAY('2004-02-13'), DATEADD(mm, 1, '2004-02-13'))) AS 'Day Number' 2.少记录变成多条记录问题 有表tbl日期       收入    支出2004-02-11 00:00:00 60 452004-03-01 00:00:00 60 452004-03-02 00:00:00 40 502004-03-05 00:00:00 50