SQL Server 的一个实例执行缓慢时,使用 SQL 事件探查器实例中执行的事件的客户端的跟踪

文章翻译 文章翻译
文章编号: 929728 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

请考虑以下情形:
  • 您有运行实例或 Microsoft SQL Server 2005 的 Microsoft SQL Server 2000 的计算机。
  • 若要执行的 SQL Server 实例中的客户端跟踪事件的使用 SQL 事件探查器。
  • 正在运行的 SQL Server,实例的计算机上运行 SQL 事件探查器或另一台计算机上运行 SQL 事件探查器。
在这种情况下的 SQL Server 实例的执行速度很慢。

如果出现此问题,您注意到下列症状如果查询 master.dbo.sysprocesses 系统表中的 SQL Server 实例:
  • 多个活动服务器进程 id (spid) waittype 列中显示 0x404 (LATCH_EX) 的值。
  • 一个或多个 spid program_name 列中显示 SQL 事件探查器 的值。
此外,如果您看到 waitresource 列中为下列值之一来查询 master.dbo.sysprocesses 系统表:
  • MISC (hex address
  • TRACE_CONTROLLER
  • TRACE_IO_SYNC
  • 跟踪
如果满足下列条件,则看到两个值之一:
  • 您可以使用 SQL Server 2000 Service Pack 4 (SP4) 或 $ SQL Server 2005。
  • 在 SQL 事件探查器执行同步跟踪操作正在等待一个 SPID。

原因

当您对实例或 SQL Server 2005 的 SQL Server 2000 运行 SQL 事件探查器时,实例的每个活动 SPID 要求排他闩锁 (LATCH_EX) 将事件写入 SQL 事件探查器。SPID 将事件写入本地内存缓冲区第一次。然后,事件传递给 SQL 事件探查器。完整本地内存缓冲区是否 SPID 放弃该事件。本地内存缓冲区中的事件将转移到 SQL 事件探查器之后,该 SPID 可以写入本地内存缓冲区的新事件。如果其他 spid 在等待将事件写入 SQL 事件探查器,在队列中等待,这些 spid。

因为 SQL 事件探查器是一种独立于 SQL Server 过程的过程,将每个事件传送到 SQL 事件探查器需要一些时间。如果另一台计算机运行 SQL 事件探查器此过程需要花费更长的时间。由于网络延迟和由于正在运行 SQL 事件探查器的计算机的性能,此过程需要花费更长的时间。因此,实例 SQL Server 的执行速度很慢。

替代方法

要变通解决此问题,不要使用 SQL 事件探查器执行的 SQL Server 实例中的客户端的跟踪的事件。若要执行的事件的服务器端跟踪使用系统存储过程。

您可以使用下列系统存储过程:
  • sp_trace_create
  • sp_trace_setevent
  • sp_trace_setfilter
  • sp_trace_setstatus
有关这些系统的详细信息的存储过程,存储过程在 SQL Server 2000 丛书联机或 SQL Server 2005 丛书联机搜索。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

更多信息

您可以使用 PSSDIAG 数据集合实用程序来收集跟踪数据文件。有关 PSSDIAG 数据集合实用程序的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
830232PSSDIAG 数据集合实用程序
有关 waittype 列在 SQL Server 2000 和 SQL Server 2005 中的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822101waittype 和 lastwaittype 列中 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 表中的说明

属性

文章编号: 929728 - 最后修改: 2008年9月30日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2000 标准版
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Developer Edition
关键字:?
kbmt kbsql2005engine kbexpertiseadvanced kbtshoot kbprb KB929728 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 929728
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com