问题标签 [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 投票
5 回答
12653 浏览

sql - 创建触发器以记录影响表的 SQL?

我试图找出更新列值的内容,但我对应用程序知之甚少。快速浏览一下,我注意到大约 90% 的应用程序业务逻辑是在数据库上处理的。不用说 SP 的深度、功能和触发器是疯狂的。

我想在有问题的表上创建一个触发器,该触发器将记录影响该表的 SQL。什么 SQL 可用于在正在更新的表的上下文中获取执行的 SQL?

详细信息:MS SQL Server 2008

谢谢!!

0 投票
5 回答
14721 浏览

sql-server - SQL Server 2008 - 捕获命中服务器的所有 SQL 语句

在运行 Profiler 之外,任何人都可以建议我们在捕获发送到 SQL Server 的所有 SQL 语句时可能有的选项吗?我知道有几种方法可以做到这一点,但要确保我没有忽略某些东西,例如现有的 DM 视图等。

非常感谢。

0 投票
1 回答
515 浏览

c# - SQL 监控和插入

从另一个线程给了我有关如何向 SQL Server 添加监视的信息...

请参阅 EntityFramework 中的 SQL 以及类似集合的查询

这很好用,但我想更进一步。我希望能够在交易发生时将评论添加到日志中。

不过,我希望能够将注释写入将进入 SQL 日志的内容。就像,我可以做一个查询,并调用 Debugger.Logger.Write("Some kind of comment") 所以我知道什么是什么。我不太了解 SQL,所以我试图了解正在运行什么以及在哪里运行。

任何帮助是极大的赞赏。我想我必须运行另一个 SQL 查询才能将注释“插入”到查询流中。

我设计我的数据上下文 (DbContext)

然后是调试器类..

我基本上已经将以下 SQL 插入到 C# 中的资源中......

这是“Project.SQL.Record”。

然后我有另一个,“Project.SQL.Review”。

我的第一个想法是制作这样的方法..

它应该像查询一样执行评论,应该显示在评论中,对吧?好吧,那没有用。所以我对其他想法持开放态度......

0 投票
1 回答
1755 浏览

sql-server-2008 - 按受影响的表过滤扩展事件?

我正在使用 SQL Server 2008 中的扩展事件来执行一些监视。我最感兴趣的是以下事件:

  • sqlserver.sp_statement_completed
  • sqlserver.sp_statement_starting
  • sqlserver.sql_statement_completed
  • sqlserver.sql_statement_starting

我想知道是否可以根据它们影响的表过滤掉这些扩展事件。我还没有看到任何可以帮助我执行此类过滤的谓词。由于单个存储过程实际上可能会影响多个表,我什至不确定他们会如何做到这一点,但那里的某个人可能已经想到了一些巧妙的技巧。

提前致谢!

0 投票
1 回答
1380 浏览

sql-server-2008 - 如何从 C# 传递 SQL Server 扩展事件活动 ID?

我一直在研究在完整的端到端跟踪场景中使用扩展事件。我对 XEvent 的活动 ID 特别感兴趣,它有助于跟踪给定活动的事件执行顺序。

您可能已经猜到了,我在 SQL Server 2008 中的事件会话设置了以下选项:

TRACK_CAUSALITY = 开

我的问题是,当从 C# 代码(Linq、实体框架等)执行 SQL 查询时,是否可以推断出将由 SQL Server 中的扩展事件跟踪的活动 ID?

例如,我希望能够将执行线程的 CorrelationManager.ActivityId guid 传播到 SQL Server 以进行 XEvent 跟踪。

非常感谢

0 投票
1 回答
1833 浏览

sql-server - 如何从 SQL Server 中的 locks_lock_timeouts_greater_than_0 事件中获取所有者和锁定对象?

我正在locks_lock_timeouts_greater_than_0使用 SQL Server 中的扩展事件捕获事件。活动环节如下:

如何确定锁定了哪个对象以及当前锁定了谁?

更新:我需要这个用于 SQL Server 2008。如何调试 2012 之前版本的锁定超时?

0 投票
1 回答
527 浏览

sql-server-2012 - SQL Server 2012 扩展事件 wait_info 与 2008 R2

2012 年刚开始玩 EE,并且正在研究一个在 2012 年不太成功但在 2008 R2 上运行良好的演示。该演示用于跟踪等待统计信息,但由于版本之间可用数据列的差异而失败。

在 2008 R2 中,上述允许跟踪wait_typeopcodedurationmax_durationtotal_duration和。signal_durationcompleted_count

在 2012 年,我能看到的只有wait_type、和。opcodedurationsignal_duration

这里没有什么重要的,只是找到我的方式,但我试图了解这些列是否以及为什么确实已从新版本中删除(我找不到支持这一点的文档),它们现在是否无法追踪或移动到其他地方?

0 投票
1 回答
682 浏览

sql-server-2008 - SQL Server 扩展事件没有较新的事件

我正在查询 system_health 会话,并注意到并非所有事件都被返回。今天肯定很少有死锁,但这些不在输出中。

我遇到了这个连接文件,但从评论中这个问题已经在 SQL Server 2008 SP2 中得到解决。但我的版本是 SQL Server 2008 SP3 Standard。这里有更多细节。

那么这是一个错误还是我查询错误?

0 投票
2 回答
249 浏览

sql-server - 扩展事件的会话定义存储在哪里?

是 msdb、resource、master 还是 local?如果我备份我运行 XE 的本地数据库,我是否也会备份我的会话?系统表中是否也存储了任何元数据?谢谢你们。

0 投票
1 回答
733 浏览

sql-server - 扩展事件 - 构建与特定应用程序名称连接的服务器的直方图?

我正在尝试构建一个 XE,以找出我们的哪些内部应用程序(没有应用程序名称,因此显示为 .Net SQLClient 数据提供程序)正在访问特定服务器。理想情况下,我想获得 Client 和 Database 的名称,但不确定我是否可以在一个 XE 中做到这一点。

我认为为了易于使用,我会使用 histogram/asynchronous_bucketizer,并保存尝试命中的内容和频率的计数。但是,我似乎无法让它在 2012 年工作,更不用说 2008 年了。如果我使用 sqlserver.existing_connection 它可以工作,但只会在连接时给我计数。我想在白天得到计数,看看它从每台服务器发生的频率,所以我尝试了 preconnect_completed。这是正确的事件吗?

此外,我使用 XE 的部分原因是这些服务器每分钟可以接到数千个调用。

到目前为止,这是我想出的,它有效,但只为我提供匹配的当前 SSMS 连接 - 显然,我会将其更改为 .Net SQLClient 数据提供程序。