5

Maybe Normalizing Is Not Normal中,Jeff Atwood 说:“您正在自动测量流经您的软件的所有查询,对吗?” 我不是,但我愿意。

相关应用程序的一些功能:

4

6 回答 6

6

除了 Brad 提到的 SQL Profiler 之外,如果您想在代码中执行此操作,那么您的所有数据库调用都需要通过一个公共库进行汇集。您在那里插入计时代码,瞧,您知道系统中的每个查询需要多长时间。

单一的数据库入口点是任何 ORM 或数据库层的一个相当标准的特性——或者至少它已经出现在我迄今为止从事的任何项目中!

于 2008-08-14T03:13:56.770 回答
2

SQL Profiler是我用来监控流向我的 SQL Server 的流量的工具。它允许您收集有关 SQL Server 的详细数据。SQL Profiler 至少从 SQL Server 2000 开始就与 SQL Server 一起分发(但也可能在此之前)。

强烈推荐。

于 2008-08-14T03:00:29.997 回答
1

看看这一章 Jeff Atwood 和我写的关于网站性能优化的文章。我们涵盖了很多内容,但也有很多关于数据库跟踪和优化的内容: 加速您的网站:8 个 ASP.NET 性能技巧

于 2008-08-14T07:23:00.933 回答
0

CodePlex 上的Dropthings项目有一个用于计时代码块的类。该类名为 TimedLog。它实现了 IDisposable。您将希望计时的代码块包装在 using 语句中。

于 2008-08-14T03:54:38.873 回答
0

如果您使用 Rails,它会自动在您的开发日志文件中记录所有 SQL 查询以及它们执行所花费的时间。

我发现这非常有用,因为如果您确实看到需要一段时间的内容,只需将其直接复制并粘贴到屏幕/日志文件中,然后在 mysql 中将“解释”放在其前面即可。

你不必去挖掘你的代码并重建正在发生的事情。

不用说这在生产中不会发生,因为它会在大约一个小时内耗尽您的磁盘空间。

于 2008-08-14T05:00:51.767 回答
0

如果您定义了一个为您创建 SqlCommands 的工厂,并且在您需要新命令时始终调用它,您可以将RealProxy返回给 SqlCommand。

然后,该代理可以使用 StopWatch 测量 ExecuteReader / ExecuteScalar 等需要多长时间并将其记录在某处。使用这种方法优于 Sql Server Profiler 的优点是您可以获得每个执行的 SQL 片段的完整堆栈跟踪。

于 2009-02-17T11:56:44.413 回答