Instance serveru SQL pomalu při použití SQL Profiler provádět trasování klienta události v instanci

Příznaky

Jde o takovouto situaci:
  • Máte počítač, ve kterém běží instanci Microsoft SQL Server 2000 nebo 2005 Microsoft SQL Server.
  • Použití SQL Profiler provádět trasování klienta události instance serveru SQL Server.
  • Spustit SQL Profiler v počítači je spuštěna instance serveru SQL nebo spustit SQL Profiler v jiném počítači.
V tomto scénáři instance serveru SQL pomalu.

Pokud k tomuto problému dochází, pokud dotaz systémové tabulce master.dbo.sysprocesses v instanci serveru SQL Server projevit následující příznaky:
  • Několik procesu aktivní serveru ID (identifikátory SPID) zobrazit 0x404 (LATCH_EX) hodnotu ve sloupci waittype .
  • Identifikátory SPID jednoho nebo více zobrazení SQL Profiler hodnoty ve sloupci název_aplikace .
Navíc zobrazí jedna z následujících hodnot ve sloupci waitresource Jestliže dotaz systémové tabulce master.dbo.sysprocesses :
  • RŮZNÉ (Šestnáctková adresa)
  • TRACE_CONTROLLER
  • TRACE_IO_SYNC
  • TRASOVÁNÍ
Zobrazí jedna z těchto hodnot, pokud jsou splněny následující podmínky:
  • Používáte SQL Server 2000 Service Pack 4 (SP4) nebo SQL Server 2005.
  • K provedení operace synchronizace trasování v SQL Profiler čeká číslo SPID.

Příčina

Při spuštění SQL Profiler proti instance SQL Server 2000 nebo SQL Server 2005 každý aktivní SPID instance vyžaduje výhradní zámek (LATCH_EX) zapisovat události SQL Profiler. Číslo SPID nejprve zapíše událost do místní paměti vyrovnávací paměti. Událost je pak převeden do SQL Profiler. Pokud místní paměti vyrovnávací paměť je plná, číslo SPID zahodí události. Po událostech v místní paměti vyrovnávací paměti jsou převedeny do SQL Profiler, číslo SPID zapsat nové události do místní paměti vyrovnávací paměti. Pokud chcete zapisovat události SQL Profiler čekají další identifikátory SPID, tyto identifikátory SPID čekání ve frontě.

Protože SQL Profiler je proces, který je oddělen od procesu serveru SQL Server, přenos každé události do SQL Profiler trvá určitou dobu. Pokud spustíte SQL Profiler v jiném počítači, tento proces trvá déle. Tento proces trvá déle, kvůli čekací doby v síti a z důvodu výkonu počítače se systémem SQL Profiler. Instance serveru SQL Server proto provede pomalu.

Jak potíže obejít

Chcete-li tento problém vyřešit, nepoužívejte SQL Profiler provádět trasování klienta události instance serveru SQL Server. Místo toho použijte systémové uložené procedury provádět na straně serveru trasování událostí.

Můžete použít následující postupy systému uloženy:
  • sp_trace_create
  • sp_trace_setevent
  • sp_trace_setfilter
  • sp_trace_setstatus
Další informace o tyto systémové uložené procedury, hledání pro uložené procedury SQL Server 2000 Books Online nebo v SQL Server 2005 Books Online.

Stav

Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".

Další informace

Můžete použít nástroj PSSDIAG kolekce dat shromažďovat soubory dat trasování. Další informace o nástroj PSSDIAG kolekce dat, klepněte na následující číslo článku databáze Microsoft Knowledge Base:

Nástroj pro sběr dat PSSDIAG 830232

Další informace o sloupci waittype SQL Server 2000 a SQL Server 2005 klepněte na následující číslo článku databáze Microsoft Knowledge Base:

822101 popis sloupce waittype a lastwaittype v tabulce master.dbo.sysprocesses v SQL Server 2000 a SQL Server 2005

Vlastnosti

ID článku: 929728 - Poslední kontrola: 14. 1. 2017 - Revize: 1

Váš názor