查看資料庫表空間
『壹』 怎麼察看Oracle 資料庫表空間的使用情況
查看的方法和詳細的操作步驟如下:
1、首先,因為oracle在Linux系統下運行,所以必須連接到Linux系統,如下圖所示,然後進入下一步。
『貳』 oracle資料庫如何查看錶空間大小
1.查看Oracle資料庫中表空間信息的工具方法: 使用oracle enterprise manager console工具,這是oracle的客戶端工具,當安裝oracle伺服器或客戶端時會自動安裝此工具,在...
2.查看Oracle資料庫中表空間信息的命令方法: 通過查詢資料庫系統中的數據字典表(data dictionary tables)獲取表空間的相關信息,首先使用客戶端工具連接到資料庫,這些工具可以是sql..
『叄』 如何查看資料庫的默認表空間,與臨時表空間
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用戶查看
2、縮小臨時表空間大小
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF' resize 100M;
3、擴展臨時表空間:
方法一、增大臨時文件大小:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp01.dbf』 resize 100m;
方法二、將臨時數據文件設為自動擴展:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp01.dbf』 autoextend on next 5m maxsize unlimited;
方法三、向臨時表空間中添加數據文件:
SQL> alter tablespace temp add tempfile 『/u01/app/oracle/oradata/orcl/temp02.dbf』 size 100m;
4、創建臨時表空間:
SQL> create temporary tablespace temp1 tempfile 『/u01/app/oracle/oradata/orcl/temp11.dbf』 size 10M;
5、更改系統的默認臨時表空間:
--查詢默認臨時表空間
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--修改默認臨時表空間
alter database default temporary tablespace temp1;
所有用戶的默認臨時表空間都將切換為新的臨時表空間:
select username,temporary_tablespace,default_ from dba_users;
--更改某一用戶的臨時表空間:
alter user scott temporary tablespace temp;
6、刪除臨時表空間
刪除臨時表空間的一個數據文件:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp02.dbf』 drop;
刪除臨時表空間(徹底刪除):
SQL> drop tablespace temp1 including contents and datafiles cascade constraints;
7、查看臨時表空間的使用情況(GV_$TEMP_SPACE_HEADER視圖必須在sys用戶下才能查詢)
GV_$TEMP_SPACE_HEADER視圖記錄了臨時表空間的使用大小與未使用的大小
dba_temp_files視圖的bytes欄位記錄的是臨時表空間的總大小
SELECT temp_used.tablespace_name,
total - used as "Free",
total as "Total",
round(nvl(total - used, 0) * 100 / total, 3) "Free percent"
FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used
FROM GV_$TEMP_SPACE_HEADER
GROUP BY tablespace_name) temp_used,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
FROM dba_temp_files
GROUP BY tablespace_name) temp_total
WHERE temp_used.tablespace_name = temp_total.tablespace_name
ORDER BY B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, B.BLOCKS;
希望能幫到您!
『肆』 查看資料庫中有哪些表空間
一、系統表空間
在 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資料庫中所有的表空間
1、首先需要找到oracle安裝目錄,打開控制台管理。
『陸』 怎樣查詢oracle資料庫中所有的表空間
1、首先需要找到oracle安裝目錄,打開控制台管理。
2、進入控制台界面,輸入用戶名和密碼進行登錄驗證。
3、登錄成功,進入主界面,點擊菜單欄處【伺服器】。
4、此時在存儲欄,找到表空間選項,點擊打開。
5、在搜索欄輸入表空間名稱,進行搜索。
6、此時在下方結果欄,可以看到表空間狀態。
『柒』 如何使用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、查看錶空間名字:
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;