查询所有表空间的大小

 

--  查询所有标空间的大小 (sys 用户有此权限)
SELECT a.tablespace_name "Tablespace_name",
       total/(1024*1024) as "TotalSize (MB)",
       free/(1024*1024)  as "FreeSize (MB)",
       (total - free)/(1024*1024)  as "UseSize(MB)",
       ROUND((total - free) / total, 4) * 100 "UserPersent %"
  FROM (SELECT tablespace_name, SUM(bytes) free
          FROM DBA_FREE_SPACE
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) total
          FROM DBA_DATA_FILES
         GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
--  and a.tablespace_name = 'XXX'  -- 查询具体哪个表空间的大小

--  查询临时表空间的大小 (sys 用户有此权限)
SELECT a.tablespace_name as "Tablespace_name",
       total/(1024*1024) as "TotalSize (MB)",
       (total-used)/(1024*1024) as "FreeSize (MB)",
       used/(1024*1024) as "UseSize(MB)",
       ROUND(used / total, 4) * 100 "UserPersent (%)"
  FROM (SELECT tablespace_name, SUM(bytes_used) used
          FROM v$temp_space_header
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) total
          FROM dba_temp_files
         GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name

### 如何使用 SQL 查询 PostgreSQL 表空间大小 在 PostgreSQL 中,可以通过内置函数 `pg_tablespace_size` 来查询表空间大小。以下是具体的实现方法: #### 方法一:查询所有表空间大小 可以使用以下 SQL 语句来获取所有表空间及其对应的大小(单位为字节): ```sql SELECT spcname, pg_tablespace_size(spcname) AS size_in_bytes FROM pg_tablespace; ``` 此查询返回的结果列包括表空间名称 (`spcname`) 和其对应的空间大小(以字节数表示)。如果希望结果更直观,可将其转换为人类友好的格式[^1]。 #### 方法二:查询特定表空间大小 对于某个指定的表空间,可以直接通过传递表空间名给 `pg_tablespace_size` 函数来获得该表空间的具体大小。例如: ```sql SELECT pg_size_pretty(pg_tablespace_size('pg_default')) AS size; ``` 这里使用了辅助函数 `pg_size_pretty` 将原始字节数转化为易于理解的形式(如 KB、MB 或 GB),从而提升可读性[^2]。 #### 方法三:另一种方式查询所有表空间大小 除了按表空间名字调用外,还可以基于对象 ID (OID) 进行同样的操作: ```sql SELECT spcname, pg_size_pretty(pg_tablespace_size(oid)) AS size FROM pg_tablespace; ``` 这种方法同样能够列举出每一个已定义表空间所占据的实际存储量,并且利用 `pg_size_pretty()` 提供更加清晰的表现形式[^3]。 以上三种途径均能有效帮助管理员了解当前数据库实例下各个不同表空间资源分配状况,进而做出相应调整决策支持业务需求变化或者优化性能表现等方面考虑[^4]。 ```sql -- 示例代码展示如何结合两种功能一起使用 SELECT spcname, pg_tablespace_size(spcname) AS raw_size, pg_size_pretty(pg_tablespace_size(spcname)) AS pretty_size FROM pg_tablespace; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值