SQL'评论'可以在sql profiler中读取

时间:2015-11-24 16:30:13

标签: sql entity-framework linq-to-sql linq-to-entities sqlprofiler

我尝试了多种方法,例如使用双连字符,即--THIS是一个注释,但是当在分析器中读取执行的sql时,注释将被删除,只留下正在执行的原始SQL。

我想这样做是为了在查看每分钟超过8000个条目的SQL事件探查器输出时快速识别查询及其来源, 像

这样的东西
--Method signature and an application name

e.g。

--MyMethod(string username) in MyFunkyAppName.

我正在使用EntityFramework 4.3,这使得linq与实体之间的事情变得更加复杂,并且为了更好的衡量标准,还有一小部分linq to sql。

编辑:我知道添加狡猾的where子句的解决方案或使用匿名属性来识别Clever tricks to find specific LINQ queries in SQL Profiler之类的内容,但我希望远远不够不那么黑客的方法或者也许是一般的方法。

1 个答案:

答案 0 :(得分:4)

以下是一种可用于标记Entity Framework查询的扩展方法。它使用WHERE子句,但不应该影响性能。

context.Table1.SetQueryName().Where(x => x.C1 > 4)

以下是如何使用它:

context.Table1.SetQueryName("Search for numbers > 4").Where(x => x.Number > 4)

它将使用调用方法名称作为查询名称。

您可以指定其他名称:

SELECT 
    [Extent1].[Number] AS [Number]
    FROM (SELECT 
    [Table1].[Number] AS [Number]
    FROM [dbo].[Table1] AS [Table1]) AS [Extent1]
    WHERE
      (N'Query name: Search for numbers > 4' IS NOT NULL)
      AND
      (N'Source: C:\Code\Projects\MyApp\Program.cs (49)' IS NOT NULL)
      AND ([Extent1].[Number] > 4)

以下是SQL的外观:

"/home/joci/Joci test.txt"