Jak ożywić liczniki wydajności programu SQL Server 2008 R2?

11

Używam programisty SQL Server 2008 R2 Developer na Windows 7 x64, jako instancji domyślnej. Z jakiegoś powodu liczniki wydajności programu SQL Server wydają się zniknąć. SELECT * FROM sys.dm_os_performance_counterszwraca zero wierszy.

Próbowałem biec lodctr /T:perf-MSSQLSERVERsqlctr.ini. Chociaż zakończyło się bez błędów, niczego nie naprawiło, nawet po ponownym uruchomieniu usługi Rejestru zdalnego. W rzeczywistości liczniki zniknęły z perfmon. unlodctr MSSQLSERVERnadal mówi, że liczniki nie są zainstalowane, ale lodctr /Q:MSSQLSERVERmówi, że są obecne i włączone. Zwykłe liczniki Windows i .NET działają dobrze.

W dzienniku błędów systemu Windows widzę błąd 8317:

Nie można wyszukać wartości „Pierwszy licznik” powiązanej z kluczem rejestru „HKLM \ SYSTEM \ CurrentControlSet \ Services \ MSSQLSERVER \ Performance”. Liczniki wydajności programu SQL Server są wyłączone.

Podejrzewam, że problem mógł zostać wywołany przez instalację SQL 2012 RC0, która zakończyła się niepowodzeniem. Wszelkie sugestie dotyczące sposobu odzyskania, bez ponownej instalacji programu SQL Server 2008 R2?

RickNZ
źródło
Masz na myśli „Visual Studio 11” (nie „2011”?)
gbn
Tak, VS 11. Problem z pytaniem dotyczącym błędu serwera polega na tym, że żadna z opublikowanych odpowiedzi nie rozwiązała problemu. Mam nadzieję, że użytkownicy zorientowani na DBA mogą zapewnić bardziej przydatną pomoc.
RickNZ

Odpowiedzi:

4

Spróbuj lodctr /R, odbuduje wszystkie liczniki wydajności z informacji przechowywanych w rejestrze.


źródło
W moim przypadku brakowało więcej liczników, nie tylko SQL Server. lodctr /Rwykonał lewę i przywrócił je wszystkie. Dziękuję bardzo za podstęp.
Endrju
4

Przeczytaj to:

http://blogs.msdn.com/b/psssql/archive/2009/03/03/troublesh-sql-server-2005-2008-performance-counter-collection-problems.aspx

Dokładne instrukcje nie są w 100% poprawne. Musisz to zrobić, zakładając, że używasz domyślnej instancji:

unlodctr MSSQLSERVER
lodctr perf-MSSQLSERVERsqlperf.ini
lodctr /T:MSSQLSERVER

Następnie uruchom ponownie.


źródło
Odkryłem, że ścieżka pliku symboli w moim pliku perf-MSSQLSERVERsqlctr.ini jest niepoprawna. Naprawiłem to, uruchomiłem lodctr /T:perf-MSSQLSERVERsqlctr.ini, lodctr perf-MSSQLSERVERsqlctr.ini i zrestartowałem SQL Server.
Der_Meister
2

Wygląda na to, że liczniki wydajności dla programu SQL Server są WYŁĄCZONE lub wpisy rejestru dla liczników wydajności są uszkodzone.

lodctr /E:MSSQLSERVER ponownie załaduje ustawienia rejestru licznika wydajności.

RAVJEET SINGH
źródło
0

Jeśli używasz 32-bitowej wersji programu SQL Server w 64-bitowej instalacji systemu Windows, musisz użyć 32-bitowej wersji programu Performance Monitor, aby wyświetlić liczniki, jak wyjaśniono w blogu MSDN . Zrób to za pomocą jednej z następujących metod:

  1. Uruchom perfmon.exez %windir%\SysWOW64folderu
  2. Uruchom polecenie mmc /32 perfmon.msc

Upewnij się także, że korzystasz z programu SQL Server z najnowszym dodatkiem Service Pack i poprawkami. Artykuł 2708726 MSKB opisuje problem polegający na tym, że pliki .dll Monitora wydajności nie są poprawnie aktualizowane podczas stosowania aktualizacji do SQL Server 2008 R2 lub SQL Server 2012.

Mówię: Przywróć Monikę
źródło