2016-04-28 80 views
1

我想檢查SQL Server如何使用磁盤空間來存儲數據。我最近剛剛放下了一張大約100GB的表格,而且硬盤仍然保持不變(在掉落大小爲30GB之前,掉落操作之後,尺寸應該會達到130GB)。在從網上檢查後,注意到SQL Server不會自動處理它,爲了讓SQL Server發佈硬盤塊,需要收縮操作。如我錯了請糾正我。SQL Server 2014如何使用磁盤空間來存儲數據

現在我的問題是後我放棄了30GB的數據,SQL Server將逆轉以備將來使用,這意味着SQL Server將使用該保留塊的任何新的數據,而不是從OS請求塊。如我錯了請糾正我。

這裏的信息,我從數據庫中獲取,如果我理解正確的話,SQL Server將保留約308GB的該數據文件,而且我們已經使用了大約196GB。因此,任何新的數據來到這個數據文件,SQL Server將使用保留的塊,直到它達到308GB的大小,然後它從操作系統請求額外的塊。我對嗎 ?

enter image description here

;with db_file_cte as 
(
select 
    name, 
    type_desc, 
    physical_name, 
    size_mb = 
     convert(decimal(11, 2), size * 8.0/1024), 
    space_used_mb = 
     convert(decimal(11, 2), fileproperty(name, 'spaceused') * 8.0/1024) 
from sys.database_files 
) select 
name, 
type_desc, 
physical_name, 
size_mb, 
space_used_mb, 
space_used_percent = 
    case size_mb 
     when 0 then 0 
     else convert(decimal(5, 2), space_used_mb/size_mb * 100) 
    end 
from db_file_cte; 
+0

這真的沒有什麼關係** **編程(其中*這個網站是所有關於*),但與數據庫管理 - 所以這裏是題外話,屬於在[dba.stackexchange.com] (http://dba.stackexchange.com) - 投票移動。 –

回答

1

如果我理解正確的話,SQL Server將保留約308GB的 該數據文件,而且我們已經使用了大約196GB。因此,任何新的數據到這個數據文件來 ,SQL Server將使用保留的塊,直到它達到 大小308GB,然後它從OS請求額外的塊。我對嗎 ?

是的,你是正確的。 SQL Server數據庫由磁盤上的文件組成。默認情況下,釋放數據庫中的空間不會更改文件的大小。

但是,您可能需要驗證各個文件的自動增長設置。運行「sp_helpfile」並檢查結果集中的maxsize和growth列。

如果需要,您可以縮小數據庫(或特定文件)以釋放未使用的磁盤空間。 (您也可以將數據庫設置爲自動縮小,但不建議這樣做。)但出於性能原因,通常建議在數據庫中留出大量可用空間。數據越不穩定,空閒空間就越有用。

相關問題