我刚刚意识到由于一些隐藏的编码,我的应用程序不必要地为每个用户请求进行50多个数据库调用 - 隐藏在LINQ,持久性框架和事件之间的意义上,它发现大量的调用是在没有我意识的情况下成长。
是否有推荐的方法来分析进入我的SQL 2008数据库的单个事务,最好是与我的Visual Studio 2010环境进行一些集成?我希望能够“监视”正在进行的单个事务,但仅针对我的代码的某些部分,并且不对代码或数据库进行重大更改。
答案 0 :(得分:1)
除了SQL Server Profiler之外,您还可以查看许多性能计数器,以查看实时评估和历史趋势:
Batch Requests/sec
:有效衡量对SQL Server的实际调用次数Transactions/sec
:每个数据库中的交易数。Connection resets/sec
:您网站从连接池启动的新连接数。您可以监控更多性能计数器,特别是如果您想要测量性能,但是除了此处的范围外,还要经历。一个很好的起点是Monitoring Resource Usage。
答案 1 :(得分:0)
您可以使用SQL Server Management Studio附带的SQL Profiler工具。
Microsoft SQL Server Profiler是SQL Trace的图形用户界面,用于监视数据库引擎或Analysis Services的实例。您可以捕获有关每个事件的数据并将其保存到文件或表中,以便稍后进行分析。例如,您可以通过执行太慢来监视生产环境以查看哪些存储过程正在影响性能。
答案 2 :(得分:0)
如前所述,SQL Profiler在SQL Server级别是有用的。但它在SQL Server SSMS Express中不可用。
在.NET级别,LINQ to SQL和Entity Framework都支持日志记录。请参阅Logging every data change with Entity Framework,http://msdn.microsoft.com/en-us/magazine/gg490349.aspx,http://peterkellner.net/2008/12/04/linq-debug-output-vs2008/。