Sql-Server
docker中的sql server使用15gb的磁碟空間
我按照此處的說明創建自己的 docker 容器,其中包含配置了數據庫和數據的 sql server 實例。
我添加了兩個數據庫,幾個表,每個表最多包含數百個項目,以及一些儲存過程。
基本sql server 映像為 1.57 gb。(我使用的是 2019 最新版本)。
我希望總大小只會略高一些。但實際上容器磁碟空間使用量為 15.6GB(虛擬 17.1GB)。
有誰知道為什麼會這樣,以及如何減少它?
編輯1:
我剛剛檢查過,根據SSMS(任務>收縮>數據庫>目前分配的空間),我添加的數據庫之一是14gb。但是它包含的數據非常少(可以在 1mb 文件中編寫腳本)所以我不知道這是為什麼。
編輯 2:
神秘解決:出於某種原因,我用來創建數據庫的腳本為日誌文件分配了 11gb。
即使在新創建的空數據庫中,數據庫文件也可能使用那些 15gb。
您可以使用 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)來減少它。雖然在您的特定情況下使用此命令是可以的,但不建議在任何大型數據庫文件的情況下使用。