用于优化LINQ to SQL查询的工具和技术

时间:2009-09-07 15:43:17

标签: .net sql sql-server performance linq-to-sql

我有几个LINQ to SQL查询,我觉得需要花费很多时间。我可以使用哪些工具和技术来首先找到:

  1. 他们需要多长时间以及 改进的空间
  2. 找出我可以更改的内容并轻松测试是否可以 变更有效
  3. 工具,技术和阅读资源都将受到赞赏(ergo up-voted;))

6 个答案:

答案 0 :(得分:7)

我刚刚参加了由LINQ In Action的作者之一Jim Wooley提供的最近一次代码大会活动中的LINQ Tools演示。他blogged about all the tools。以下是与您的问题相关的内容,但是他的帖子列出了要查看的其他内容。

  • SQL Server Profiler($$$) - SQL Management Studio的一部分。

  • Huagati LINQ to SQL Profiler($$$,45天试用版) - 拓展Context.Log功能的Profiler。包括SQL Server Profiler以外的查询的性能和调用堆栈。

  • LINQ to SQL Visualizer(免费) - VS2008的C#示例的一部分。下载,编译,享受!

  • LINQPad(免费,支付C#Intellisense) - 轻量级工具,用于运行C#/ VB.NET代码,连接到DB,测试Linq到SQL,查看生成的SQL等。

答案 1 :(得分:6)

LinqPad可能会有所帮助。与SQL事件探查器结合使用,您可能能够了解正在发生的事情以及如何改进它。

答案 2 :(得分:4)

我会由David Hayden检查这个blog t ......

答案 3 :(得分:2)

嗯,最好的选择可能仍然是SQL Server Profiler,它可以让您深入了解SQL Server端到底发生了什么。这是基于假设(由我自己的经验支持),通常情况下,性能的真正问题在于数据库后端和次优索引和数据库设计而不是“前端”LINQ查询......

请参阅:

马克

答案 4 :(得分:2)

Hybernating Rhinos的惊人Linq to Sql Profiler。您可以实时分析代码和警报,指出滥用模式。 30天试用。

答案 5 :(得分:1)

使用LINQ to SQL时,一个不错的“技巧”是使用DataContext.Log属性来查看框架生成的SQL:

context.Log = Console.Out

SQL Server Profiler将为您提供更客观的查询性能指标,但能够直接检查查询可能仍会显示一些意外信息。