2013-02-22 159 views
1

我有興趣查找有關我數據庫中表空間的某些信息,但我不太確定從哪裏開始。有人問我找到以下信息:表空間詳細信息

總結報告,以下內容: 列出所有的表空間,包括表名稱,所有者,類型和使用 通過表的總字節數,列表使用統計數據,免費字節和片段

我環顧四周淨,我發現這一點:

select tablespace_name from dba_tablespaces 
select tablespace_name from user_tablespaces 

這是對所有我的那一刻,但我不知道從哪裏裏去。 有人可以指導我通過我應該做什麼來收集所需的信息?

謝謝!

+0

這是更好的DBA – 2013-02-22 03:17:29

+0

問爲什麼這兩個標記SQL-Server和Oracle? – 2013-02-22 03:18:45

+0

,因爲我使用的是oracle db ...? – 2013-02-22 03:42:06

回答

1

我可以用這些幫助...

  • 名稱:dba_tablespaces.Tablespace_Name
  • 類型(永久,臨時撤消):dba_tablespaces.Contents
  • 尺寸:總和DBA_Data_Files.Bytes爲表
  • 免費字節:總和DBA_Free_Space.Bytes爲表空間使用
  • 總字節數:尺寸 - 免費字節
  • 片段:你的意思是分段嗎?如果是這樣,算上DBA_SEGMENTS行的 表空間

...而非擁有者;不知道如何找到它。

這裏有一個查詢來獲取名稱,型號,規格,使用,自由和段:

WITH 
    ts AS (
    SELECT Tablespace_Name, SUM(Bytes/1024) AS TotSize 
    FROM DBA_Data_Files 
    GROUP BY Tablespace_Name), 
    tx AS (SELECT Tablespace_Name, COUNT(*) AS Segments 
    FROM DBA_Segments 
    GROUP BY Tablespace_Name), 
    tf AS (SELECT Tablespace_Name, SUM(Bytes/1024) AS TotFree 
    FROM DBA_Free_Space 
    GROUP BY Tablespace_Name) 
SELECT 
    Tablespace_Name, 
    DBA_Tablespaces.Contents, 
    ts.TotSize, 
    ts.TotSize - tf.TotFree AS TotUsed, 
    tf.TotFree, 
    tx.Segments 
FROM DBA_Tablespaces 
INNER JOIN ts USING (Tablespace_Name) 
INNER JOIN tx USING (Tablespace_Name) 
INNER JOIN tf USING (Tablespace_Name) 
ORDER BY Tablespace_Name 
+0

謝謝,我會試試這段代碼。關於表空間的類型,我唯一知道的是有臨時表空間和常規表空間(?)不是100%確定臨時表空間是否被認爲是不同的類型。 – 2013-02-22 04:26:42

+0

下面是不同類型表空間的列表:http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/OTOC520/Default.aspx – 2013-02-22 04:29:19

+0

好的,那麼這就是DBA_Tablespaces.Contents列。根據[link](http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4157.htm)上的Oracle DBA_Tablespaces文檔,它可以是永久,臨時或UNDO。我會對上面的查詢。 – 2013-02-22 05:00:46

0

您可以使用下面的查詢:

查詢TS(TABLESPACE)信息

Dba_tablespaces

SQL>SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT, 

2   ALLOCATION_TYPE,CONTENTS, 

3   SEGMENT_SPACE_MANAGEMENT 

4   FROM DBA_TABLESPACES; 

TABLESPACE_NAME EXTENT_MAN ALLOCATIO CONTENTS SEGMEN 

————— ———- ——— ——– —— 

SYSTEM  DICTIONARY USER  PERMANENT MANUAL 

UNDOTBS  LOCAL  SYSTEM UNDO  MANUAL 

TEMP  LOCAL  SYSTEM TEMPORARY MANUAL 

TOOL  LOCAL  SYSTEM PERMANENT MANUAL 

USERS  LOCAL  SYSTEM PERMANENT MANUAL 

APP_DATA DICTIONARY USER  PERMANENT MANUAL 

APP_INDEX LOCAL  SYSTEM PERMANENT AUTO 

ii。 DBA_FREE_SPACE

SQL>SELECT TABLESPACE_NAME,SUM(BYTES)FREE_SPACE 

2 FROM DBA_FREE_SPACE 

3 GROUP BY TABLESPACE_NAME; 

TABLESPACE_NAME FREE_SPACE 

————————— ——— 

APP_DATA      10481664 

APP_INDEX     10223616 

SYSTEM       88281088 

UNDOTBS       208338944 

USERS        24051712 

III。 DBA_EXTENTS,USER_EXTENTS - 顯示有關擴展區,擴展區大小,關聯的段和表空間的信息。

DBA_DATA_FILES - 顯示數據文件屬於表空間

DBA_TEMP_FILES - 顯示屬於本地管理的臨時管理表空間的臨時文件。

iv。DBA_USERS

SQL>SELECT DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE 

2 FROM DBA_USERS 

3 WHERE USERNAME = ‘HR’; 

DEFAULT_TABLESPACE TEMPORARY_TABLESPACE 

——————————- ——————– 

EXAMPLE        TEMP 

閱讀所有關於Oracle表空間和Oracle tablspace式管理:
http://www.techienawa.com/logical-structure/oracle-tablespace/
http://www.techienawa.com/logical-structure/tablespace-oracle/