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檔被成功壓縮:

 

posted @ 2015-01-28 09:24  singiu0906  阅读(287)  评论(0)    收藏  举报