SQL Server 2008 R2 Express 大小
我相信在生產伺服器上安裝了 SQL Server 2008 R2 Express。當我使用 SQL Server Management Studio 連接到它時,它顯示為
SQL Server 10.50.1600
.如果實際上是 SQL Server 2008 R2 Express,我的理解是數據庫大小限制為 10 GB。但是,有些東西讓我很煩,因為我的大小接近 1 GB,並且屬性螢幕上有一條消息讓我感到害怕。數據庫在生產環境中執行。裡面有很多行,我刪除了很多,但它並沒有改變消息。當我轉到數據庫的屬性時,它顯示“大小 1005.75 MB”,在它的正下方顯示“可用空間 0.03 MB”。
我嘗試使用“收縮”,但它只是閃爍並消失。我的生產伺服器會因為數據庫太大而崩潰嗎?當我認為伺服器應該允許 10 GB 時,為什麼會在 1 GB 時發生這種情況?我怎樣才能減少它?刪除非活動客戶的記錄沒有做任何事情。
屬性頁面上的“數據庫大小”顯示數據文件的大小。這將是您的數據的大小,其中有一些空白空間用於新數據。您可以在數據庫屬性中配置分配此空白空間的速率。
它說可用空間為 0.03Mb,因為您已將數據文件縮小 - 它會自行增長以允許新記錄 - 這是正常和預期的行為。此“可用空間”是目前數據文件中剩餘的空間,而不是目前數據庫大小與 10GB 許可限制之間的差異。
您可以通過檢查產品下伺服器屬性中的正常頁面來驗證安裝的版本。在管理工作室標題中,它只顯示一般版本,而不是產品版本。
當您刪除大量記錄時,您最終會在文件中留下可用空間。除非您為其設置維護任務,否則這不會自動收縮。
縮小後您可能想做的一件事是重建所有索引。收縮有一種真正分割索引的方法。如果必須縮小,我使用以下腳本重新索引所有內容
$$ you shouldn’t shrink a datbase unless you are running out of space on the server! $$ DECLARE @TableName sysname DECLARE cur_reindex CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_type = ‘base table’ OPEN cur_reindex FETCH NEXT FROM cur_reindex INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN PRINT ‘Reindexing ’ + @TableName + ’table’ DBCC DBREINDEX (@TableName, ’ ‘, 80) FETCH NEXT FROM cur_reindex INTO @TableName END CLOSE cur_reindex DEALLOCATE cur_reindex