Sql-Server

檢查 2016 以下 SQL 伺服器上啟用的 IFI

  • April 23, 2019

我在我的一份報告中使用檢查 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 (%'

對於舊版本,您需要抓取日誌,查找“數據庫即時文件初始化:已啟用”。

引用自:https://dba.stackexchange.com/questions/235412