如何使用SQL语句查询数据库及表的空间容量

如题所述

--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
tablespace_name,
file_id,
file_name,
round(bytes/(1024*1024),0)
total_space
from
dba_data_files
order
by
tablespace_name;
3.查看所有表空间使用情况
select
b.file_id
文件ID号,
b.tablespace_name
表空间名,
b.bytes/1024/1024||'M'字节数,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M'
已使用,
sum(nvl(a.bytes,0))/1024/1024||'M'
剩余空间,
round(100
-
sum(nvl(a.bytes,0))/(b.bytes)*100,2)||
'%'
占用百分比
from
dba_free_space
a,dba_data_files
b
where
a.file_id=b.file_id
group
by
b.tablespace_name,b.file_id,b.bytes
order
by
b.file_id;
总有一款适合你!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-22
sybase公司是世界著名的数据库厂家,其关系数据库产品sybase
sql
server在中国大中型企事业单位中拥有大量的用户。针对获取数据库相关信息也提供了对应的api,以便管理进行维护。
一.sp_spaceused
可看到数据库空间包括日志(对应数据库)
打开sql
advantage
对话框——输入sp_spaceused(上边数据库选择要查的数据库)或直接
use
your_db_name
go
sp_spaceused
go
运行!出现如下信息
database
name:数据库名称
datebase
size:数据库空间总大小
reserved:已分配空间
data数据:已分配空间中数据占用空间大小
index_size索引:已分配空间中index_size索引占用空间大小
unused:为已分配空间中未使用空间大小
计算关系:
reserved(已分配空间)=data+index_size+unused
剩余空间=
datebase
size(总空间)—已分配空间(resrved)
二.sp_helpdb
db_name
可看到数据库占用的数据库设备device的空间信息(对应数据库设备和数据库)
打开sql
advantage
对话框——输入sp_s
helpdb
db
local(local为要看的数据库名字如不输入则显示所有数据库)
运行!显示如下信息:
(一).数据库方面
1.
name:数据库名字
2.
db_size:数据库空间大小
3.
owner:数据库所有者
4.
created:数据库创建时间
5.
status:状态
(二).数据库设备方面
1.
device_fragments:数据库设备名称
2.
size:数据库占用数据库设备的空间大小
单位mb
3.
usage:用法
用途
4.
created:数据库占用的数据库设备的空间的创建时间
5.
free
kbytes
:数据库占用的数据库设备的剩余空间
单位kb
6.
log
only
free
kbytes:数据库日志设备中日志剩余空间
单位kb
注意:由于数据库创建后不一定全部占用数据库设备的所有空间,可以在以后通过增加的方法占用设备空间,因此每增加一次就会有一条数据库设备信息
计算关系:
剩余空间=所有free
kbytes(剩余kb)相加+log
only
free
kbytes
数据库占用数据库设备总空间(size)=size1+size2+……..(所有相加)=数据库总空间(db_size)=
reserved(已分配空间)+剩余空间
free
kbytes(剩余kb)相加+log
only
free
kbytes=
datebase
size(总空间)—已分配空间(resrved)
相似回答
大家正在搜