如何发送与每个SQL Server语句关联的自定义标签以进行跟踪过滤



我有一个自定义.NET应用程序服务器,该服务器将大量SQL语句发送到后端SQL Server。我可以控制在应用程序服务器中运行的代码,并且可以以任何方式自定义SQL Server。

我需要与每个语句一起发送一个自定义标签,该标签可见为SQL跟踪列,以便我可以通过这些自定义标签过滤痕迹。

我无法使用SQL Connection的应用名称,因为这是特定于连接的,并且连接在应用程序服务器中汇总并随机分配给语句。如果我在每个语句之前更改应用程序名称,则汇总会分解,并且需要重做连接,这是罚款的太多。

有什么想法吗?谢谢。

注意:我的想法是更改通过SQLCommand的每个语句,并以注释(/ CustomTags tag1 tag1 tag12 /)或虚拟语句(选择'tag1''," tag5"),但我觉得必须有更好的方法。我需要做以业务为导向的分析。标签来自客户端,通过应用程序服务器,我想将它们粘合到SQL语句,以便对DB服务器上的某个业务操作/模块生成多少加载,以立即反馈)

如果您能够自定义要发送的SQL,则可以将标签作为表别名的一部分放入标签。这具有额外的好处,即使能够包括Showplan XML统计资料事件,以获取实际查询计划并过滤掉除您的目标查询以外的所有内容。

SELECT *
FROM sys.tables as YourFilterHere
INNER JOIN sys.columns 
  ON YourFilterHere.object_id = columns.object_id

然后,您可以过滤textdata,例如%filterhere%

最新更新