检测数据库访问

Whi*_*isk 6 database logging instrumentation

杰夫在其中一个播客中提到,他总是做的其中一件事就是放入数据库调用的工具中,以便他可以判断哪些查询导致缓慢等等.这是我过去使用SQL Profiler测量过的,但是我对其他人习惯将此作为应用程序的一部分包含在内的策略感兴趣.

它只是在每个数据库调用中包含一个计时器并记录结果的情况,还是有一种"整洁"的方式呢?也许有一个框架已经为你做了这个,或者是否有一个我可以启用的标志,例如Linq-to-SQL,它将提供类似的功能.

我主要使用c#,但也有兴趣看到来自不同语言的方法,并且我对通过像SQL Profiler这样的数据库平台方法执行此操作的"代码"方式更感兴趣.

Joh*_*ney 1

如果查询不仅仅是单个表上的简单 SELECT,如果我在 MySQL 或 PostgreSQL 上,我总是通过 EXPLAIN 运行它。如果您使用的是 SQL Server,则 Management Studio 有一个显示估计执行计划,其本质上是相同的。了解引擎如何访问每个表以及它将使用哪些索引非常有用。有时它会让你感到惊讶。