Làm thế nào để hồi sinh bộ đếm hiệu suất SQL Server 2008 R2?


11

Tôi đang chạy SQL Server 2008 R2 Developer trên Windows 7 x64, làm ví dụ mặc định. Vì một số lý do, bộ đếm hiệu suất của SQL Server dường như đã biến mất. SELECT * FROM sys.dm_os_performance_counterstrả về hàng không.

Tôi đã thử chạy lodctr /T:perf-MSSQLSERVERsqlctr.ini. Mặc dù nó đã hoàn thành mà không có lỗi, nhưng nó không sửa được gì, ngay cả sau khi khởi động lại dịch vụ Remote Registry. Trong thực tế, các quầy hiện đang mất tích từ perfmon. unlodctr MSSQLSERVERvẫn nói rằng các bộ đếm chưa được cài đặt, nhưng lodctr /Q:MSSQLSERVERnói rằng chúng có mặt và được kích hoạt. Bộ đếm Windows và .NET thông thường đang hoạt động tốt.

Trong nhật ký Lỗi Windows, tôi thấy Lỗi 8317:

Không thể truy vấn giá trị 'Bộ đếm đầu tiên' được liên kết với khóa đăng ký 'HKLM \ HỆ THỐNG \ CurrentControlset \ Services \ MSSQLSERVER \ Performance'. Bộ đếm hiệu suất SQL Server bị vô hiệu hóa.

Tôi nghi ngờ sự cố có thể đã được kích hoạt do cài đặt SQL 2012 RC0 không thành công. Bạn có đề xuất nào về cách phục hồi, không cài đặt lại SQL Server 2008 R2 không?


Bạn có nghĩa là "Visual Studio 11" (không phải "2011"?)
gbn

Có, VS 11. Vấn đề với câu hỏi trên serverfault là không có câu trả lời nào được đăng đã giải quyết vấn đề. Tôi hy vọng người dùng theo định hướng DBA có thể cung cấp trợ giúp hữu ích hơn.
RickNZ

Câu trả lời:


4

Hãy thử với lodctr /R, nó sẽ xây dựng lại tất cả các bộ đếm hiệu suất từ ​​thông tin được lưu trữ trong sổ đăng ký.


Trong trường hợp của tôi, có nhiều bộ đếm bị thiếu hơn, không chỉ SQL Server. lodctr /Rđã lừa và khôi phục lại tất cả. Cảm ơn bạn rất nhiều cho các mẹo.
Endrju

4

Đọc qua điều này:

http://bloss.msdn.com/b/psssql/archive/2009/03/03/troubledhoot-sql-server-2005-2008-performance-count-collection-probols.aspx

Các hướng dẫn chính xác không chính xác 100%. Bạn cần phải làm điều này, giả sử bạn đang sử dụng thể hiện mặc định:

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

Sau đó khởi động lại.


Tôi thấy rằng đường dẫn symbolfile trong perf-MSSQLSERVERsqlctr.ini của tôi là không chính xác. Tôi đã sửa nó, thực thi lodctr /T:perf-MSSQLSERVERsqlctr.ini, lodctr perf-MSSQLSERVERsqlctr.ini và khởi động lại SQL Server.
Der_Meister


2

Có vẻ như Bộ đếm hiệu suất cho SQL Server bị TẮT hoặc các mục đăng ký cho bộ đếm hiệu suất bị hỏng.

lodctr /E:MSSQLSERVER sẽ tải lại các thiết lập đăng ký truy cập hiệu suất.


0

Nếu bạn đang chạy phiên bản SQL Server 32 bit trên bản cài đặt Windows 64 bit, bạn cần sử dụng phiên bản Trình theo dõi hiệu suất 32 bit để xem các bộ đếm như được giải thích trong Blog MSDN này . Làm như vậy bằng một trong hai phương pháp sau:

  1. Chạy perfmon.exetừ %windir%\SysWOW64thư mục
  2. Chạy lệnh mmc /32 perfmon.msc

Ngoài ra, hãy đảm bảo bạn đang chạy SQL Server với Gói dịch vụ và Hotfix mới nhất. Bài viết MSKB 2708726 mô tả một vấn đề trong đó các tệp theo dõi hiệu suất không được cập nhật đúng khi áp dụng các bản cập nhật cho SQL Server 2008 R2 hoặc SQL Server 2012.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.