Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sử dụng đám mây Spotlight để giải quyết việc chặn máy chủ SQL

Chặn SQL Server trong cơ sở dữ liệu xảy ra khi một giao dịch giữ một khóa trên một tài nguyên và ngăn một hoặc nhiều kết nối hoạt động trên cùng một tài nguyên đó. Kết nối thứ hai phải đợi khóa giải phóng trước khi có thể tiếp tục. Điều này được thực hiện để đảm bảo thành phần cách ly, của ACID - nghĩa là các giao dịch đồng thời không hiển thị với nhau cho đến khi chúng hoàn tất. Chặn trong SQL Server có thể tàn phá hiệu suất trong bất kỳ môi trường nào.

Một trong những nhiệm vụ mà người quản trị cơ sở dữ liệu làm là xác định truy vấn đang thực hiện việc chặn, khắc phục nó và sau đó tiến thêm một bước để xác định nguyên nhân gốc rễ. Nghiên cứu nguyên nhân gốc rễ, đặc biệt là sau khi thực tế, có thể là một nhiệm vụ rất khó khăn. Đối với hầu hết, điều này có nghĩa là quá trình root rất tốn thời gian thông qua các chế độ xem quản lý động SQL Server chẳng hạn như s ys.dm_exec_requests hoặc chạy các thủ tục hệ thống như sp_who2 để tìm hiểu chi tiết về các ID quy trình hệ thống (SPIDS) liên quan đến chuỗi khối. Spotlight Cloud có thể làm giảm đáng kể nỗ lực của bạn trong việc xác định các sự kiện chặn này.

Sử dụng giám sát cơ sở dữ liệu để xác định khối máy chủ SQL

Hình 1:Trang tổng quan

Bắt đầu từ trang tổng quan Tổng quan, Spotlight Cloud cung cấp một cái nhìn rõ ràng về toàn bộ môi trường. Nó hiển thị các số liệu bao gồm số lượng phiên, quy trình, sử dụng bộ nhớ, tiêu thụ đĩa và tất cả thời gian chờ trong nháy mắt. Quan trọng hơn, nó hiển thị rõ ràng hoạt động chặn; ở trung tâm của Hình 1, bạn có thể thấy rõ rằng hiện có hai quá trình bị chặn.

Đối với một DBA, việc tìm hiểu chi tiết là cần thiết để giải quyết các vấn đề về chặn. Spotlight Cloud cung cấp cho chúng tôi khả năng đi sâu vào chi tiết phiên hơn bằng cách chỉ cần chọn menu thả xuống từ Tổng quan như thể hiện trong Hình 2.

Hình 2:Trình đơn thả xuống từ Tổng quan

Spotlight Cloud cho phép bạn dễ dàng xem những phiên nào bị chặn và những câu lệnh nào có liên quan. Trong Hình 3, bạn có thể thấy SPID 59 &65 đều bị chặn (được biểu thị bằng màu cam xung quanh trạng thái), khớp với số lượng bị chặn. Bạn cũng sẽ nhận thấy rằng Spotlight Cloud tiếp tục cung cấp các chi tiết tóm tắt về trạng thái phiên bản hiện tại của chúng tôi, cho phép chúng tôi theo dõi các bộ đếm quan trọng trong khi tìm hiểu các vấn đề về hiệu suất.

Sử dụng Spotlight Cloud SQL Server Giám sát để giải quyết các vấn đề về chặn

Hình 3:Trang tổng quan về phiên

Bảng điều khiển Phiên (như trong Hình 3) cung cấp cho chúng tôi những thông tin quan trọng mà chúng tôi cần để giải quyết vấn đề. Tại đây, bạn có thể tìm thấy thông tin quan trọng như người dùng đang chạy các câu lệnh nào, cơ sở dữ liệu nào bị ảnh hưởng và khi phiên được nêu. Độ sâu của chi tiết được cung cấp là một trình tiết kiệm thời gian thực cho những DBA cần câu trả lời nhanh cho những gì đang gây ra chặn để họ có thể giải quyết vấn đề đó. Bạn không chỉ thấy rằng bạn có hai chuyển đổi bị chặn, mà chúng tôi còn có thể thấy rằng cả hai đều là câu lệnh CẬP NHẬT trên cùng một bảng đang được chạy bởi tài khoản Dịch vụ Mạng dựa trên cơ sở dữ liệu Bán hàng. Tuyên bố thực tế được hiển thị ở góc dưới cùng bên phải. Cuối cùng, chúng ta có thể thấy cả SPID đang hoạt động và SPID mà nó đang bị chặn.

Về phía góc trên bên phải của Hình 3, bằng văn bản màu xanh lam, Spotlight Cloud cho bạn biết nơi tiếp theo trong cuộc điều tra của bạn. Sản phẩm trong mỗi lớp cung cấp một hướng dẫn rõ ràng về cách lặn sâu hơn nữa. Nhấp vào liên kết Điều tra trong Trình phân tích khối lượng công việc cho phép bạn xem SPID 61 được gọi là gì sẽ xảy ra là trình chặn khách hàng tiềm năng cho SPID 65.

Hình 4:Trình phân tích khối lượng công việc (đây là nơi chúng tôi muốn mở rộng Phiên bị chặn)

Trình phân tích khối lượng công việc cung cấp cho bạn một thứ nguyên chi tiết cho phép bạn đi sâu vào các tài nguyên cụ thể, chẳng hạn như chặn. Trong Hình 4, bạn có thể thấy cách chúng tôi tìm hiểu sâu hơn bằng cách nhấp vào hai mũi tên mở rộng ở góc của phần Phiên bị chặn.

Hình 5:Chi tiết về các phiên bị chặn

