2013-02-07 83 views
1

例如,我有以下的員工表:Oracle表中的空白字段(即列)是否仍然佔用磁盤空間?

EMP_ID - 姓名 - 地址

1234 ---- ----亞歷克斯(空)

1235 -----約翰 - ---(null)

請注意,我沒有在地址欄中輸入任何內容。

即使我沒有放置任何東西,地址列是否仍會消耗磁盤空間?

我問這個問題,因爲我打算刪除某些表中的某些列。該表格大約有五十(50)列,但只有十五(15)列正在使用。我需要弄清楚其他三十五(35)列(沒有被使用)是否仍佔用磁盤空間,即使你沒有放置任何東西。

您的回覆非常感謝。

回答

1

大約從表存儲部分the Concepts Guide

「數據庫中存儲的空值如果位於數據值爲 的列之間,則在這些情況下,它們需要1個字節來存儲列(零)的長度 。在一行中結尾的空值不需要存儲......」

因此,在您發佈問題的確切情況下,答案將是address列不佔用任何空間。但其他列可能會有空值。

0

根據您使用的數據庫,地址列將佔用空間。您可以回收使用的空間,但如果是Oracle,未使用的空間是「從不」使用的空間。你可以用不同的技術回收空間其中之一是像 alter table MY_TABLE deallocate unused keep xx;修改表解除分配未使用的空間是最普遍使用的方法來回收空間

相關問題