SQL Server 2016 CPU nhàn rỗi cao và truy vấn cực kỳ chậm


10

Tôi có bản cài đặt WinServer2012R2 và SQL Server Express 2016 ~ 10 ngày cũ để thử nghiệm. Tôi là người dùng duy nhất trên máy này. Cơ sở dữ liệu có .bak từ SQL Server 2005 có ~ 250MB được khôi phục mà không gặp sự cố nào. Sau khi khởi động lại máy, quy trình "SQL Server NT - 64 Bit" sử dụng CPU 0%.

Sau vài phút hoặc vài giờ và một số truy vấn đơn giản (không cập nhật / chèn!) Từ việc sử dụng CPU SSMS của "SQL Server NT - 64 Bit" đột nhiên nhảy lên ~ 15% và ở đó, ngay cả khi không hoạt động. Từ thời điểm đó, các truy vấn thường mất ít hơn một giây đột nhiên mất 2 phút. Trong một truy vấn thực tế, việc sử dụng CPU KHÔNG tăng. Máy chủ trở nên hầu như không sử dụng được trong trạng thái này.

Chỉ kết nối SQL Server Profiler sau đó mất> 30 giây. Bên cạnh các truy vấn của riêng tôi, tôi chỉ thấy rất ít truy vấn từ SQLServerCEIP / SQLTELEMETRY, ~ 3 mỗi phút.

Khởi động lại SQL-Server không giải quyết được nó. Sử dụng CPU nhảy trở lại ~ 15%. Ngay cả sau nhiều giờ SQL-Server vẫn không phục hồi. Chỉ khởi động lại toàn bộ máy giải quyết vấn đề.

Vì đây là một bản cài đặt "ngoài luồng", chỉ có một cơ sở dữ liệu nhỏ, hầu như không có truy vấn nào, chỉ có tôi là người dùng và có lẽ không có khóa, nhiều bài viết về các vấn đề hiệu năng SQL-Server thông thường nói về rất nhiều điều không nên Tôi thực sự áp dụng ở đây. Có vẻ như SQL-Server chỉ muốn tập trung vào một số nhiệm vụ nội bộ.

Đây là một máy ảo với RAM 2GB và Xeon kép với tốc độ 2 GHz. Tôi cũng có VS2016 trên đó và nó thực sự nhanh. Không có phần mềm chống vi-rút, thậm chí không có Windows Defender. Đã trễ ở đây. Tôi sẽ thử sp_whoisactive vào ngày mai. Tôi thực sự tự hỏi SQL-Server đang làm gì ở đó ... Trên máy trước đó có 1 GB DB tương tự chạy dưới SQLServer2005 trong 10 năm mà không gặp vấn đề gì ...

Tôi không phải là chuyên gia SQL-Profiler. Tôi nên bắt đầu tìm kiếm ở đâu?


Có thể là một cài đặt xấu. Hãy xem xét một bản cài đặt mới của HĐH và SQL. Tất cả các gói dịch vụ. Bạn có thể đuổi theo những thứ như thế này mãi mãi. Nếu vấn đề vẫn còn đó thì bạn có thể bỏ cài đặt một cách hợp lý.
paparazzo

7
Bạn đã cài đặt phần mềm chống vi-rút chưa? Tôi muốn thêm một loại trừ cho SQL Server thực thi, cũng như các tệp MDF, NDF và LDF.
Randolph West

1
Bạn đã xem xét các thiết lập tiết kiệm năng lượng là tốt?
Randolph West

Tôi nhớ lại hành vi tương tự của năm 2005 nếu tùy chọn cơ sở dữ liệu auto_update_statistics_asyncđược bật.
Roger Wolf

Hãy thử lấy cơ sở dữ liệu ngoại tuyến và kiểm tra việc sử dụng cpu. Nếu việc sử dụng cpu không giảm thì vấn đề về cơ sở dữ liệu máy chủ sql của nó.
Muhammad Yousaf Sulahria

Câu trả lời:


3

Vì mức độ sử dụng CPU của bạn thấp (và bạn có một bộ CPU tuyệt vời), tôi sẽ kiểm tra áp suất bộ nhớ trước. Với SQL Express 2016, bạn bị giới hạn ở 1410 MB bộ nhớ, nhưng VM của bạn chỉ có 2GB. Cung cấp cho VM thêm 1GB bộ nhớ và xem điều đó có giúp ích không. Bạn cũng có thể kiểm tra nhật ký Máy chủ SQL của mình nếu nó đang phân trang bộ nhớ thành tệp.

Nếu điều đó không hiệu quả, hãy thử đặt cài đặt cơ sở dữ liệu LEGACY_CARDINALITY_ESTIMATION thành BẬT. Tham khảo: Sử dụng DB Tương thích cấp 130 với CE cũ trong SQL Server 2016 . Chúng tôi đã chạy vào đây với một số nâng cấp của chúng tôi; kết quả sẽ thay đổi theo từng cơ sở dữ liệu.


Trong khi đó, tôi thấy rằng việc bắt đầu / dừng một phần mềm khác có sử dụng bộ nhớ quá mức (như Visual Studio) làm cho vấn đề trở nên tồi tệ hơn theo cách có thể lặp lại. Vì vậy, tôi sẽ xác nhận đó là vấn đề về bộ nhớ - SQL-Server bắt đầu phân trang khi bị nén nhiều.
Andreas Steidle

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.