sql-server – 我可以从SQL Server默认获得哪些事件信息?
|
>遇到严重性为> = 20的错误的任何会话的sql_text和session_id 从Use the system_health event session (MSDN)开始,该列表在SQL Server 2012中有所扩展(对于SQL Server 2014仍然保持不变): >遇到严重性> gt = 20的错误的任何会话的sql_text和session_id. 在SQL Server 2016中,还捕获了另外两个事件: >使用KILL命令终止进程时. (该文档尚未更新,but I blogged about how I discover these and other changes.) 要获得适用于特定版本的更加神秘的配置,您始终可以直接运行以下查询,但是您必须解释名称并解析谓词以匹配上面更自然的语言列表: SELECT e.package,e.event_id,e.name,e.predicate FROM sys.server_event_session_events AS e INNER JOIN sys.server_event_sessions AS s ON e.event_session_id = s.event_session_id WHERE s.name = N'system_health' ORDER BY e.package,e.name; 如果您正在使用可用性组,则还会发现两个正在运行的新会话:AlwaysOn_failover和AlwaysOn_health.您可以使用以下查询查看他们收集的数据: SELECT s.name,e.package,e.predicate FROM sys.server_event_session_events AS e INNER JOIN sys.server_event_sessions AS s ON e.event_session_id = s.event_session_id WHERE s.name LIKE N'AlwaysOn[_]%' ORDER BY s.name,e.name; 这些事件会话使用环形缓冲区目标来存储数据,因此 – 如缓冲池和计划缓存 – 旧事件将逐步淘汰,因此您不一定能够从所需的日期范围中提取事件. 例 在这个问题中我提出了这个虚构的问题:
(编辑:网站开发网_马鞍山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

