簡體   English   中英

在SQL Server中收縮數據庫

[英]Shrink the database in SQL Server

我有一個幾乎快滿的數據庫,我們可以選擇一些方法來處理:

  1. 我們可以增加數據庫文件的大小
  2. 縮小數據庫

在選擇第一個選項之前,我想知道如何檢查數據庫大小以及其中實際有多少數據,以便可以縮小數據庫以獲取一些可用空間。

因此,請使用以下查詢來查看您的未使用空間在哪里,什么文件有多大。

Use DatabaseName
GO

Select name                                             AS [FileName]
     , size/128.0                                       AS [FileSize(MB)]
     , fileproperty(name, 'SpaceUsed')/128.0            AS [Space_Used(MB)]
     , (size - fileproperty(name, 'SpaceUsed')) /128.0  AS [FreeSpace(MB)] 
From dbo.sysfiles
GO

最后,當您決定使用大量可用空間來縮小文件時,可以使用DBCCrinkfile命令來執行此操作。

USE DatabaseName
GO
DBCC SHRINKFILE ('FileName', 10)   --<-- will shrink it to 10 MB
GO

注意

如果BLOB數據類型(文本,ntext,xml等)列占用了任何未使用的空間,那么除非再次刪除並重新創建表,否則您可能無法索回該未使用的空間。

您可以通過兩種不同的方式獲取此信息。 在SSMS中,您可以右鍵單擊數據庫,選擇屬性並查看文件。 您的數據和日志文件將顯示指示大小的“初始”值。

您可以右鍵單擊數據庫,單擊“任務和縮小”,然后“文件”和數據文件應為默認顯示。 這將顯示您的大小和可用空間。

您還可以運行一個腳本,向您顯示數據庫的所有大小和位置信息。 您可以通過快速的Google搜索找到許多內容。

此外,還有一些內置的SP的,可以讓你的描述信息在這里特別的第四個查詢顯示了你的自由空間量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM