Sql-Server

docker中的sql server使用15gb的磁碟空間

  • January 5, 2020

我按照此處的說明創建自己的 docker 容器,其中包含配置了數據庫和數據的 sql server 實例。

我添加了兩個數據庫,幾個表,每個表最多包含數百個項目,以及一些儲存過程。

基本sql server 映像為 1.57 gb。(我使用的是 2019 最新版本)。

我希望總大小只會略高一些。但實際上容器磁碟空間使用量為 15.6GB(虛擬 17.1GB)。

有誰知道為什麼會這樣,以及如何減少它?

編輯1:

我剛剛檢查過,根據SSMS(任務>收縮>數據庫>目前分配的空間),我添加的數據庫之一是14gb。但是它包含的數據非常少(可以在 1mb 文件中編寫腳本)所以我不知道這是為什麼。

編輯 2:

神秘解決:出於某種原因,我用來創建數據庫的腳本為日誌文件分配了 11gb。

即使在新創建的空數據庫中,數據庫文件也可能使用那些 15gb。

您可以使用 SSMS 檢查數據庫的大小:

SSMS

或者使用Alex Aza的程式碼或您喜歡的 SQL Server 2008 中的其他程式碼一次檢查所有數據庫的大小:如何查詢所有數據庫大小?這是此範例的來源:

with fs
as
(
   select database_id, type, size * 8.0 / 1024 size
   from sys.master_files
)
select 
   name,
   (select sum(size) from fs where type = 0 and fs.database_id = db.database_id) DataFileSizeMB,
   (select sum(size) from fs where type = 1 and fs.database_id = db.database_id) LogFileSizeMB
from sys.databases db

如果您看到一個比預期大的數據庫,您可以使用DBCC SHRINKFILE (Transact-SQL)來減少它。雖然在您的特定情況下使用此命令是可以的,但不建議在任何大型數據庫文件的情況下使用。

引用自:https://dba.stackexchange.com/questions/256724