1. 程式人生 > >Oracle--查詢表空間、schema、表等儲存情況操作

Oracle--查詢表空間、schema、表等儲存情況操作

一、對錶空間的查詢

表空間是資料庫的邏輯劃分,一個表空間只能屬於一個數據庫。所有的資料庫物件都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。

Oracle資料庫中至少存在一個表空間,即SYSTEM的表空間。

1、查詢所有表空間名

select tablespace_name from sys.dba_tablespaces;

2、查詢所有表空間大小

//單位M
SELECT DD.TABLESPACE_NAME,
      ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) "表空間大小(M)"
FROM SYS.
DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME

3、查詢所有表空間剩餘空間大小

SELECT TABLESPACE_NAME,
       ROUND(SUM(BYTES) / (1024 * 1024), 2) "空閒空間(M)",
       ROUND(MAX(BYTES) / (1024 * 1024), 2) "最大塊(M)"
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME

4、表空間已使用大小

--方法一:總表空間 - 空閒表空間
select d.tablespace_name, d.totalSize - f.freeSize "已使用空間(M)"
from ( SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) totalSize FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME ) d, ( SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) freeSize FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME ) f where
d.TABLESPACE_NAME = f.TABLESPACE_NAME --方法二: select TABLESPACE_NAME,round(sum(bytes)/(1024*1024),2) "已使用空間(M)" from sys.dba_segments GROUP BY TABLESPACE_NAME

注:建議採用第一種方法,第二種方法會忽略未使用的表空間,且第一種方法得到的結果普遍比第二種方法得到的結果大1M,第一種方法得到的結果應該更準確

5、增加表空間大小的方式

--第一種:格式化資料檔案初始大小並設定自增長到最大值
create tablespace d_test1  datafile '/test1_data/datafile01.dbf' size 10m autoextend on next 5m maxsize 100m;

--第二種:格式化資料檔案初始大小不設定自增長,當然也就沒有最大值
alter tablespace d_test1 add datafile '/test1_data/datafile02.dbf' size 10m;

二、對schema的查詢

1、查詢所有schema

//一個使用者(user)對應一個方案(schema)
select username from sys.dba_users

2、查詢schema下的所有表

select table_name from sys.dba_tables where owner='schema名';

3、查詢所有的schema及所屬的所有表

select s.username "schema",t.table_name "table_name" from sys.dba_users s left join sys.dba_tables t on s.username=t.owner order by s.username asc

4、查詢所有的schema所佔空間大小

//消耗的總磁碟空間(包括索引、表空間空閒空間),單位G
select 
   owner,
   sum(bytes)/1024/1024/1024 schema_size_gig
from 
   sys.dba_segments 
group by 
   owner;

5、查詢指定schema各segment_type佔用空間大小

select 
   sum(bytes)/1024/1024/1024 as size_in_gig, 
   segment_type
from 
   dba_segments
where 
   owner='SCOTT' 
group by 
   segment_type;

Drop Table 之後,如果空間不能回收,需要執行下面語句

  清除當前使用者的回收站:purge recyclebin;

  清除所有使用者的回收站:purge dba_recyclebin;

三、查詢表

1、通過指定表空間查詢所屬的表名

Select Table_Name, Tablespace_Name
From Dba_Tables
Where Tablespace_Name = 'USERS';

2、通過指定表空間查詢所屬表的佔用空間

select segment_name, bytes/1024||'KB' "佔用空間"
from user_segments 
where segment_type='TABLE' and tablespace_name='USERS' order by segment_name asc

相關推薦

Oracle--查詢表空間schema儲存情況操作

一、對錶空間的查詢 表空間是資料庫的邏輯劃分,一個表空間只能屬於一個數據庫。所有的資料庫物件都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。 Oracle資料庫中至少存在一個表空間,即SYSTEM的表空間。 1、查詢所有

oracle查詢表空間大小以及每個所佔空間的大小

1、查詢資料庫中所有的表空間以及表空間所佔空間的大小,直接執行語句就可以了: select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; 2、查看

ORACLE 資料庫空間SCHEMA資料檔案的概念

      在Oracle中,結合邏輯儲存與物理儲存的概念,我們可以這樣來理解資料庫、表空間、SCHEMA、資料檔案這些概念:      資料庫是一個大圈,裡面圈著的是表空間,表空間裡面是資料檔案,那麼schema是什麼呢?schema是一個邏輯概念,是一個集合,但schem

