2009-08-25 46 views
9

Điều gì sẽ khiến truy vấn được thực hiện trong Management Studio bị tạm ngưng?Trạng thái bị treo trong Màn hình hoạt động SQL

  1. Tôi thực hiện lựa chọn đơn giản từ đầu bảng 60000 (có 11 triệu hàng) và kết quả sẽ trở lại trong vòng một hoặc hai giây.
  2. Tôi thay đổi truy vấn thành 70000 trên cùng và kết quả mất tối đa 40 phút.

Từ thực hiện một chút tìm kiếm trên một vấn đề khác nhưng có liên quan tôi gặp một người sử dụng DBCC FREEPROCCACHE để khắc phục sự cố.

  1. Tôi chạy DBCC FREEPROCCACHE và sau đó làm lại truy vấn cho 70000 và có vẻ như hoạt động.

Tuy nhiên, sự cố vẫn xảy ra với truy vấn khác.

  1. Tôi tăng để nói 90000 hoặc nếu tôi cố gắng mở bảng bằng [Right-> Open Table], nó sẽ lấy khoảng 8000 bản ghi và dừng.

Kiểm tra nhật ký hoạt động khi tôi làm Bảng mở cho thấy phiên đã bị tạm ngưng với kiểu chờ "Async_Network_IO". Đối với phiên chạy chọn 90000 trạng thái là "Ngủ", đây là trạng thái tương tự cho truy vấn chọn 70000 ở trên đã trả về nhưng trong 45 phút. Nó là lạ với tôi rằng tình trạng cho thấy "Ngủ" và nó không xuất hiện để được thay đổi để "Runable" (Tôi có màn hình activiy làm mới bao giờ 30 giây).

Ghi chú thêm:

  • Tôi không chạy cả Bảng Open và chọn 90000 cùng một lúc. Tất cả các truy vấn được thực hiện cùng một lúc.
  • Tôi đang chạy 32 bit SQL Server 2005 SP2 CU9. Tôi đã thử nâng cấp lên SP3 nhưng chạy vào cài đặt thất bại. Các vấn đề đã xảy ra trước khi tôi thử nâng cấp này.
  • Thiết lập máy chủ là một cụm Hiện hoạt/Hoạt động vấn đề xảy ra trên một trong hai nút và trường hợp khác không có vấn đề này.
  • Tôi có ~ 20 cơ sở dữ liệu khác trên cùng một cá thể máy chủ này nhưng chỉ có một DB này đang gặp sự cố.
  • Cơ sở dữ liệu này khá lớn. Hiện tại nó đang ở mức 76756.19MB. Tệp dữ liệu là 11.513MB.
  • Tôi đã đăng nhập cục bộ trên hộp Máy chủ bằng Remote Desktop.

Trả lời

9

Loại chờ "Async_Network_IO" có nghĩa là chờ đợi máy khách lấy bộ kết quả khi bộ đệm mạng của máy chủ SQL đầy. Tại sao khách hàng của bạn không thu thập dữ liệu một cách kịp thời mà tôi không thể nói.

Trường hợp khác nó có thể xảy ra là với các máy chủ được liên kết khi SQL Server đang truy vấn một bảng từ xa, trong trường hợp này SQL Server đang chờ máy chủ từ xa phản hồi.

Điều đáng xem là máy quét vi-rút, nếu họ đang theo dõi kết nối mạng đôi khi chúng có thể bị tụt hậu, thường là do chúng hogging tất cả CPU.

2

Bị tạm dừng có nghĩa là tài khoản đang chờ tài nguyên và sẽ tiếp tục khi tài nguyên của tài nguyên. Đánh giá từ các kích thước bạn đang kéo trở lại, có vẻ như bạn đang ở trong một loại truy vấn OLAP.

Hãy thử những điều sau đây:

  1. Sử dụng NOLOCK hoặc đặt cô lập CẤP GIAO DỊCH ở phía trên cùng của truy vấn
  2. Kiểm tra kế hoạch thực hiện của bạn và điều chỉnh các truy vấn để có hiệu quả hơn
Các vấn đề liên quan