Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Microsoft phân phối Microsoft SQL Server 2008 R2 gói dịch vụ 1 (SP1) bản sửa lỗi dưới dạng một tệp được tải xuống. Vì bản sửa lỗi được tích lũy, mỗi bản phát hành mới chứa tất cả các hotfix và tất cả các bản Cập Nhật bảo mật được đưa vào bản phát hành SQL Server 2008 R2 gói dịch vụ 1 (SP1) bản Cập Nhật.

Triệu chứng

Khi một cảnh báo điều kiện hiệu suất SQL Server được nâng cao trong Microsoft SQL Server 2008 R2, bạn có thể nhận được thông báo lỗi sau đây:

Msg 512, mức 16, trạng thái 1, sp_sqlagent_get_perf_counters thủ tục, truy vấn dòng 40Sub đã trả về hơn 1 giá trị. Điều này không được phép khi truy vấn phụ sau =,! =, <, <=, >, >= hoặc khi truy vấn phụ được dùng làm biểu thức.

Ngoài ra, thông báo lỗi sẽ được đăng nhập vào Nhật ký lỗi SQL Server Agent trong tình huống này.Lưu ý Vấn đề này cũng xảy ra trong Microsoft SQL Server 2008.

Nguyên nhân

Sự cố này xảy ra vì truy vấn phụ của quy trình lưu trữ hệ thống msdb.dbo.sp_sqlagent_get_perf_counters tính toán giá trị của một số truy cập không đúng. Truy vấn phụ thiếu mối quan hệ gia nhập bên trong cho cột [object_name] trong điều kiện của truy vấn phụ. Do đó, nhiều hàng không được trả về không chính xác và sự cố được đề cập trong phần "các triệu chứng" xảy ra.Lưu ý Quy trình lưu trữ hệ thống msdb.dbo.sp_sqlagent_get_perf_counters chạy khi một cảnh báo điều kiện hiệu suất SQL Server được nâng cao.

Giải pháp

Thông tin Cập Nhật tích lũy

Gói Cập Nhật tích lũy 3 cho SQL Server 2008 R2 SP1

Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong gói Cập Nhật tích lũy 3. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy cho SQL Server 2008 R2 SP1, hãy bấm vào số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:

2591748 Gói Cập Nhật tích lũy 3 cho SQL Server 2008 R2 SP1Lưu ý Vì bản dựng được tích lũy, mỗi bản cập nhật mới có chứa tất cả các hotfix và tất cả các bản Cập Nhật bảo mật đã được đưa vào bản phát hành SQL Server 2008 R2 SP1 trước đó. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản cập nhật gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

2567616 Bản dựng SQL Server 2008 R2 đã được phát hành sau khi SQL Server 2008 R2 SP1 đã được phát hành

Cách giải quyết

Để giải quyết vấn đề này, hãy Cập Nhật truy vấn phụ của quy trình lưu trữ hệ thống msdb.dbo.sp_sqlagent_get_perf_counters . Để thực hiện điều này, hãy thêm điều kiện sau đây vào mệnh đề where của bốn truy vấn phụ được dùng trong tính toán [giá trị] cột:

(spi1.[object_name] = spi2.[object_name])

Sau khi bạn thêm điều kiện, các truy vấn phụ trông giống như sau:

SELECT CASE spi2.cntr_value WHEN 0 THEN 1 ELSE spi2.cntr_value ENDFROM sys.dm_os_performance_counters spi2WHERE (spi1.[object_name] = spi2.[object_name])AND (spi1.counter_name + ' ' = SUBSTRING(spi2.counter_name, 1, PATINDEX('% Base%', spi2.counter_name)))AND (spi1.instance_name = spi2.instance_name)AND (spi2.cntr_type = @perfTypeLargeRawBase

Trạng thái

Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×