问题标签 [extended-events]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3033 浏览

sql - 在扩展事件会话环缓冲区中检索死锁的时间戳

我正在尝试查询system_health扩展事件环形缓冲区以查找死锁事件。到目前为止,我已经得到了如下所示的死锁图。我对缺乏参考表示歉意;我丢失了找到此查询的页面:

我还想为这些事件的时间戳添加一列。如果我运行内部查询,我会看到事件的时间戳在事件本身的 XML 中:

我怎样才能解析这个时间戳并显示它?我用 TSQL 解析 XML 的经验有限。

我试过这个:

但我得到了错误:

消息 2390,级别 16,状态 1,行 2 XQuery [tab.event_data.value()]:不支持顶级属性节点

这个:

产生此错误:

消息 2389,级别 16,状态 1,第 2 行 XQuery [tab.event_data.value()]:'value()' 需要单例(或空序列),找到类型为 'xdt:untypedAtomic *' 的操作数

0 投票
2 回答
1670 浏览

sql - sys.fn_xe_file_target_read_file() DMF 结果的扩展事件强制顺序

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) 2012 年 6 月 28 日 08:36:30 版权所有 (c) Microsoft Corporation Enterprise Edition (64-bit) o​​n Windows NT 6.1 (Build 7601: Service Pack 1)

使用 sys.fn_xe_file_target_read_file() DMF 读取扩展事件 .xel 日志文件时,有没有办法保证结果的顺序?理想情况下,我想根据它们插入 .xel 文件的顺序对记录 1..X 进行编号。

我需要多次轮询文件目标并将新记录插入表中。如果我可以保证结果的顺序,那么我可以添加元数据列“条目号”,并使用此列来避免在多次执行中插入相同的记录,即

如果这是不可能的,我能否保证所有具有相同“file_offset”值的记录都在一个批次中加载到 .xel 文件中?例如,如果我在 .xel 文件中查询“file_offset”为 123 的所有记录,我能否保证随后不会加载“file_offset”为 123 的其他记录?

这基于创建扩展事件WITH MAX_DISPATCH_LATENCY = 1 SECONDS并每 60 秒轮询 .xel 文件。

由于此错误/功能,我对使用 @initial_file_name 和 @initial_offset 参数感到不舒服:http ://connect.microsoft.com/SQLServer/feedback/details/714286/sys-fn-file-target-read-file -reads-incorrect-files-when-offset-reading#details

0 投票
1 回答
1452 浏览

sql - 使用 SQL Server 扩展事件审计表访问

是否可以使用 SQL Server 2008 R2 扩展事件 (EE) 监视表访问?我们需要监视一张表的任何表读取、更新或插入。据我所知,应该可以通过 EE 的表锁定事件来监控 Selects。它是标准版 SQL 2008 R2 服务器,因此我们无法使用 Enterprise 提供的审核功能。

0 投票
3 回答
2392 浏览

sql-server - 来自 XEvents 的死锁图不会产生“好的”XML

我正在调查死锁并使用以下查询(我从 Jonathan Kehayias 的 Pluralsight 死锁课程中获得)从有关死锁的扩展事件中提取信息:

奇怪的是,这给了我一个 1 行 1 列的结果集,其中包含一个空值。经过一番挖掘,我发现这是由于内部查询返回的 XML 文档的死锁图部分不是有效的 XML。它看起来像这样:

格式错误的 XML

如您所见,尖括号已全部替换为它们的 HTML 编码。我不明白这是怎么发生的,因为我所做的只是直接从 SSMS 查询数据库。

无论如何,一旦我意识到这个问题,我就能够用正确的尖括号替换所有错误的值并且我的 XML 是有效的,并且我能够检查死锁。不过我觉得这很奇怪,有谁知道为什么死锁图会像这样回来?

我应该注意到 XML 的其余部分(即除了死锁图之外的其余事件)完美地返回,如您在此处看到的: 在此处输入图像描述

这是我的版本信息:

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 版权所有 (c) Microsoft Corporation Enterprise Edition (64-bit) o​​n Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor) )

有人知道发生了什么吗?我觉得比较奇特。

提前致谢

杰米

0 投票
1 回答
2141 浏览

sql-server - Tableau 如何连接到 SQL Server?

我试图更好地了解各种第三方应用程序如何进入 Microsoft SQL Server 数据仓库并在允许报告编写者使用它之前收集数据。我正在使用 SQL 2008 R2 实例,最终我想在短时间内以 SQL 级别捕获所有进出仓库的请求。

