使用场景
我有一个在SQL Server 2005 Express Edition实例中运行的SQL 2005数据库。 有两个不同的.Net应用程序运行,不断连接到这个数据库并执行各种任务。 一个应用程序以每5秒钟0到200个logging的速度插入数据,这些插入需要在插入完成之前进行一些查找。 第二个应用程序然后每30-60秒轮询一次数据库,并对这些数据进行分析,这个应用程序也有一个GUI。
这两个应用程序和数据库都运行在一台没有连接到networking的独立机器上。 这台机器不是一台服务器,只是一台运行完整服务XP版本的商用32位个人电脑,它包含了4个RAM。
问题
使用GUI的应用程序偶尔变得呆滞,有时在10-30秒的时间内完全无响应,但通常会恢复。 说实话,这个阶段的“臭虫”报告对于固体信息有点薄,我所知道的一切都是错误的,不知何故都成了我的错。 有了这样的问题,我通常会发现,一旦我logging了一些可靠的性能数据,并可以显示实际的响应时间等问题“魔术般”停止问题了。 所以我有两个.Net应用程序的一些性能计数器(使用perfmon.exe),并且在分析它们之前等待一段很长的时间。 但是我目前没有任何适用于SQL Server实例的计数器。
问题(S)
我应该使用哪些性能计数器来监视SQL实例的内存,CPU,性能等等?
你能指出我有什么像样的文章来解释这些计数器的含义吗? 我发现Brad McGehee 使用SQL Server性能监视器计数器的提示很好,但可能有点过时 – 一些提示似乎只针对2000个实例。
任何其他提示,技巧等?
干杯,
我认为你的麻烦与数据库中的锁有关。 另外,如果注入数据的应用程序使用dynamicSQL您的CPU将处于高负载。
尽pipesql express不包含一个分析器,但还有第三方应用程序执行相同的劳动,我推荐AnjLab.SqlProfiler。
欲了解更多信息,你可以在这里阅读一些文章
无法发布两个链接,因为我是一个新手在这里。 另一个很棒的网站是sql-server-performance