DB2資料庫-庫級別配置-編碼schema以及空間配置

編碼格式的配置。 使用db2 get db cfg for databasename命令查詢,可以看到程式碼集為UTF-8 例如 db2 get db cfg for test, 得到如下結果。 如需要注意的時,資料庫建庫時一旦指定了程式碼集,則不能修改,只能刪除重建。 建庫

空間資料檔案schema的關係

首先,你需要明白的一點是:資料庫的物理結構是由資料庫的作業系統檔案所決定,每一個Oracle資料庫是由三種類型的檔案組成:資料檔案、日誌檔案和控制檔案。資料庫的檔案為資料庫資訊提供真正的物理儲存。 每一個Oracle資料庫有一個或多個物理的資料檔案(data file)。一個

Oracle 查詢表空間及某個的大小

1、查詢某個表的大小 (需更改“你要查詢的使用者”) --注,僅表資料的大小,不含索引、分割槽、LOB型別 select Segment_Name "表名",sum(bytes)/1024/1024 "表大小(M)" From User_Extents Group B

冒泡排序36選7不重復水仙花數九九乘法案例

strong table 整數 排序 sum n) += flag false 九九乘法表 var str = ‘<table border=1px>‘; for(var i = 1;i <=9 ;i++ ){

oracle查詢表空間使用率

oracle表空間SELECT TABLESPACE_NAME, MEGS_ALLOC "Size(m)", MEGS_FREE "Free(m)", MEGS_USED "Used(m)", PCT_

ORACLE 查詢表空間使用情況

SELECT a.tablespace_name ,--表空間 Round(a.bytes/(1024*1024*1024),3),-- 大小G     Round(b.bytes/(1024*1024*1024)),  --已使用G Round(c.bytes/(10

postgresql中clustercatalogdatabaseschematable的區別

Example Scenario For example, a company could have two different software development teams. One writes software to manage the warehouses

二十八全域性臨時用於多delete操作的SQL優化

          全域性臨時表用於多delete操作的SQL優化        某日,某某生產系統忽然日誌暴增,

Oracle查詢表空間使用情況

 通過dba_data_files 與dba_free_space 按照tablespace_name分組統計,然後進行關聯即可select c.tablespace_name "表空間",      

如何用DELPHI實現把WORDEXCEL和圖片儲存到資料庫中

 用image欄位儲存這些文件。     var         word_stream:   TMemoryStream;         filename:   string;     begin         if   odgDoc.Execut

oracle查詢表空間空間佔用情況

轉自: http://www.cnblogs.com/HondaHsu/archive/2009/08/14/1545914.html select a.tablespace_name,a.bytes bytes_used,b.largest,round(((a.byt

單鏈順序儲存相關操作的c語言實現

以前學資料結構時,對於單鏈表的順序儲存的原理都懂,但是從沒有好好地程式設計實現一下,現在呢,重溫資料結構,然後實現了一下.下面是原始碼.實現了初始化,建立,查詢,刪除,定位還有兩個連結串列的合併.#i

[oracle]空間情況查看占用擴容使用情況空間維護操作

file where sed limit sel dbf limited 每次 文件大小 --查詢表空間使用情況SELECT Upper(F.TABLESPACE_NAME) "表空間名", D.TOT_GROOTTE_MB

Oracle查詢表的大小的佔用情況空間的大小

有兩種含義的表大小。一種是分配給一個表的物理空間數量,而不管空間是否被使用。可以這樣查詢獲得位元組數: select segment_name, bytes  from user_segments  where segment_type = 'TABLE';  或者 &

分享知識-快樂自己:Oracle基本語法(建立:空間使用者授權約束)使用指南

--2.1)建立主鍵約束-- alter table Student add constraint PK_Student_StuId primary key(StuId); alter table StuClass add constraint PK_StuClass_ClassId primar

mysqloraclesqlserver根據對應的查詢表中的所有欄位名稱型別別名長度資訊

SELECT  t.COLUMN_NAME AS NAME,  (   CASE   WHEN t.IS_NULLABLE = 'YES' THEN    '1'   ELSE    '0'   END  ) AS isNull,  (t.ORDINAL_POSITION * 10) AS sort,  is

Oracle創建用戶角色授權空間

數據 revoke 空間名 plus with 其他 ini ota article oracle數據庫的權限系統分為系統權限與對象權限。系統權限( database system privilege )可以讓用戶執行特定的命令集。例如,create table權限允許用戶