首页 > 代码库 > MS SQL Server 查看數據庫大小及壓縮Log文件

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_filesWHERE 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 SMOOTHHRGOALTER DATABASE SMOOTHHR SET RECOVERY SIMPLE--如果是FULL(完全備份)模式,則设置简单恢复模式GODBCC SHRINKFILE (SMOOTHHR_log, 10)--將LOG檔壓縮成10MGOALTER DATABASE SMOOTHHR SET RECOVERY FULL--完成後再恢复为原來的FULL(完全備份)模式GO

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

技术分享

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

技术分享

 

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