我需要確定這是一個表空間設置在創建時的MAXSIZE
MAXSIZE(Oracle 10g中)如何確定現有的表空間
我敢肯定,我失去了一些東西很明顯,但信息ISN」 t立即在DBA_TABLESPACES
的信息中顯現。
我需要確定這是一個表空間設置在創建時的MAXSIZE
MAXSIZE(Oracle 10g中)如何確定現有的表空間
我敢肯定,我失去了一些東西很明顯,但信息ISN」 t立即在DBA_TABLESPACES
的信息中顯現。
在11g中此查詢會給你答案的屬性,但我注意到你在10g和唉the useful column is missing。
select tablespace_name, max_size
from dba_tablespaces
/
在10g中,你將不得不
select tablespace_name
, initial_extent + (next_extent * (max_extents-1)) as calc_max_size
from dba_tablespaces
/
請記住,這是默認最大尺寸。在實踐中,您將受到分配給表空間的數據文件大小的限制,這可能遠小於理論上的最大值。
編輯
@保羅的評論是恰當的。我想正確的答案是說表空間的最大尺寸是一個毫無意義的,實際上幾乎是虛構的概念。表空間的大小實際上是由其數據文件決定的,其最大可能大小取決於可分配的最大數據文件數。 SQL Reference對此有話說:
因此,也許這是一個比較有用的查詢......
select tablespace_name
, count(*) as no_of_data_files
, sum(maxblocks) as max_size
from dba_data_files
group by tablespace_name
/
...與它僅適用於當前指定的數據文件的警告。
編輯2
最大範圍適用於數據文件不表空間。這就是爲什麼在documentation for the filespec clause而不是在CREATE TABLESPACE下討論MAXSIZE關鍵字的原因。
MAXSIZE是DBA_DATA_FILES
這不是DBA_DATA_FILES在Oracle 10g中的屬性,只要我可以告訴(有一個maxbytes),並且將不會是最大尺寸的數據文件,而不是表空間? – 2010-03-02 15:34:30
@Paul - 查看我修改後的回覆。基本上羅伯特是正確的:tablsepace大小是數據文件大小的產物。 – APC 2010-03-02 16:58:31
對不起,我不清楚。該屬性稱爲maxbytes。當您查看oracle的ER圖:表空間由一個或多個數據文件組成時,數據文件具有maxbytes屬性。因此,表空間的最大大小是該表空間中數據文件的最大字節數的總和。 – 2010-03-03 09:29:23
從dba_data_files中選擇tablespace_name,maxbytes/1024/1024 MAX_SIZE;
select tablespace_name, round(sum(bytes)/1024/1024, 2) as free_space from dba_free_space group by tablespace_name;
這一切都取決於數據文件是否可自動擴展。
所以,如果你DBA_DATA_FILES得到正確的信息:
如果自動擴展設置爲YES,那麼你需要MAXBYTES的總和。
如果AUTOEXTENSIBLE設置爲NO,則需要BYTES的總和。
DBA_TABLESPACES中的MAX_SIZE與表空間本身的最大大小無關。據Oracle documenation是
的
「段的默認最大尺寸」所以正確的查詢是:
select TABLESPACE_NAME, sum(decode(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAX_SIZE from DBA_DATA_FILES group by TABLESPACE_NAME;
這已經11g上測試,但它也應該從事的10克。它以字節爲單位給出每個表空間的最大大小。
同樣的問題也發生在TEMP表空間:
select TABLESPACE_NAME, sum(decode(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAX_SIZE from DBA_TEMP_FILES group by TABLESPACE_NAME;
似乎不適合我。首先是next_extent爲null,所以剛剛做了initial_extent * max_extents,但是max_extents總是顯示爲MAXINT(2147483645)(並且表空間不是用MAXSIZE unlimited創建的) – 2010-03-02 15:31:57
我不想將當前空間分配給它。我需要創建時使用MAXSIZE指定的大小。我不認爲這是毫無意義的 - 大概Oracle會拒絕將表空間擴展到MAXSIZE之外。 – 2010-03-02 17:28:29
@Paul - Oracle將拒絕將表空間擴展到其當前分配的數據文件的範圍之外(因爲autoextend處於關閉狀態,或文件系統已滿,或者已擊中爲數據文件指定的MAXSIZE)。 – APC 2010-03-02 17:51:25