熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

查詢Oracle數據庫表空間信息的方法

2013-11-13 22:12:28  來源: Oracle 

  表空間是數據庫中最大的邏輯單位與存儲空間單位數據庫系統通過表空間為數據庫對象分配空間表空間在物理上體現為磁盤數據文件每一個表空間由一個或多個數據文件組成一個數據文件只可與一個表空間相聯系這是邏輯與物理的統一了解表空間和數據文件的的屬性及使用率是數據庫管理員的一項重要職責在本文中筆者將以oracle為例詳細介紹查詢Oracle數據庫表空間信息和數據文件信息的方法希望能幫助大家更深入了解表空間的知識和應用

  如何查看Oracle數據庫中表空間信息的方法

  從Oracle數據庫中工具入手

  使用oracle enterprise manager console工具這是oracle的客戶端工具當安裝oracle服務器或客戶端時會自動安裝此工具在windows操作系統上完成oracle安裝後通過下面的方法登錄該工具開始菜單——程序——OracleOraHome——Enterprise Manager Console(單擊)——oracle enterprise manager console登錄——選擇獨立啟動單選框——確定 —— oracle enterprise manager console獨立 ——選擇要登錄的實例名 ——彈出數據庫連接信息 ——輸入用戶名/口令 (一般使用sys用戶)連接身份選擇選擇SYSDBA——確定這時已經成功登錄該工具選擇存儲 ——表空間會看到如下的界面該界面顯示了表空間名稱表空間類型區管理類型為單位的表空間大小已使用的表空間大小及表空間利用率

  從Oracle數據庫中命令方法入手

  通過查詢數據庫系統中的數據字典表(data dictionary tables)獲取表空間的相關信息首先使用客戶端工具連接到數據庫這些工具可以是SQLPLUS字符工具TOADPL/SQL等連接到數據庫後執行如下的查詢語句

  select aa 表空間名稱cc 類型cc 區管理bb// 表空間大小M(bbaa)// 已使用Msubstr((bbaa)/bb*) 利用率from(select tablespace_name a sum(nvl(bytes)) a from dba_free_space group by tablespace_name) a(select tablespace_name bsum(bytes) b from dba_data_files group by tablespace_name) b(select tablespace_name ccontents cextent_management c from dba_tablespaces) cwhere aa=bb and cc=bb;

  該語句通過查詢dba_free_spacedba_data_filesdba_tablespaces這三個數據字典表得到了表空間名稱表空間類型區管理類型為單位的表空間大小已使用的表空間大小及表空間利用率dba_free_space表描述了表空間的空閒大小dba_data_files表描述了數據庫中的數據文件dba_tablespaces表描述了數據庫中的表空間

  上面語句中from子句後有三個select語句每個select語句相當於一個視圖視圖的名稱分別為abc通過它們之間的關聯關系我們得到了表空間的相關信息

  語句執行結果如下

  上面描述中分別介紹了查看Oracle數據庫中表空間信息的工具方法和命令方法

  查詢Oracle數據庫中數據文件信息的方法

  查看Oracle數據庫中數據文件信息的工具方法

  使用上面介紹過的方法登錄oracle enterprise manager console工具選擇存儲 ——數據文件會看到如下的界面該界面顯示了數據文件名稱表空間名稱為單位的數據文件大小已使用的數據文件大小及數據文件利用率

  查看Oracle數據庫中數據文件信息的命令方法

  通過查詢數據庫系統中的數據字典表(data dictionary tables)獲取數據文件的相關信息首先使用客戶端工具連接到數據庫這些工具可以是SQLPLUS字符工具TOADPL/SQL等連接到數據庫後執行如下的查詢語句

  select bfile_name 物理文件名btablespace_name 表空間bbytes// 大小M(bbytessum(nvl(abytes)))// 已使用Msubstr((bbytessum(nvl(abytes)))/(bbytes)*) 利用率from dba_free_space adba_data_files bwhere afile_id=bfile_idgroup by btablespace_namebfile_namebbytesorder by btablespace_name

  上面描述中分別介紹了查看Oracle數據庫中數據文件信息的工具方法和命令方法

  查看臨時表空間和數據庫文件的方法

  在oracle數據庫中臨時表空間主要用於用戶在使用order by group by語句進行排序和匯總時所需的臨時工作空間要查詢數據庫中臨時表空間的名稱大小及數據文件可以查詢數據字典dba_tablespaces及dba_data_files命令如下

  select atalbespace_name 表空間名稱bbytes 大小bytesbfile_name 數據文件名from dba_tablespaces a dba_data_files bWhere atalbespace_name=btalbespace_name and ntents=TEMPORARY;

  查詢結果如下

  從oracle i開始可以創建Temporary tablespace類表空間臨時表空間這類表空間使用臨時文件臨時文件的信息被存儲在數據字典V$tempfile中命令如下

  Select file#statusname from V$tempfile;

  查詢數據字典V$tempfile結果如下

  在上面介紹的方法中建議掌握命令方法因為你的環境可能沒有圖形工具而SQLPLUS一般情況下都是可以使用的有了命令腳本很容易得到表空間和數據文件的相關信息另外數據庫管理員應該多整理命令腳本在需要時直接執行腳本以提高工作效率

  在數據庫管理員的日常工作中應該經常查詢表空間的利用率按照數據庫系統的具體情況估算表空間的增長量當表空間的利用率超過%時要及時采取措施如清理歷史表歷史數據以釋放空間向表空間中添加新的數據文件擴展現有數據文件大小等方法來降低表空間的利用率避免表空間利用率接近%時將產生空間不夠的錯誤


From:http://tw.wingwit.com/Article/program/Oracle/201311/18471.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.