当前位置:首页 » 数据仓库 » 如何查询数据库表空间
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何查询数据库表空间

发布时间: 2022-12-13 18:42:38

⑴ oracle数据库如何查看表空间大小

1.查看Oracle数据库中表空间信息的工具方法: 使用oracle enterprise manager console工具,这是oracle的客户端工具,当安装oracle服务器或客户端时会自动安装此工具,在...
2.查看Oracle数据库中表空间信息的命令方法: 通过查询数据库系统中的数据字典表(data dictionary tables)获取表空间的相关信息,首先使用客户端工具连接到数据库,这些工具可以是sql..

⑵ 查看数据库中有哪些表空间

1、查看表空间名字:

select distinct TABLESPACE_NAME from tabs

2、查看几个表空间:

select count(distinct TABLESPACE_NAME) from tabs

⑶ 如何查看表空间

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 segment_name,
tablespace_name,
r.status,

(initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent,

max_extents,
v.curext curextent
FROM dba_rollback_segs r, v$rollstat
v
WHERE r.segment_id = v.usn(+)
ORDER BY segment_name;
--4、查看控制文件

SELECT NAME FROM v$controlfile;
--5、查看日志文件
SELECT MEMBER FROM
v$logfile;
--6、查看表空间的使用情况
SELECT SUM(bytes) / (1024 * 1024) AS
free_space, tablespace_name
FROM dba_free_space
GROUP BY
tablespace_name;
SELECT a.tablespace_name,
a.bytes total,
b.bytes
used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes *
100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b,
sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND
a.tablespace_name = c.tablespace_name;
--7、查看数据库库对象
SELECT owner,
object_type, status, COUNT(*) count#
FROM all_objects
GROUP BY owner,
object_type, status;
--8、查看数据库的版本
SELECT version
FROM
proct_component_version
WHERE substr(proct, 1, 6) = 'Oracle';

--9、查看数据库的创建日期和归档方式
SELECT created, log_mode, log_mode FROM v$database;

⑷ 查看数据库中有哪些表空间

一、系统表空间
在 MySQL 数据目录下有一个名为 ibdata1 的文件,可以保存一张或者多张表。
923275 12M -rw-r----- 1 mysql mysql 12M 3月 18 10:42 ibdata1
这个文件就是 MySQL 的系统表空间文件,默认为 1 个,可以有多个,只需要在配置文件 my.cnf 里面这样定义即可。
innodb_data_file_path=ibdata1:200M;ibdata2:200M:autoextend:max:800M系统表空间不仅可以是文件系统组成的文件,也可以是非文件系统组成的磁盘块,比如裸设备,定义也很简单innodb_data_file_path=/dev/nvme0n1p1:3Gnewraw;/dev/nvme0n1p2:2Gnewraw
系统表空间里都有些啥内容?
具体内容包括:double writer buffer、 change buffer、数据字典(MySQL 8.0 之前)、表数据、表索引。
那 MySQL 为什么现在主流版本默认都不是系统表空间?
究其原因,系统表空间有三个最大的缺点:原因 1:无法做到自动收缩磁盘空间,造成很大的空间浪费。即使它包含的表都被删掉,这部分空间也不会自动释放。
二、单表空间
单表空间不同于系统表空间,每个表空间和表是一一对应的关系,每张表都有自己的表空间。具体在磁盘上表现为后缀为 .ibd 的文件。比如表 t1,对应的表空间文件为 t1.ibd917107 96K -rw-r----- 1 mysql mysql 96K 3月 18 16:13 t1.ibd

单表空间如何应用到具体的表呢?
有两种方式:方式 1:在配置文件中开启。在配置文件中开启单表空间设置参数 innodb_filer_per_table,这样默认对当前库下所有表开启单表空间。innodb_file_per_table=1另外也可以直接建表时指定单表空间mysql> create table t1 (id int, r1 char(36)) tablespace innodb_file_per_table;
Query OK, 0 rows affected (0.04 sec)
单表空间除了解决之前说的系统表空间的几个缺点外,还有其他的优点,详细如下:
1. truncate table 操作比其他的任何表空间都快;
2. 可以把不同的表按照使用场景指定在不同的磁盘目录;
比如日志表放在慢点的磁盘,把需要经常随机读的表放在 SSD 上等。
mysql> create table ytt_dedicated (id int) data directory = '/var/lib/mysql-files';
Query OK, 0 rows affected (0.04 sec)3. 可以用 optimize table 来收缩或者重建经常增删改查的表。一般过程是这样的:建立和原来表一样的表结构和数据文件,把真实数据复制到临时文件,再删掉原始表定义和数据文件,最后把临时文件的名字改为和原始表一样的。
三、通用表空间
通用表空间先是出现在 MySQL Cluster 里,也就是 NDB 引擎。从 MySQL 5.7 引入到 InnoDB 引擎。通用表空间和系统表空间一样,也是共享表空间。每个表空间可以包含一张或者多张表,也就是说通用表空间和表之间是一对多的关系。

⑸ 如何查看oracle数据库中的表空间

只查询名字的话用如下语句:

select tablespace_name from dba_tablespaces;

表空间含义:

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。
Oracle数据库中至少存在一个表空间,即SYSTEM的表空间。

⑹ 如何使用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;
总有一款适合你!