Bây giờ bạn đã biết cơ sở dữ liệu liên quan, bạn có thể tìm hiểu sâu hơn một chút. Trên điều hướng bên trái, bạn có thể đi sâu vào cơ sở dữ liệu bán hàng. Tại đây bạn có thể thấy SPID 61 và 64 bao gồm cả trạng thái hiện tại. Cả hai ID quy trình hệ thống này đều đang chặn và thông báo rằng SPID 59 hiện cũng bị SPID 64 chặn. Chế độ xem này giúp đảm bảo rằng bạn có thể tiếp tục chặn khi bạn tiếp tục điều tra.

Ở nửa dưới của Hình 5, bạn có thể thấy trong Bản đồ phiên bị chặn, nó cho bạn biết chi tiết của SPID 61, trong trường hợp này là trình chặn chính của chúng tôi. Thủ phạm thực sự là một phần của Công việc tác nhân SQL đang chạy, điều này có ý nghĩa dựa trên người dùng mà chúng tôi tìm thấy đang chạy câu lệnh. Nếu bạn nhớ lại thì đó là tài khoản dịch vụ mạng, NT AUTHORITY \ NETWORK SERVICE. Trong trường hợp này, Dịch vụ tác nhân SQL đang chạy theo bộ thông tin xác thực cụ thể này.

Bước tiếp theo là tìm hiểu những công việc đang chạy và xem liệu bạn có thể giết công việc đó để dừng việc chặn hay không. Thông thường, bạn sẽ đến SQL Server Management Studio để xem lại SQL Agent và xem xét các công việc, nhưng Spotlight giúp bạn dễ dàng hơn và cũng cung cấp cho bạn một cái nhìn toàn diện về các công việc. Bạn có thể tìm thấy điều này bằng cách nhấp vào mũi tên bên cạnh các từ “Trình phân tích khối lượng công việc” ở trên cùng giống như bạn đã làm khi điều hướng từ Tổng quan sang Phiên.

Hình 6:Thả xuống từ Trình phân tích khối lượng công việc

Ngăn chặn các khối máy chủ SQL trong tương lai

Việc nghiên cứu quy tắc chặn cần có thời gian và đôi khi, trong khi chúng tôi đang nghiên cứu một vấn đề cụ thể, quy trình chặn sẽ tự giải quyết. Trong trường hợp này, công việc đang chạy đã hoàn tất và các bản cập nhật bị chặn có thể chạy. Mặc dù vấn đề trước mắt không còn tồn tại, bạn vẫn cần tiếp tục tìm nguyên nhân gốc rễ để đảm bảo có thể ngăn chặn nó trong tương lai.

Vì bạn đã xác định SPID 61 là công việc đang chạy và vì thời gian đã trôi qua nên bây giờ bạn cần phải xem lại lịch sử. Để xem lại lịch sử, chỉ cần thay đổi phạm vi ngày được hiển thị thành phạm vi thời gian chặn đang hoạt động. Trong Hình 7, bạn có thể thấy phạm vi ngày ở góc bên phải, bạn có thể nhấp vào menu thả xuống và điều chỉnh thời gian cho phù hợp. Tiếp theo, bạn muốn tìm SPID 61 bằng chức năng tìm kiếm. Mỗi môi trường đều khác nhau vì vậy những gì bạn làm với thông tin này bây giờ sẽ phụ thuộc. Việc bạn điều chỉnh thời gian của công việc, thực hiện một số thay đổi đối với chỉ mục, mã hoặc cấu hình sẽ hoàn toàn tùy thuộc vào bạn.

Hình 7 Việc làm

Hình 8:Các khối chạy dài

Một số khối chỉ đến và đi quá nhanh nên chúng không có ảnh hưởng đáng kể đến hiệu suất. Khi chúng tồn tại lâu hơn, chúng ta cần biết về sự nhanh chóng này. Spotlight Cloud có cảnh báo "khóa hoạt động lâu" để thông báo cho người dùng về các khối không biến mất.

Hình 9:Kích thước đối tượng bị chặn

Chặn là một triệu chứng của một số vấn đề lớn hơn và nó thường có các quan điểm khác nhau để tìm ra nguyên nhân gốc rễ. Thứ nguyên đối tượng bị chặn trong trình phân tích khối lượng công việc Spotlight Cloud cho phép người dùng nhanh chóng xác định các đối tượng đang tạo ra hoạt động chặn nhiều nhất cho một trường hợp cụ thể.

Xác định việc chặn và tìm hiểu nguyên nhân là phần khó nhất đối với DBA. Spotlight Cloud Professional cho phép chúng tôi truy cập thông tin này một cách nhanh chóng và hiệu quả. Khi thời gian giải quyết được vấn đề đang hoạt động, Spotlight Cloud cho phép chúng tôi tiếp tục điều tra để tìm ra nguyên nhân gốc rễ và cuối cùng cung cấp cho chúng tôi thông tin cần thiết để đưa ra quyết định sáng suốt về cách ngăn chặn sự cố trong tương lai.

Bạn muốn xem Spotlight Cloud đang hoạt động? Bắt đầu bản dùng thử 30 ngày miễn phí của bạn ngay hôm nay.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng thủ tục lưu trữ ‘sp_server_info’ trong SQL Server

  2. Làm cách nào để nhận giá trị tiếp theo của chuỗi SQL Server trong Entity Framework?

  3. Một bảng máy chủ sql có thể có hai cột nhận dạng không?

  4. Chuyển đổi float thành varchar trong SQL Server mà không có ký hiệu khoa học

  5. Bạn sử dụng kích thước nào cho varchar (MAX) trong khai báo tham số của mình?