MS SQL Server 查看數據庫大小及壓縮Log文件

公司每月要統計人事數據庫的大小

下面是統計SQL Server數據庫大小的SQL語句:

SELECT
    DB_NAME(database_id) AS [Database Name],
    [Name] AS [Logical Name],
    ((size * 8) / 1024) AS [Size(MB)],--size的原始單位是bit,所以要先乘以8轉成Byte,再乘以1024轉成MByte。
    [differential_base_time] AS [Differential Base Time]
FROM sys.master_files
WHERE DB_NAME(database_id) IN(SmoothHR,HRreport,SmoothExchage);--‘SmoothHR‘,‘HRreport‘,‘SmoothExchage‘分別分數據庫名稱。

結果:

技术分享

可以看到SmoothHR_log較大,可以進行壓縮。

壓縮Log文件需要在簡單備份模式下進行,可以先看一下數據庫的日誌備份模式:

SELECT NAME, RECOVERY_MODEL_DESC FROM SYS.DATABASES WHERE NAME IN(SMOOTHHR,HRREPORT,SMOOTHEXCHAGE);

技术分享

可以看到全部為“FULL”(完全備份)模式,所以要先轉成簡單模式,再進行Log檔壓縮,完成後再恢復為完全備份模式:

USE SMOOTHHR
GO

ALTER DATABASE SMOOTHHR SET RECOVERY SIMPLE--如果是FULL(完全備份)模式,則设置简单恢复模式
GO

DBCC SHRINKFILE (SMOOTHHR_log, 10)--將LOG檔壓縮成10M
GO

ALTER DATABASE SMOOTHHR SET RECOVERY FULL--完成後再恢复为原來的FULL(完全備份)模式
GO

看到以下結果,表示成功了!

技术分享

這時再統計DB的大小,Log檔被成功壓縮:

技术分享

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。