如何找到 SQL Server 设置何时更改?

Inv*_*ama 5 sql-server

我们的 DBA 更改了“并行成本阈值”。是否有审核可以为我提供此更改的时间戳,以便我可以将其与我们的 APM(应用程序性能监控)关联起来?

Eri*_*ing 10

或许

根据更改的时间,您也许能够在默认跟踪或错误日志中找到这些详细信息。我无法在系统运行状况扩展事件中快速找到它,但我没有花太多时间在它上面。

在错误日志中,当设置更改时,您将看到类似这样的行。更改是否存在将取决于更改发生的时间以及错误日志保留设置。

坚果

默认跟踪

借用Aaron Bertrand的一些代码,您可以搜索默认跟踪中可用的任何数据。与上面相同的警告,如果它发生在很久以前,它可能不在这里。

WITH 
    p AS
(
  SELECT 
      [path] = 
          REVERSE(SUBSTRING(p, CHARINDEX(N'\', p), 260)) + N'log.trc'
  FROM 
  (
       SELECT 
           REVERSE([path]) 
       FROM sys.traces WHERE is_default = 1
  ) s (p)
)
SELECT 
   t.TextData,
   t.DatabaseID,
   t.HostName,
   t.ApplicationName,
   t.LoginName,
   t.SPID,
   t.StartTime,
   t.DatabaseName,
   t.SessionLoginName
FROM p 
CROSS APPLY sys.fn_trace_gettable(p.[path], DEFAULT) AS t
WHERE t.TextData LIKE N'%cost threshold for parallelism%'
AND   t.TextData NOT LIKE N'WITH%p%'
ORDER BY t.StartTime DESC;
Run Code Online (Sandbox Code Playgroud)

通过右键单击实例并选择“报告”-->“标准报告”-->“配置更改历史记录”,可以从 SSMS 对象资源管理器中获取“配置更改历史记录”报告,该报告使用默认跟踪作为源。


Joh*_* N. 7

您可以右键单击 SQL Server Management Studio 中的 SQL Server 实例,然后向下导航到:

Server Context Menu -- Reports -- Standard Reports -- Configuration Changes History 
Run Code Online (Sandbox Code Playgroud)

服务器上下文菜单 |  报告|  标准报告|  配置变更历史记录

如果在不久的过去进行了任何更改,那么它们应该显示类似于以下报告摘要,显示有人更改了服务器配置中的媒体保留值:

配置更改历史报告 - 显示介质保留更改值

该图片显示以下列:

  • 配置选项
  • 旧值
  • 新价值
  • 时间
  • 用户(更改该值的人)

...否则,您将收到以下信息消息:

配置更改历史报告 - 无条目

该报告提供默认跟踪记录的所有 sp_configure 和跟踪标志更改的历史记录。

配置更改历史记录(自 )。 显示服务器配置和标志的更改。目前,该报告没有数据可显示,因为默认跟踪不包含相关信息。