2011-02-16 220 views
0

我將SQL Server數據庫(源)遷移到SQL Server Express數據庫(命運)中。在SSMS中使用「生成腳本...」。SQL Server 2008與SQL Server 2008 Express大小

我驗證了源數據庫中的表(使用3個最大的表進行測試)是否具有相同的行數,並且所有行看起來都正常。

我執行了sp_spaceused,發現原來的數據庫大小是16MB,而Express版本是4MB。

Express數據庫使用的空間是否較少或是否表示遷移出現問題?

謝謝

+0

你嘗試在Express實例裝箱一個新的數據庫和數據導入到那裏? – 2011-02-16 00:58:08

+0

您是否也遷移了索引? – Jason 2011-02-16 01:01:37

+0

我創建了數據庫,然後使用帶有「模式和數據」值的高級選項「數據類型」與「生成腳本...」任務同時腳本化模式和數據。 – 2011-02-16 01:04:15

回答

5

原因很簡單。當你遷移數據時,你正在做一個非常乾淨,有序的插入。沒有垃圾數據,沒有刪除記錄,沒有空的未使用的頁面等。

此外,如果您曾經從原始數據庫中刪除列(包含數據),數據不會被刪除,只是標記爲不可用 - 再次佔用空間。

收縮數據庫將恢復一些空間,如果包含移動數據頁選項,它甚至會進一步打包數據。但是請檢查丟棄的列並重建這些表。

http://www.simple-talk.com/community/blogs/andras/archive/2009/02/19/72068.aspx

0

根據需要爲自己的手段SQL Server引擎將擴大文件的大小。例如,您可能在源數據庫中的某個點上擁有比目前更多的數據。我敢打賭,如果您在源數據庫上運行收縮數據庫命令,則會發現文件大小相同/相似。所以簡而言之,不,文件大小的差異並不表示出現了問題。