當前位置:首頁 » 數據倉庫 » 如何查詢資料庫表空間
擴展閱讀
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;
總有一款適合你!