Sql-Server
檢查 2016 以下 SQL 伺服器上啟用的 IFI
我在我的一份報告中使用檢查 SQL 伺服器上啟用的 IFI 的狀態。
sys.dm_server_service
在SQL2016 中使用 dmv 時效果很好但是,在 SQL2014 和 SQL2012 中,我發現通過 SQL 查詢呈現此檢查有困難。
例如,如果我在下面使用
EXEC sys.xp_readerrorlog 0, 1, N'Database Instant File Initialization';
無法保證它會在文件“0”上顯示狀態,有時我會不斷手動查詢錯誤日誌以找出答案。如何使用更好的方法實現 IFI 檢查,以便它可以顯示在我的 SSRS 報告中
根據這篇 MSSQLTips.com 文章,您可以
sys.dm_server_services
從 SQL 2012 SP4 開始使用。SELECT @@SERVERNAME AS [Server Name] , RIGHT(@@version, LEN(@@version) - 3 - CHARINDEX(' ON ', @@VERSION)) AS [OS Info] , LEFT(@@VERSION, CHARINDEX('-', @@VERSION) - 2) + ' ' + CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(300)) AS [SQL Server Version] , service_account , instant_file_initialization_enabled FROM sys.dm_server_services WHERE servicename LIKE 'SQL Server (%'
對於舊版本,您需要抓取日誌,查找“數據庫即時文件初始化:已啟用”。