我正在寻找一个包含大量LINQ to SQL查询的应用程序。这基本上是带有MVC的SilverLight应用程序。一些数据加载需要相当多的时间。我想知道在SQL服务器上触发的确切查询。有没有办法将生成的T-SQL语句存储到某种日志文件中?
请提供其他一些可能的方法。
答案 0 :(得分:6)
LINQ to SQL datacontexts有一个属性Log
,它包含对TextWriter
的引用,其中写入了所有生成的SQL查询的文本。例如,您可以为磁盘文件打开StreamWriter
,然后将其分配给datacontext的Log属性。请参阅此处了解一些不错的示例:http://damieng.com/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers
答案 1 :(得分:1)
最好的办法是使用SQL Server Profiler。这会将所有查询记录到跟踪文件中,您可以在跟踪后加载以查看查询耗时等等。
查看此介绍。 http://msdn.microsoft.com/en-us/library/ff650699.aspx
确保选择正确的事件,例如声明已完成。
请参阅此文章以获取进一步参考