查询数据库表空间(oracle怎么查询所有的表空间的名称)
大家好,关于查询数据库表空间很多朋友都还不太明白,今天小编就来为大家分享关于oracle怎么查询所有的表空间的名称的知识,希望对各位有所帮助!
oracle怎么查询所有的表空间的名称
oracle数据库中,查询素有表空间的名称只需要一条sql语句即可:
select tablespace_name from user_tablespaces;
结果输出如下图:
在上式的sql中,“user_tablespaces”即为表空间信息所在表,所需的表空间信息需要从该表中获取,“tablespace_name”即为表空间名称,
如果希望查询所有表空间名称和其他相关信息,可以将使用如下sql语句:
select* from user_tablespaces;
结果输出如下:
扩展资料:
针对表空间,还有其他的查询可供参考:
1、查看表空间的名称及对应大小
SELECT t.tablespace_name, round(SUM(bytes/(1024* 1024)), 0) ts_sizeFROM
dba_tablespaces t, dba_data_files dWHERE t.tablespace_name=
d.tablespace_nameGROUP BY t.tablespace_name;
输出结果如下:
2、查看表空间物理文件的名称及大小
SELECT tablespace_name,file_id,file_name,round(bytes/(1024* 1024), 0) total_space
FROM dba_data_filesORDER BY tablespace_name;
输出结果为:
3、查询当前用户所有表名及其所属表空间
selecttable_name表名,tablespace_name所使用表空间fromuser_tables;
输出结果为:
如何查询表和索引所在的表空间
一查询某个表所在表空间的简单方法
PostgreSQL提供类似"\"命令很方便得到相关信息,命令如下:
skytf=>\d test_2
Table"skytf.test_2"
Column| Type| Modifiers
--------+-----------------------+-----------
id| integer|
obj_id| integer| not null
name| character varying(64)|
Indexes:
"idx_hash_name" hash(name)
"idx_test_2" btree(id, obj_id)
Tablespace:"tbs_skytf_idx"
备注:如果这个表的表空间为当前数据库的默认表空间,那么上面则不会显示 Tablespace信息,
相反,则会显示这张有的表空间,例如上面的表 test_2的表空间为 tbs_skytf_idx,而
表空间"tbs_skytf_idx"不是数据库 skytf的默认表空间,那么如何查询数据库的默认
表空间呢,可以通过以下命令查询。
--1.1查询数据库的默认表空间
skytf=> select datname,dattablespace from pg_database where datname='skytf';
datname| dattablespace
---------+---------------
skytf| 14203070
(1 row)
skytf=> select oid,spcname from pg_tablespace where oid=14203070;
oid| spcname
----------+-----------
14203070| tbs_skytf
(1 row)
备注:通过以上查出数据库 skytf的默认表空间为 tbs_skytf。
二批量查询数据库表和索引的表空间
--2.1查询表和索引所在的表空间
select relname, relkind, relpages,pg_size_pretty(pg_relation_size(a.oid)), tb.spcname
from pg_class a, pg_tablespace tb
where a.reltablespace= tb.oid
and a.relkind in('r','i')
order by a.relpages desc;
备注:上面只取了部分结果,这个查询能够查询表和索引所处的表空间,但是有一点需要注意,这个查询
仅显示表空间不是数据库默认表空间的数据库对像,而我们通常需要查出位于数据库默认表空间的
对像,显然上面的查询不是我们想要的,接下来看另一个查询。
--2.2查询位于默认数据库表空间的对像
select relname, relkind, relpages,pg_size_pretty(pg_relation_size(a.oid)),reltablespace,relowner
from pg_class a
where a.relkind in('r','i')
and reltablespace='0'
order by a.relpages desc;
备注:这个查询加入限制条件 reltablespace='0',即可查找出位于当前数据库默认表空间的
数据库表和索引。通常这才是我们想要的结果,接下来可以把部分表转移到其它表空间上去,转移
的方法可以用"ALTER TABLE move tablespace"或者重建索引移表空间等方法,这里不详细介绍。
--2.3查询在某个表空间上的对像
select relname, relkind, relpages,pg_size_pretty(pg_relation_size(a.oid)),reltablespace,relowner
from pg_class a, pg_tablespace tb
where a.relkind in('r','i')
and a.reltablespace=tb.oid
and tb.spcname='tablespace_name'
order by a.relpages desc;
--2.4手册上对于 pgclass视图的 reltablespace字段解释
The tablespace in which this relation is stored. If zero, the database is default tablespace is
implied.(Not meaningful if the relation has no on-disk file.)
如何使用SQL语句查询数据库及表的空间容量
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)
关于查询数据库表空间的内容到此结束,希望对大家有所帮助。