所以现在我正在使用扩展事件来做到这一点,我正在监视的事件是:

但是,当我运行它时,打开 Tableau 8 并连接到服务器并从特定表中提取数据,我在 XE 中看不到任何活动。那么我是否错过了会看到 SQL 的事件?

0 投票
1 回答
1187 浏览

java - 插入触发器通知后的 Java + Ms SQL Server 2008 R2

我需要使用 java webgui Vaadin 框架编写 Web 应用程序,该框架将使用 MsWin2k8R2 NPS 插入到 MsSQL 数据库的新记录进行实时更新。

由于 NPS 将日志存储到文件和/或 DB,我更喜欢 DB,但我想知道当 NPS 服务器将数据插入数据库然后从 SQL 服务器通知中重新获取或提取时,SQL 服务器如何通知我的 java 程序并在浏览器中显示。

我已经建立了 Java<->Ms SQL 连接。

我已经知道的:

  • 可以使用 SqlDependency 类,但它仅适用于 .NET,我正在使用 Java
  • SQL Server Service Broker - 这是 SQL Server 中的某种功能,可用于此目的,但我目前不正确理解如何操作以及它的真正含义
  • SQL 扩展事件 - 同上
  • SQL 通知 - 同上
  • SQL CRL 触发器 - 用 C++、C# 或 Java 编写的触发器,在指定情况下执行,但这是同步完成的,会减慢整个操作

现在。我找到了这篇文章: https ://stackoverflow.com/a/534831/1235977

我建议在调用 SQL Server 服务代理的表上设置一个触发器,然后(异步)执行一个 CLR 存储过程,在不同的线程中完成所有工作。

但我不知道该怎么做。

所以我需要的是:SQL Server 中的简单表,当插入数据时,它会以某种方式通知我的 Java 程序。它可以使用 REST Web 服务、JMS 或任何与语言无关的东西。

请提供分步示例/解决方案。

0 投票
0 回答
360 浏览

sql-server-2008-r2 - SQL Server 2008 R2 (SP2)。扩展事件会话不捕获 asynchronous_file_target 中的事件

我试图在 XEvents Session 的帮助下为死锁创建历史日志,但它在客户端计算机上不起作用。Xel 文件是空的,即使我自己生成了死锁。

但是在另一台服务器上,死锁被成功记录,所以我猜是服务器配置的原因?

你能告诉我我错过了什么吗?

会议:

此会话处于活动状态:

谢谢

0 投票
1 回答
4466 浏览

sql-server - 在 SQL Server 扩展会话中捕获传递的参数值?

我设置了 SQL Server 扩展事件以将特定数据库中最后 1000 个失败的查询捕获到环形缓冲区中:

我现在可以像这样查询这些错误:

到现在为止还挺好:

截屏

这对于追踪在应用程序级别引发的错误的更多细节已经有很大帮助。

但是,如果我们可以看到传递给这些查询的参数值,就像在 SQL Profiler 中那样,它会变得更加有用。所以当我们看到这样的错误时......

对于这个 SQL...

...了解@NewValue@KeyValue参数的值将是有益的。

我可以在哪里找到这些信息的任何想法?

0 投票
1 回答
564 浏览

c# - 如何使用 C# 中的扩展事件复制 sp_trace 的功能?

我正在开发一个 C# 应用程序,它使用各种 sp_trace 过程来查看来自远程 SQL Server 数据库的事件。我最感兴趣的特定事件是查询和存储过程何时开始和结束。我需要每个事件的数据,例如时间、SQL 文本、主机名等。

MSFT 的文档说 sp_trace 功能已被弃用,并被扩展事件取代。我还发现了几篇文章,指出扩展事件在数据库上产生的开销要少得多。但是,我很难找到使用扩展事件来复制跟踪功能的教程或示例。

因此,我的问题是,我需要从 C# 应用程序执行哪些存储过程序列才能有效地跟踪数据库?

0 投票
1 回答
1610 浏览

sql-server - 如何在扩展事件中过滤表名?

我使用带有 Where 子句的脚本创建了扩展事件会话,以过滤引用名为 MySchema.MyTable 的表的命令:

问题是表格可以以以下 4 种方式之一出现:

我可以使用所有这些选项和它们之间的“或”运算符创建一个长的 Where 子句(a 为字符的歧义找到一个很好的解决方案 ],[),但它不是很优雅。我希望我可以使用 Replace 运算符来删除这些字符 (],[) 但我不知道如何.. 有什么建议吗?