Chia sẻ ngay bây giờ:
Mục lục ẩn

1. Giới thiệu

1.1 là gì SQL Server Giám sát hoạt động?

SQL Server Activity Monitor là một công cụ chẩn đoán tích hợp sẵn trong hệ thống. SQL Server Studio quản lý hiển thị thông tin về SQL Server các quy trình và ảnh hưởng của chúng đến hiệu suất máy chủ. Nó cho phép bạn theo dõi SQL Server các quy trình, giám sát thời gian chờ tài nguyên, phân tích các truy vấn tốn kém và quan sát các mẫu I/O—tất cả từ một giao diện duy nhất.

SQL Server Hoạt động giám sát

1.2 Tại sao sử dụng SQL Server Giám sát hoạt động?

Activity Monitor đóng vai trò là tuyến phòng thủ đầu tiên của bạn khi khắc phục sự cố hiệu suất. Nó cung cấp khả năng hiển thị tức thì những gì đang xảy ra trên SQL Server mà không cần truy vấn T-SQL phức tạp hoặc công cụ của bên thứ ba.

Công cụ này rất hữu ích trong việc giúp bạn nhanh chóng xác định các sự cố thường gặp như chặn phiên, truy vấn ngốn CPU, thực thi truy vấn quá mức và tắc nghẽn I/O. Khi người dùng báo cáo ứng dụng chậm hoặc không phản hồi, Activity Monitor sẽ giúp bạn xác định xem máy chủ cơ sở dữ liệu có phải là nguyên nhân hay không.

Đối với những người quản trị cơ sở dữ liệu không làm việc với SQL Server Hàng ngày, Activity Monitor cung cấp một điểm khởi đầu dễ tiếp cận để hiểu hoạt động của máy chủ. Ngay cả các DBA giàu kinh nghiệm cũng sử dụng nó làm điểm xuất phát cho các cuộc điều tra hiệu năng.

1.3 Activity Monitor so với các công cụ giám sát khác

Mặc dù Activity Monitor rất hữu ích, nhưng điều quan trọng là phải hiểu cách nó so sánh với các tùy chọn giám sát khác:

Giám sát hoạt động so với sp_WhoIsActive: Activity Monitor cung cấp giao diện đồ họa với nhiều khung, trong khi sp_WhoIsActive là một quy trình được lưu trữ toàn diện, cung cấp thông tin chi tiết hơn trong một tập kết quả duy nhất. sp_WhoIsActive hiển thị các loại chờ cụ thể mà Activity Monitor nhóm lại với nhau và cung cấp thông tin chặn chi tiết hơn.

Trình giám sát hoạt động so với sp_who2: Lệnh sp_who2 truyền thống hiển thị thông tin phiên cơ bản, nhưng Activity Monitor còn tiến xa hơn bằng cách hiển thị số liệu thống kê chờ, truy vấn tốn kém và số liệu I/O theo định dạng trực quan, có tổ chức.

Công cụ theo dõi hoạt động so với công cụ của bên thứ ba: Các giải pháp giám sát thương mại như SolarWinds Database Performance Analyzer cung cấp khả năng theo dõi lịch sử, cảnh báo và phân tích nâng cao mà Activity Monitor không có. Tuy nhiên, Activity Monitor không yêu cầu thêm chi phí hoặc cài đặt.

1.4 Lợi ích chính cho Quản trị viên cơ sở dữ liệu

Activity Monitor cung cấp một số lợi thế khiến nó trở thành một công cụ DBA thiết yếu:

  • Không tốn phí: Như một tích hợp sẵn SQL Server Tính năng Management Studio không yêu cầu phí cấp phép hoặc nỗ lực triển khai.
  • Giám sát thời gian thực: Xem hoạt động hiện tại của máy chủ khi nó diễn ra, với khoảng thời gian làm mới có thể cấu hình từ 1 giây đến 1 giờ.
  • Hành động tích hợp: Nhấp chuột phải vào các tiến trình để kết thúc phiên, xem chi tiết truy vấn hoặc khởi chạy SQL Server Theo dõi hồ sơ—tất cả đều từ bên trong công cụ.
  • Nhiều góc nhìn: Xem tình trạng máy chủ từ nhiều góc độ khác nhau thông qua năm khung chuyên biệt, mỗi khung tập trung vào các khía cạnh cụ thể của hiệu suất.
  • Khắc phục sự cố nhanh: Xác định các sự cố hiệu năng phổ biến nhất chỉ trong vài phút, giúp rút ngắn thời gian giải quyết vấn đề.
  • Rào cản gia nhập thấp: Không cần kiến ​​thức nâng cao để bắt đầu sử dụng công cụ một cách hiệu quả, mặc dù có kiến ​​thức sâu hơn SQL Server chuyên môn giúp ích cho việc giải thích.

2. Bắt đầu sử dụng Trình giám sát hoạt động

Trước khi bạn có thể tận dụng Activity Monitor một cách hiệu quả, bạn cần hiểu các điều kiện tiên quyết, quyền cần thiết và nhiều phương pháp khác nhau để khởi chạy công cụ.

2.1 Điều kiện tiên quyết và yêu cầu hệ thống

sử dụng SQL Server Giám sát hoạt động, bạn cần SQL Server Management Studio (SSMS) được cài đặt trên máy cục bộ hoặc máy chủ nhảy của bạn. Công cụ Giám sát Hoạt động đã được thiết kế lại đáng kể trong SQL Server 2008, vì vậy thông tin trong hướng dẫn này áp dụng cho SQL Server 2008 và các phiên bản mới hơn.

Bạn phải có kết nối mạng tới SQL Server Phiên bản bạn muốn giám sát. Đối với cơ sở dữ liệu được lưu trữ trên đám mây, bạn thường cần kết nối VPN hoặc các quy tắc tường lửa được cấu hình đúng cách để truy cập vào phiên bản đó.

Activity Monitor hoạt động với tất cả các phiên bản của SQL Server, bao gồm Express, Standard và Enterprise. Bản thân công cụ này chạy trên máy khách của bạn trong SSMS, do đó tài nguyên của máy chủ chỉ bị ảnh hưởng bởi các truy vấn giám sát mà nó thực thi.

2.2 Quyền bắt buộc

Quyền phù hợp là điều cần thiết để Activity Monitor hoạt động chính xác. Nếu không có quyền phù hợp, bạn có thể thấy màn hình trống hoặc gặp lỗi truy cập bị từ chối.

2.2.1 Quyền XEM TRẠNG THÁI MÁY CHỦ

XEM TRẠNG THÁI MÁY CHỦ Quyền là yêu cầu chính để sử dụng Activity Monitor. Quyền cấp máy chủ này cho phép bạn xem tất cả các quy trình đang hoạt động và các số liệu liên quan.

Để cấp quyền này, quản trị viên máy chủ có thể thực hiện:

GRANT VIEW SERVER STATE TO [YourLoginName];

Nếu không có VIEW SERVER STATE, Activity Monitor có thể mở nhưng không hiển thị dữ liệu trong bất kỳ ngăn nào của nó.

2.2.2 Quyền cấp cơ sở dữ liệu

Để xem thông tin trong ngăn Nhập/Xuất Tệp Dữ liệu, bạn cần có thêm quyền. Cụ thể, bạn phải có một trong các tổ hợp quyền sau:

  • TẠO NÊN CƠ SỞ DỮ LIỆU sự cho phép, hoặc
  • THAY ĐỔI BẤT KỲ CƠ SỞ DỮ LIỆU NÀO sự cho phép, hoặc
  • XEM BẤT KỲ ĐỊNH NGHĨA NÀO cho phép

Những quyền này phải được kết hợp với XEM TRẠNG THÁI MÁY CHỦ để có đầy đủ chức năng của Activity Monitor.

2.2.3 Xử lý sự cố quyền

Nếu Trình quản lý hoạt động mở nhưng không hiển thị dữ liệu, nguyên nhân phổ biến nhất là do quyền truy cập. Hãy kiểm tra xem tài khoản đăng nhập của bạn có được cấp quyền XEM TRẠNG THÁI MÁY CHỦ ở cấp độ máy chủ hay không. Bạn có thể xác minh quyền của mình bằng cách chạy lệnh sau:

SELECT * FROM fn_my_permissions(NULL, 'SERVER');

Tìm 'VIEW SERVER STATE' trong cột permission_name. Nếu thiếu, hãy liên hệ với quản trị viên cơ sở dữ liệu của bạn để được cấp quyền.

2.3 Cách mở Activity Monitor trong SSMS

SQL Server Management Studio cung cấp bốn phương pháp khác nhau để khởi chạy Activity Monitor, mang lại cho bạn sự linh hoạt dựa trên tùy chọn quy trình làm việc của bạn.

2.3.1 Phương pháp 1: Từ Thanh công cụ

Cách nhanh nhất để mở Activity Monitor là sử dụng biểu tượng trên thanh công cụ:

  1. Kết nối với của bạn SQL Server ví dụ trong SQL Server Phòng thu quản lý.
  2. Xác định biểu tượng Activity Monitor trên thanh công cụ chuẩn (biểu tượng này trông giống biểu đồ thanh có nút phát màu xanh lá cây).
  3. Nhấp vào biểu tượng để khởi chạy Activity Monitor.

Bắt đầu SQL Server Giám sát hoạt động từ biểu tượng thanh công cụ trong SQL Server Phòng thu quản lý.

Phương pháp này nhanh nhất khi bạn đang làm việc trong SSMS và cần kiểm tra nhanh hoạt động của máy chủ.

2.3.2 Phương pháp 2: Từ Object Explorer

Bạn cũng có thể khởi chạy Activity Monitor trực tiếp từ Object Explorer:

  1. Trong Object Explorer, hãy xác định vị trí SQL Server trường hợp bạn muốn theo dõi.
  2. Nhấp chuột phải vào tên phiên bản.
  3. Chọn Hoạt động giám sát từ trình đơn ngữ cảnh.

Bắt đầu SQL Server Giám sát hoạt động bằng cách nhấp chuột phải vào phiên bản trong Object Explorer trong SQL Server Phòng thu quản lý.

Phương pháp này hữu ích khi kết nối với nhiều máy chủ vì nó đảm bảo bạn đang theo dõi đúng phiên bản.

2.3.3 Phương pháp 3: Sử dụng phím tắt

Đối với người dùng tập trung vào bàn phím, SQL Server Management Studio cung cấp một phím tắt chuyên dụng:

  1. Đảm bảo SSMS là cửa sổ đang hoạt động và bạn đang kết nối với một phiên bản.
  2. Ấn Bản Ctrl + Khác + A.
  3. Activity Monitor sẽ mở ra cho phiên bản hiện đang được chọn trong Object Explorer.

Lưu ý rằng Activity Monitor sẽ kết nối với bất kỳ phiên bản máy chủ nào bạn đã chọn trong Object Explorer, vì vậy hãy đảm bảo bạn đã chọn đúng phiên bản trước khi sử dụng phím tắt này.

2.3.4 Phương pháp 4: Từ Menu Tùy chọn (Cấu hình Khởi động)

Nếu bạn thường xuyên sử dụng Activity Monitor, bạn có thể cấu hình SSMS để tự động khởi chạy nó mỗi khi bạn bắt đầu ứng dụng:

  1. In SQL Server Studio quản lý, điều hướng đến CÔNG CỤ -> Tùy chọn.
  2. Trong hộp thoại Tùy chọn, mở rộng Môi trường, Và sau đó chọn Startup.
  3. Từ Lúc khởi động danh sách thả xuống, chọn Mở Object Explorer và Activity Monitor.
  4. Chọn OK.

Thiết lập cấu hình khởi động cho SQL Server Giám sát hoạt động trong SQL Server Phòng thu quản lý.

Lần tới khi bạn khởi chạy SSMS và kết nối với máy chủ, Activity Monitor sẽ tự động mở cùng với Object Explorer.

3. Hiểu về các ngăn Giám sát hoạt động

Activity Monitor sắp xếp thông tin thành năm khung có thể mở rộng, mỗi khung cung cấp một góc nhìn khác nhau về hoạt động của máy chủ. Việc hiểu rõ nội dung hiển thị của từng khung là rất quan trọng để khắc phục sự cố hiệu quả.

3.1 Bảng tổng quan

Bảng Tổng quan hiển thị bốn biểu đồ thời gian thực cung cấp cho bạn cái nhìn tổng quan nhanh về tình trạng sức khỏe của bạn SQL Server Ví dụ. Các biểu đồ này cập nhật theo khoảng thời gian có thể cấu hình và giúp bạn xác định các mẫu bất thường chỉ trong nháy mắt.

Bảng Tổng quan trong SQL Server Giám sát hoạt động.

3.1.1 % Thời gian xử lý

Biểu đồ này hiển thị phần trăm thời gian bộ xử lý dành cho việc thực thi các luồng không nhàn rỗi cho SQL Server trường hợp trên tất cả các CPU. Giá trị biểu thị SQL Servermức sử dụng bộ xử lý, không phải mức sử dụng CPU của toàn bộ máy chủ.

Nếu bạn liên tục thấy thời gian sử dụng bộ xử lý ở mức 100% hoặc gần 100%, máy chủ của bạn đang bị giới hạn bởi CPU. Điều này có thể cho thấy các truy vấn không hiệu quả, thiếu chỉ mục hoặc dung lượng phần cứng không đủ. Sử dụng ngăn Truy vấn tốn kém gần đây để xác định truy vấn nào đang tiêu thụ nhiều CPU nhất.

3.1.2 Nhiệm vụ đang chờ

Chỉ số này hiển thị số lượng tác vụ đang chờ giải phóng tài nguyên trước khi có thể tiếp tục. Các tác vụ có thể chờ CPU, I/O, bộ nhớ hoặc khóa.

Số lượng tác vụ chờ liên tục cao cho thấy tình trạng tranh chấp tài nguyên. Ngăn Chờ Tài nguyên cung cấp thêm chi tiết về loại tài nguyên nào đang gây ra tình trạng chờ.

3.1.3 I/O cơ sở dữ liệu (MB/giây)

Biểu đồ này hiển thị tốc độ truyền dữ liệu giữa bộ nhớ và đĩa. Nó kết hợp cả tốc độ đọc và ghi, được đo bằng megabyte mỗi giây.

Sự gia tăng đột biến trong I/O cơ sở dữ liệu có thể chỉ ra các truy vấn thực hiện quét bảng lớn, hoạt động ghi nhật ký quá mức hoặc hoạt động kiểm tra điểm. Ngăn I/O Tệp Dữ liệu phân tích hoạt động I/O theo cơ sở dữ liệu và tệp.

3.1.4 Yêu cầu hàng loạt/giây

Chỉ số này biểu thị số lượng SQL Server số lô mà phiên bản nhận được mỗi giây. Một lô có thể là một câu lệnh đơn lẻ hoặc nhiều câu lệnh được gửi cùng nhau.

Giá trị này cung cấp cho bạn thông tin về hoạt động tổng thể của máy chủ. Việc giảm đột ngột số lượng yêu cầu hàng loạt trong giờ làm việc thông thường có thể báo hiệu sự cố kết nối ứng dụng hoặc các vấn đề liên quan đến người dùng.

3.1.5 Thiết lập khoảng thời gian làm mới

Bạn có thể tùy chỉnh tần suất cập nhật dữ liệu của Activity Monitor:

  1. Nhấp chuột phải vào bất kỳ đâu trong ngăn Tổng quan.
  2. Chọn Làm mới khoảng thời gian.
  3. Chọn khoảng thời gian từ các giá trị được xác định trước: 1 giây, 5 giây, 10 giây (mặc định), 30 giây, 1 phút hoặc 1 giờ.

Đặt khoảng thời gian làm mới trong SQL Server Bảng tổng quan của Activity Monitor.

Việc đặt khoảng thời gian làm mới dưới 10 giây sẽ làm tăng chi phí giám sát trên máy chủ của bạn. Đối với các hệ thống sản xuất chịu tải nặng, hãy cân nhắc sử dụng khoảng thời gian 30 giây hoặc dài hơn để giảm thiểu tác động.

3.2 Ngăn quy trình

Ngăn Quy trình hiển thị thông tin về các phiên đang chạy trên máy tính của bạn SQL Server Ví dụ. Bảng này rất cần thiết để xác định ai đang làm gì và phát hiện các vấn đề chặn.

Ngăn Quy trình trong SQL Server Giám sát hoạt động.

3.2.1 Hiểu thông tin quy trình

Mỗi hàng trong ngăn Quy trình đại diện cho một phiên hoạt động trên máy chủ. Ngăn này hiển thị các phiên từ tất cả cơ sở dữ liệu và tất cả người dùng, cung cấp cho bạn cái nhìn toàn diện về hoạt động của máy chủ.

Thông tin hiển thị bao gồm tên đăng nhập, tên ứng dụng, tên máy chủ, cơ sở dữ liệu đang được truy cập và lệnh hiện tại. Điều này giúp bạn liên kết hoạt động của cơ sở dữ liệu với người dùng hoặc ứng dụng cụ thể.

3.2.2 Giải thích các cột chính

Hiểu các cột chính giúp bạn diễn giải thông tin quy trình một cách hiệu quả:

  • ID phiên: Mã định danh duy nhất cho mỗi kết nối. Các quy trình hệ thống sử dụng ID phiên âm.
  • Quy trình người dùng: Chỉ ra đây là phiên người dùng (Có) hay quy trình hệ thống (Không).
  • Đăng nhập: SQL Server đăng nhập hoặc tài khoản Windows được liên kết với phiên.
  • Cơ sở dữ liệu: Bối cảnh cơ sở dữ liệu hiện tại cho phiên.
  • Trạng thái nhiệm vụ: Hiển thị những gì phiên đang thực hiện (ĐANG CHẠY, TẠM DỪNG, NGỦ, v.v.).
  • command: Loại lệnh đang được thực thi (SELECT, INSERT, UPDATE, v.v.).
  • Ứng dụng: Tên của ứng dụng đã tạo kết nối.
  • Thời gian chờ đợi: Phiên đã chờ tài nguyên trong bao lâu (tính bằng mili giây).
  • Kiểu chờ: Loại tài nguyên cụ thể mà phiên đang chờ.
  • Thời gian CPU: Tổng thời gian CPU được phiên này sử dụng kể từ khi kết nối.
  • Sử dụng bộ nhớ: Lượng bộ nhớ (tính bằng KB) hiện được phân bổ cho phiên.

3.2.3 Quá trình lọc và sắp xếp

Ngăn Quy trình bao gồm các khả năng lọc mạnh mẽ giúp bạn tập trung vào các phiên có liên quan:

  1. Nhấp vào mũi tên thả xuống ở bất kỳ tiêu đề cột nào.
  2. Bộ lọc hiển thị các giá trị có sẵn cho cột đó, bao gồm Tất cả, Chữ trốngKhông trống.
  3. Chọn các giá trị cụ thể để lọc hiển thị chỉ những phiên đó.

Lọc các quy trình trong SQL Server Giám sát hoạt động.

Ví dụ, bạn có thể lọc Trạng thái nhiệm vụ để chỉ hiển thị các phiên ĐANG CHẠY hoặc lọc Cơ sở dữ liệu để xem hoạt động trên một cơ sở dữ liệu cụ thể.

Bạn cũng có thể sắp xếp theo bất kỳ cột nào bằng cách nhấp vào tiêu đề của cột đó. Nhấp một lần để sắp xếp tăng dần, nhấp hai lần để sắp xếp giảm dần.

Sắp xếp các quy trình trong SQL Server Giám sát hoạt động.

3.2.4 Xác định phiên bị chặn và phiên bị chặn

Ngăn Quy trình giúp bạn xác định các tình huống chặn khi một phiên ngăn cản các phiên khác tiếp tục:

  • Bị chặn bởi: Hiển thị ID Phiên của phiên đang chặn phiên này. Nếu cột này chứa giá trị, phiên đang chờ khóa do phiên khác nắm giữ.
  • Head Blocker: Hiển thị '1' nếu phiên này đang chặn các phiên khác nhưng bản thân phiên này không bị chặn. Đây là nguyên nhân gốc rễ của chuỗi chặn.

Hiển thị các tiến trình chặn và bị chặn trong SQL Server Giám sát hoạt động.

Để điều tra vấn đề chặn, trước tiên hãy xác định trình chặn chính (phiên được đánh dấu bằng '1' trong cột Trình chặn chính), sau đó kiểm tra chức năng của trình chặn và quyết định xem có nên để trình chặn hoàn tất hay chấm dứt phiên hay không.

3.2.5 Hành động xử lý (Giết, Chi tiết, Theo dõi)

Activity Monitor cho phép bạn thực hiện các hành động trên từng phiên riêng lẻ:

  1. Nhấp chuột phải vào bất kỳ phiên nào trong ngăn Quy trình.
  2. Bạn sẽ thấy một số tùy chọn:
    • Chi tiết: Hiển thị lệnh cuối cùng được thực hiện bởi phiên này.
    • Quá trình tiêu diệt: Kết thúc phiên làm việc (sử dụng thận trọng).
    • Theo dõi quá trình trong SQL Server Hồ sơ: Ra mắt SQL Server Profiler và tự động lọc để chỉ hiển thị hoạt động từ phiên này.

Thực hiện các hành động trên các quy trình trong SQL Server Giám sát hoạt động.

Tùy chọn Chi tiết hiển thị cho bạn văn bản lệnh, nhưng lưu ý rằng đây là cuối cùng Lệnh đã được thực thi—lệnh đó có thể vẫn chưa chạy. Tùy chọn Theo dõi đặc biệt hữu ích khi bạn cần xem toàn bộ chuỗi lệnh mà một phiên đang thực thi.

3.3 Ngăn chờ tài nguyên

Ngăn "Resource Waits" tóm tắt số liệu thống kê về thời gian chờ, cho thấy loại tài nguyên nào mà các phiên đang chờ đợi thường xuyên nhất. Thông tin này rất quan trọng để chẩn đoán các điểm nghẽn hiệu suất.

Ngăn chờ tài nguyên trong SQL Server Giám sát hoạt động.

3.3.1 Hiểu về thống kê chờ

Thời Gian SQL Server Nếu không thể cấp ngay yêu cầu tài nguyên (chẳng hạn như khóa, thời gian CPU hoặc bộ nhớ), tác vụ yêu cầu sẽ chuyển sang trạng thái chờ. Thống kê chờ theo dõi các khoảng thời gian chờ này và giúp bạn hiểu máy chủ đang dành thời gian chờ đợi thay vì làm việc ở đâu.

Ngăn Chờ Tài nguyên thu thập dữ liệu từ các chế độ xem quản lý động hệ thống như sys.dm_os_wait_stats và sys.dm_exec_requests. Tại mỗi khoảng thời gian làm mới, ngăn này sẽ tính toán sự khác biệt giữa ảnh chụp nhanh hiện tại và ảnh chụp nhanh trước đó, hiển thị tốc độ tích lũy cho từng loại chờ.

3.3.2 Danh mục chờ

Activity Monitor nhóm hàng trăm loại chờ riêng lẻ thành các danh mục rộng hơn để đơn giản hóa việc giải thích:

  • CPU: Các tác vụ đang chờ thời gian CPU để có thể xử lý.
  • Chốt đệm: Chờ các đối tượng đồng bộ hóa ngắn hạn bảo vệ quyền truy cập vào các trang dữ liệu trong bộ nhớ. Danh mục này bao gồm các lệnh chờ chốt trang (PAGELATCH_*).
  • Khóa: Thời gian chờ do các phiên giữ khóa mà các phiên khác cần.
  • Bộ nhớ: Chờ cấp phát bộ nhớ cần thiết cho các hoạt động như sắp xếp và băm.
  • Mạng I/O: Chờ gửi dữ liệu đến hoặc nhận dữ liệu từ máy khách.
  • SQL CLR: Chờ liên quan đến việc thực thi Common Language Runtime.

Mặc dù việc nhóm này giúp đơn giản hóa chế độ xem, nhưng nó cũng làm lu mờ các chi tiết quan trọng. Ví dụ: "Buffer Latch" có thể nhóm các lệnh chờ PAGELATCH_SH, PAGELATCH_UP và PAGELATCH_EX lại với nhau, mang lại những tác động khác nhau đến hiệu suất.

3.3.3 Giải thích thời gian chờ và nhiệm vụ chờ

Ngăn Chờ tài nguyên hiển thị hai số liệu chính cho mỗi danh mục chờ:

  • Thời gian chờ tích lũy (ms): Tổng số mili giây tích lũy trong khoảng thời gian làm mới hiện tại cho danh mục chờ này.
  • Nhiệm vụ đang chờ: Số lượng tác vụ hiện đang chờ tài nguyên trong danh mục này.

Giá trị thời gian chờ đặc biệt thú vị. Nếu bạn có khoảng thời gian làm mới 10 giây và thấy thời gian chờ 20,000ms cho một danh mục, điều đó cho thấy có nhiều lần chờ đồng thời (20,000ms / 10,000ms = trung bình của 2 lần chờ đồng thời trong khoảng thời gian đó).

3.3.4 Xác định các điểm nghẽn hiệu suất

Sử dụng ngăn Thời gian chờ tài nguyên để xác định xem máy chủ của bạn đang dành nhiều thời gian chờ đợi nhất ở đâu:

  1. Mở rộng ngăn Chờ tài nguyên.
  2. Quan sát các hạng mục chờ có thời gian chờ đợi cao nhất.
  3. Sắp xếp theo Thời gian chờ tích lũy để xem nguồn lực nào đang bị hạn chế nhất.

Sắp xếp theo Thời gian chờ tích lũy trong Ngăn chờ tài nguyên để tìm ra điểm nghẽn hiệu suất.

Chờ đợi Khóa Bộ đệm Cao thường chỉ ra sự tranh chấp các trang dữ liệu trong bộ nhớ, điều này có thể gợi ý tình trạng tắc nghẽn I/O hoặc tranh chấp tempdb. Chờ đợi Khóa Cao chỉ ra các vấn đề chặn. Chờ đợi Bộ nhớ Cao cho thấy không đủ bộ nhớ được cấp cho các thao tác truy vấn.

3.4 Ngăn nhập/xuất tệp dữ liệu

Ngăn I/O Tệp dữ liệu hiển thị hoạt động đĩa cho từng tệp cơ sở dữ liệu trên máy chủ của bạn, giúp bạn xác định các điểm nghẽn I/O và hiểu các mẫu sử dụng đĩa.

Ngăn I/O Tệp Dữ liệu trong SQL Server Giám sát hoạt động.

3.4.1 Hiểu về số liệu I/O

Ngăn I/O Tệp dữ liệu hiển thị một số số liệu cho mỗi tệp cơ sở dữ liệu:

  • Cơ sở dữ liệu: Tên của cơ sở dữ liệu.
  • Loại tệp: Có thể là Dữ liệu (bao gồm bảng và chỉ mục) hoặc Nhật ký (nhật ký giao dịch).
  • Tên logic: Tên tệp logic như được định nghĩa trong SQL Server.
  • MB/giây đọc: Tốc độ dữ liệu được đọc từ tệp này.
  • MB/giây Đã ghi: Tốc độ dữ liệu được ghi vào tệp này.
  • Thời gian đáp ứng (mili giây): Thời gian phản hồi trung bình cho các hoạt động I/O trên tệp này.

Các số liệu này được làm mới theo cùng khoảng thời gian như ngăn Tổng quan, giúp bạn có thể theo dõi hoạt động của đĩa theo thời gian thực.

3.4.2 Xác định các nút thắt I/O

Hãy chú ý đến các mẫu sau đây để biết vấn đề về hiệu suất I/O:

  • Thời gian phản hồi cao: Thời gian phản hồi liên tục trên 15-20ms cho thấy hệ thống đĩa chậm. Thời gian phản hồi trên 50ms cho thấy tình trạng tắc nghẽn I/O nghiêm trọng.
  • Tải không cân bằng: Nếu một tệp dữ liệu có tốc độ I/O cao hơn đáng kể so với các tệp khác trong cùng cơ sở dữ liệu, bạn có thể hưởng lợi từ việc thêm các tệp bổ sung để phân bổ tải.
  • Hoạt động Tempdb quá mức: Tốc độ I/O cao trên các tệp tempdb thường chỉ ra các truy vấn tạo ra các tập kết quả trung gian lớn hoặc sử dụng các kế hoạch thực thi không hiệu quả.

3.4.3 Phân tích tệp cơ sở dữ liệu

Sử dụng ngăn I/O Tệp dữ liệu để hiểu cách cơ sở dữ liệu của bạn sử dụng tài nguyên đĩa:

  1. Mở rộng ngăn I/O Tệp dữ liệu.
  2. Sắp xếp theo Đọc MB/giây or MB/giây được ghi để xác định các tập tin hoạt động tích cực nhất.
  3. Lưu ý bất kỳ tệp nào có hoạt động liên tục ở mức cao hoặc thời gian phản hồi lâu.
  4. Tham chiếu chéo thông tin này với ngăn Truy vấn tốn kém gần đây để xác định truy vấn nào đang thúc đẩy tải I/O.

Sắp xếp theo trạng thái Đọc hoặc Ghi để xác định các tệp hoạt động tích cực nhất trong ngăn Nhập/Xuất Tệp Dữ liệu.

3.5 Ngăn Truy vấn Đắt tiền Gần đây

Ngăn "Các truy vấn tốn kém gần đây" thường là ngăn hữu ích nhất để khắc phục sự cố hiệu suất ứng dụng. Nó hiển thị các truy vấn đang tiêu tốn nhiều tài nguyên máy chủ, giúp bạn xác định các cơ hội tối ưu hóa.

Ngăn Truy vấn Đắt tiền Gần đây trong SQL Server Giám sát hoạt động.

3.5.1 Hiểu về số liệu truy vấn

Activity Monitor hiển thị một số số liệu cho mỗi truy vấn tốn kém:

  • Số lần thực hiện/phút: Có bao nhiêu lần truy vấn được thực hiện trong phút cuối cùng.
  • CPU (ms/giây): Thời gian CPU tiêu thụ cho truy vấn này mỗi giây.
  • Đọc vật lý/giây: Số lần đọc đĩa vật lý mỗi giây cho truy vấn này.
  • Ghi logic/giây: Số lần ghi logic (vào bộ đệm) mỗi giây.
  • Đọc logic/giây: Số lần đọc logic (từ bộ đệm) mỗi giây.
  • Thời lượng trung bình (ms): Thời gian thực hiện trung bình cho truy vấn này.
  • Số lượng kế hoạch: Số lượng kế hoạch thực thi trong bộ nhớ đệm cho truy vấn này.

Những số liệu này giúp bạn hiểu không chỉ những truy vấn nào tốn kém mà còn tại sao chúng đắt và chạy thường xuyên như thế nào.

3.5.2 Tùy chọn sắp xếp

Bạn có thể sắp xếp ngăn Truy vấn tốn kém gần đây theo các số liệu khác nhau để tìm các loại vấn đề khác nhau:

  1. Nhấp vào bất kỳ tiêu đề cột nào để sắp xếp theo số liệu đó.
  2. Các chiến lược phân loại phổ biến bao gồm:
    • Sắp xếp theo CPU: Tìm các truy vấn tiêu tốn nhiều thời gian xử lý nhất.
    • Sắp xếp theo Số lần thực hiện/phút: Xác định các truy vấn chạy quá thường xuyên.
    • Sắp xếp theo Đọc vật lý: Tìm các truy vấn gây ra nhiều thao tác đọc/ghi ổ đĩa nhất.
    • Sắp xếp theo Thời lượng trung bình: Xác định các truy vấn chạy lâu.

Khi khắc phục sự cố hiệu suất, hãy thử sắp xếp theo nhiều cột để có được góc nhìn khác nhau. Một truy vấn có mức sử dụng CPU vừa phải nhưng số lần thực thi mỗi phút cực cao có thể là vấn đề thực sự của bạn.

3.5.3 Xem văn bản truy vấn

Để xem câu lệnh SQL thực tế đằng sau một truy vấn tốn kém:

  1. Nhấp chuột phải vào hàng truy vấn trong ngăn Truy vấn tốn kém gần đây.
  2. Chọn Chỉnh sửa văn bản truy vấn.
    Chỉnh sửa văn bản truy vấn trong ngăn Truy vấn tốn kém gần đây.
  3. Một cửa sổ truy vấn mới sẽ mở ra và hiển thị toàn bộ câu lệnh SQL.
    Cửa sổ truy vấn mới sau khi chọn "Chỉnh sửa văn bản truy vấn" trong Ngăn truy vấn tốn kém gần đây.

Điều này cho phép bạn kiểm tra logic truy vấn và xác định các cơ hội tối ưu hóa tiềm năng. Sau đó, bạn có thể sao chép văn bản truy vấn để kiểm tra các phiên bản đã sửa đổi.

3.5.4 Phân tích kế hoạch thực hiện

Kế hoạch thực hiện cho bạn thấy cách SQL Server thực hiện truy vấn, chỉ ra những điểm kém hiệu quả như thiếu chỉ mục hoặc loại liên kết không phù hợp:

  1. Nhấp chuột phải vào hàng truy vấn trong ngăn Truy vấn tốn kém gần đây.
  2. Chọn Hiển thị kế hoạch thực hiện.
    Hiển thị Kế hoạch thực hiện trong Ngăn Truy vấn tốn kém gần đây.
  3. SQL Server Management Studio hiển thị biểu đồ mô tả cách thực hiện truy vấn.
    Kế hoạch thực hiện truy vấn trong một cửa sổ mới.

Hãy tìm kiếm các thao tác tiêu tốn tỷ lệ lớn chi phí truy vấn, cảnh báo về số liệu thống kê hoặc chỉ mục bị thiếu, và các thao tác quét bảng không mong muốn. Những điều này thường cho thấy nên tập trung vào việc tối ưu hóa ở đâu.

3.5.5 Xác định các truy vấn có vấn đề

Hãy chú ý đến các mẫu sau trong ngăn Truy vấn tốn kém gần đây:

  • Thực hiện quá mức: Một truy vấn được thực hiện hàng nghìn lần mỗi phút có thể chỉ ra vấn đề truy vấn N+1 trong đó mã ứng dụng gọi cơ sở dữ liệu bên trong một vòng lặp.
  • Đọc vật lý cao: Các truy vấn có tốc độ đọc vật lý cao thường xuyên truy cập vào đĩa, cho thấy thiếu chỉ mục hoặc các truy vấn được viết kém.
  • CPU cao với thời lượng thấp: Nhiều truy vấn nhanh tiêu tốn nhiều CPU có thể ảnh hưởng đến hiệu suất máy chủ nhiều như một vài truy vấn chậm.
  • Số lượng nhiều kế hoạch: Các truy vấn có nhiều kế hoạch thực thi có thể gặp phải vấn đề về đánh hơi tham số hoặc các truy vấn không có tham số gây ra tình trạng bộ nhớ đệm kế hoạch bị đầy.

4. Sử dụng Activity Monitor để khắc phục sự cố hiệu suất

Activity Monitor thực sự phát huy tác dụng khi bạn sử dụng nó một cách có hệ thống để chẩn đoán và giải quyết các vấn đề về hiệu suất. Phần này đề cập đến các tình huống khắc phục sự cố thường gặp và cách xử lý chúng.

4.1 Chẩn đoán việc thực thi truy vấn quá mức

Một trong những vấn đề hiệu năng phổ biến nhất là các truy vấn được thực thi thường xuyên hơn mức cần thiết, thường là do các vấn đề về thiết kế ứng dụng.

4.1.1 Xác định các truy vấn lặp lại

Để phát hiện các truy vấn được thực hiện quá thường xuyên:

  1. Mở Activity Monitor và mở rộng Các truy vấn tốn kém gần đây cửa sổ.
  2. Sắp xếp theo Số lần thực hiện/phút (số lần hành quyết mỗi phút).
  3. Tìm kiếm các truy vấn ở đầu có số lần thực hiện có vẻ cao một cách vô lý.
  4. Nhấp chuột phải vào truy vấn nghi ngờ và chọn Chỉnh sửa văn bản truy vấn để kiểm tra câu lệnh SQL.

Ví dụ, nếu bạn thấy một câu lệnh SELECT đơn giản được thực thi 37,000 lần mỗi phút, hãy đặt câu hỏi liệu ứng dụng có thực sự cần gọi truy vấn này thường xuyên đến vậy hay không. Hầu hết các truy vấn được thực thi nhiều hơn vài nghìn lần mỗi phút đều cần được điều tra.

4.1.2 Phân tích nguyên nhân gốc rễ

Việc thực thi truy vấn quá mức thường xuất phát từ những vấn đề sau:

  • Vấn đề truy vấn N+1: Mã ứng dụng lấy danh sách các mục, sau đó thực hiện một truy vấn riêng cho từng mục để lấy dữ liệu liên quan. Thao tác này tạo ra N truy vấn bổ sung, trong đó N là số mục.
  • Thiếu bộ nhớ đệm: Ứng dụng truy vấn cơ sở dữ liệu để lấy dữ liệu ít thay đổi thay vì lưu trữ chúng trong bộ nhớ ứng dụng.
  • Vòng thăm dò: Mã liên tục truy vấn cơ sở dữ liệu để kiểm tra các thay đổi trạng thái thay vì sử dụng thông báo thay đổi hoặc hàng đợi tin nhắn.
  • Hiệu quả ORM kém: Entity Framework và các công cụ tương tự đôi khi tạo ra các mẫu truy vấn không hiệu quả khi các nhà phát triển không hiểu cách mã của họ chuyển đổi sang SQL.

Để xác định nguyên nhân gốc rễ, hãy truy vấn ngược lại mã ứng dụng. Lưu ý Ứng dụngĐăng nhập cột trong ngăn Quy trình khi truy vấn được thực thi. Bạn cũng có thể nhấp chuột phải vào quy trình và chọn Theo dõi quá trình trong SQL Server Profiler để xem mẫu gọi.

4.1.3 Giải pháp và Thực hành Tốt nhất

Sau khi xác định được các lệnh thực thi truy vấn quá mức, hãy cân nhắc các giải pháp sau:

  • Xử lý hàng loạt: Sửa đổi mã ứng dụng để truy xuất nhiều mục trong một truy vấn duy nhất bằng cách sử dụng lệnh nối hoặc mệnh đề IN thay vì thực hiện các truy vấn riêng biệt trong một vòng lặp.
  • Lưu trữ kết quả: Bộ nhớ đệm được truy cập thường xuyên, dữ liệu ít thay đổi trong bộ nhớ ứng dụng với thời gian hết hạn phù hợp.
  • Đang tải háo hức: Cấu hình ORM để sử dụng các chiến lược tải nhanh giúp truy xuất dữ liệu liên quan trong ít truy vấn hơn và hiệu quả hơn.
  • Tham số hóa truy vấn: Đảm bảo các truy vấn sử dụng tham số thay vì nối các giá trị, giúp cải thiện khả năng tái sử dụng bộ đệm kế hoạch và giảm chi phí biên dịch.

4.2 Điều tra các vấn đề chặn

Việc chặn xảy ra khi một phiên giữ khóa khiến các phiên khác không thể tiếp tục. Điều này biểu hiện bằng thời gian phản hồi ứng dụng chậm và gây khó chịu cho người dùng.

4.2.1 Xác định chuỗi chặn

Để phát hiện và phân tích tình trạng chặn:

  1. Mở Activity Monitor và mở rộng Quy trình cửa sổ.
  2. Tìm kiếm các phiên có giá trị trong Bị chặn bởi cột—những cột này đang chờ khóa do các phiên khác nắm giữ.
  3. Tìm phiên có '1' trong Head Blocker cột—đây là nguyên nhân gốc rễ của các chuỗi chặn.
  4. Lưu ý ID phiên của người chặn đầu.
  5. Nhấp chuột phải vào phiên chặn đầu và chọn Chi Tiết để xem lệnh nào đang được thực thi.

Hiểu được chuỗi chặn là rất quan trọng. Trình chặn chính là phiên bạn cần điều tra, chứ không phải các phiên bị chặn phía sau.

4.2.2 Hiểu về các loại khóa

Loại chờ cột trong ngăn Quy trình cho biết loại khóa nào mà các phiên bị chặn đang chờ:

  • LCK_M_X: Chờ khóa độc quyền, thường do các thao tác CẬP NHẬT, XÓA hoặc CHÈN gây ra.
  • LCK_M_S: Chờ khóa chia sẻ, thường là các câu lệnh SELECT chờ khóa độc quyền được giải phóng.
  • LCK_M_U: Khóa chờ cập nhật, một loại khóa trung gian được sử dụng trong quá trình cập nhật.
  • LCK_M_IX: Chờ khóa độc quyền theo ý định, chỉ ra sự tranh chấp khóa ở cấp độ trang hoặc cấp độ hàng.

Tài nguyên chờ Cột này hiển thị đối tượng cơ sở dữ liệu nào đang bị khóa, giúp bạn hiểu bảng hoặc chỉ mục nào đang tham gia vào cuộc tranh chấp.

4.2.3 Giải quyết các vấn đề chặn

Sau khi xác định được phiên chặn và tác dụng của nó, bạn có một số tùy chọn:

  1. Chờ hoàn thành: Nếu trình chặn đầu đang chạy một truy vấn hợp lệ sẽ sớm hoàn tất, tốt nhất là để nó hoàn tất một cách tự nhiên.
  2. Tắt phiên: Nếu trình chặn đầu bị kẹt hoặc đang chạy truy vấn cần hủy:
    • Nhấp chuột phải vào phiên trong ngăn Quy trình.
    • Chọn Kill Process.
    • Xác nhận hành động trong hộp thoại.
  3. Tối ưu hóa truy vấn: Nếu tình trạng chặn xảy ra với cùng một truy vấn, hãy tối ưu hóa chúng để giảm thời gian khóa.
  4. Điều chỉnh mức độ cô lập: Hãy cân nhắc sử dụng READ COMMITTED SNAPSHOT ISOLATION để giảm tình trạng chặn trong khối lượng công việc đọc nhiều.
  5. Điều chỉnh chỉ số: Thêm chỉ mục để tăng tốc truy vấn, giảm thời gian giữ khóa.

4.3 Phân tích mức sử dụng CPU cao

Khi ngăn Tổng quan hiển thị thời gian xử lý liên tục ở mức 100% hoặc gần 100%, bạn cần xác định truy vấn nào chịu trách nhiệm và xác định xem chúng có thể được tối ưu hóa hay không.

4.3.1 Xác định các truy vấn sử dụng nhiều CPU

Để tìm các truy vấn tiêu tốn quá nhiều CPU:

  1. Mở Các truy vấn tốn kém gần đây cửa sổ.
  2. Sắp xếp theo CPU (ms/giây) Hiển thị các truy vấn sử dụng nhiều thời gian CPU nhất.
  3. Kiểm tra các truy vấn hàng đầu trong danh sách.
  4. Nhấp chuột phải vào các truy vấn CPU cao và chọn Chỉnh sửa văn bản truy vấn để xem câu lệnh SQL.
  5. Chọn Hiển thị kế hoạch thực hiện để hiểu cách thực hiện truy vấn.

Không chỉ chú ý đến việc sử dụng CPU của từng truy vấn mà còn chú ý đến Số lần thực hiện/phút cột. Một truy vấn sử dụng CPU vừa phải cho mỗi lần thực thi nhưng chạy hàng nghìn lần mỗi phút có thể là nguyên nhân ngốn CPU nhiều nhất.

4.3.2 Kỹ thuật tối ưu hóa truy vấn

Các cách tiếp cận phổ biến để giảm mức tiêu thụ CPU bao gồm:

  • Thêm các chỉ mục còn thiếu: Tìm kiếm chỉ mục sử dụng ít CPU hơn nhiều so với quét bảng. Hãy tìm các đề xuất chỉ mục bị thiếu trong kế hoạch thực thi.
  • Viết lại các truy vấn không hiệu quả: Thay thế con trỏ bằng các phép toán dựa trên tập hợp, loại bỏ các hàm không cần thiết trong mệnh đề WHERE và xóa các phép nối thừa.
  • Cập nhật số liệu thống kê: Thống kê lỗi thời gây ra SQL Server để chọn các kế hoạch thực thi không hiệu quả. Chạy UPDATE STATISTICS trên các bảng bị ảnh hưởng.
  • Giảm khối lượng dữ liệu: Thêm mệnh đề WHERE để lọc dữ liệu trước đó, sử dụng TOP hoặc OFFSET/FETCH để phân trang và tránh sử dụng SELECT *.
  • Sửa lỗi đánh hơi tham số: Sử dụng OPTION (RECOMBILE), gợi ý truy vấn hoặc hướng dẫn lập kế hoạch khi việc đánh hơi tham số gây ra sự cố.

4.4 Điều tra các vấn đề về trí nhớ

Áp lực bộ nhớ có thể khiến các truy vấn tràn ra đĩa, làm giảm đáng kể hiệu suất. Activity Monitor giúp bạn xác định các hoạt động ngốn nhiều bộ nhớ.

4.4.1 Hiểu về số liệu bộ nhớ

Sử dụng bộ nhớ Cột trong ngăn Quy trình hiển thị bộ nhớ được phân bổ cho mỗi phiên tính bằng kilobyte. Mức sử dụng bộ nhớ cao của một phiên duy nhất thường chỉ ra:

  • Các thao tác sắp xếp hoặc băm lớn không thể phù hợp với bộ nhớ được cấp ban đầu
  • Các truy vấn thu thập các tập kết quả khổng lồ
  • Sự song song quá mức tạo ra nhiều bản sao của các toán tử kế hoạch thực thi
  • Rò rỉ bộ nhớ trong các thủ tục hoặc hàm được lưu trữ của CLR

Ngăn Chờ tài nguyên có thể hiển thị Chờ bộ nhớ khi các truy vấn không thể có đủ cấp phát bộ nhớ và phải đợi bộ nhớ khả dụng.

4.4.2 Xác định các truy vấn sử dụng nhiều bộ nhớ

Để tìm các truy vấn gây áp lực bộ nhớ:

  1. Trong tạp chí Quy trình ngăn, sắp xếp theo Sử dụng bộ nhớ để xem các phiên nào tiêu tốn nhiều bộ nhớ nhất.
  2. Nhấp chuột phải vào các phiên có mức sử dụng bộ nhớ cao và chọn Chi Tiết để xem các truy vấn của họ.
  3. Trong tạp chí Các truy vấn tốn kém gần đây bảng, tìm kiếm các truy vấn có giá trị cao Đọc hợp lý or Viết logic, vì những điều này thường liên quan đến việc sử dụng bộ nhớ.
  4. Kiểm tra các kế hoạch thực hiện cho các toán tử Sort và Hash Match, sử dụng quyền cấp bộ nhớ.

Các truy vấn hiển thị cảnh báo "Cấp bộ nhớ" trong kế hoạch thực thi hoặc cảnh báo tràn bộ nhớ cho biết có vấn đề về áp lực bộ nhớ.

4.5 Phát hiện các vấn đề về hiệu suất ứng dụng

Khi người dùng báo cáo thời gian phản hồi của ứng dụng chậm, Activity Monitor sẽ giúp bạn xác định xem cơ sở dữ liệu có phải là nguyên nhân gây tắc nghẽn hay không.

4.5.1 Liên hệ Activity Monitor với các vấn đề ứng dụng

Để điều tra độ chậm của ứng dụng:

  1. Lưu ý thời gian chính xác người dùng báo cáo sự cố và các ứng dụng bị ảnh hưởng.
  2. Mở Activity Monitor và kiểm tra Giới thiệu chung bảng thông báo về các đợt tăng đột biến tài nguyên tại thời điểm đó.
  3. Trong tạp chí Quy trình ngăn, lọc theo Ứng dụng để chỉ hiển thị các kết nối từ ứng dụng bị ảnh hưởng.
  4. Tìm kiếm cao Thời gian chờ đợi giá trị cho biết độ trễ của cơ sở dữ liệu.
  5. Kiểm tra Các truy vấn tốn kém gần đây ngăn chứa các truy vấn từ ứng dụng đó tiêu tốn nhiều tài nguyên.

Nếu cơ sở dữ liệu không hiển thị hoạt động bất thường trong khi người dùng gặp tình trạng chậm thì vấn đề có thể nằm ở mã ứng dụng, độ trễ mạng hoặc hiệu suất phía máy khách.

4.5.2 Xác định các mẫu ứng dụng không hiệu quả

Activity Monitor phát hiện một số lỗi trong thiết kế ứng dụng:

  • Ứng dụng Chatty: Nhiều truy vấn nhỏ thay vì ít truy vấn hơn, hiệu quả hơn. Được xác định bằng số lượng kết nối cao và nhiều truy vấn đơn giản trong mục Truy vấn Đắt tiền Gần đây.
  • Truy vấn N+1: Một truy vấn theo sau là N truy vấn bổ sung cho dữ liệu liên quan. Hiển thị dưới dạng truy vấn đơn giản với số lần thực thi cực cao mỗi phút.
  • Bộ kết quả lớn: Các ứng dụng đang truy xuất nhiều dữ liệu hơn mức cần thiết. Hãy tìm kiếm Đọc hợp lý kết hợp với các truy vấn SELECT * đơn giản.
  • Thiếu thời gian chờ: Các ứng dụng không đặt thời gian chờ lệnh có thể để kết nối mở vô thời hạn, hiển thị dưới dạng phiên chạy dài trong ngăn Quy trình.

5. Phương pháp thay thế: Lấy dữ liệu giám sát hoạt động thông qua T-SQL

Mặc dù Activity Monitor cung cấp giao diện đồ họa tiện lợi, đôi khi bạn cần phải truy xuất thông tin tương đương theo chương trình hoặc tạo các giải pháp giám sát tùy chỉnh.

5.1 Sử dụng Chế độ xem quản lý động (DMV)

SQL Server hiển thị thông tin hoạt động thông qua chế độ xem quản lý động, được Activity Monitor truy vấn ở chế độ nền.

5.1.1 Các DMV chính để giám sát hoạt động

Các DMV quan trọng nhất để sao chép chức năng của Trình giám sát hoạt động bao gồm:

  • sys.dm_exec_requests: Hiển thị các yêu cầu đang thực hiện với thông tin về CPU, I/O và chờ.
  • sys.dm_exec_sessions: Chứa thông tin cấp phiên như tên đăng nhập, tên máy chủ và tên chương trình.
  • sys.dm_os_wait_stats: Cung cấp số liệu thống kê thời gian chờ tích lũy cho toàn bộ phiên bản.
  • sys.dm_exec_query_stats: Bao gồm số liệu thống kê hiệu suất tổng hợp cho các truy vấn được lưu trong bộ nhớ đệm.
  • sys.dm_io_virtual_file_stats: Trả về số liệu thống kê I/O cho dữ liệu và tệp nhật ký.
  • sys.dm_exec_sql_text: Truy xuất văn bản SQL cho sql_handle hoặc plan_handle nhất định.
  • sys.dm_exec_query_plan: Trả về kế hoạch thực hiện cho truy vấn được lưu trong bộ nhớ đệm.

5.1.2 Các truy vấn mẫu để biết thông tin về quy trình

Để sao chép chức năng của ngăn Quy trình, bạn có thể truy vấn:

SELECT 
    s.session_id AS [Session ID],
    CASE WHEN s.is_user_process = 1 THEN 'Yes' ELSE 'No' END AS [User Process],
    s.login_name AS [Login],
    ISNULL(CAST(r.blocking_session_id AS VARCHAR), '') AS [Blocked By],
    CASE 
        WHEN r2.session_id IS NOT NULL 
        AND (r.blocking_session_id = 0 OR r.session_id IS NULL) 
        THEN '1' 
        ELSE '' 
    END AS [Head Blocker],
    ISNULL(DB_NAME(r.database_id), '') AS [Database],
    ISNULL(t.task_state, '') AS [Task State],
    ISNULL(r.command, '') AS [Command],
    r.cpu_time AS [CPU Time],
    r.total_elapsed_time AS [Elapsed Time],
    r.wait_time AS [Wait Time],
    r.wait_type AS [Wait Type],
    s.memory_usage * 8 AS [Memory Use (KB)],
    s.host_name AS [Host Name],
    s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
WHERE s.session_id != @@SPID
ORDER BY s.session_id;

5.1.3 Các truy vấn mẫu cho thống kê chờ

Để xem số liệu thống kê chờ tương tự như ngăn Chờ tài nguyên:

SELECT TOP 10
    wait_type AS [Wait Type],
    wait_time_ms / 1000.0 AS [Wait Time (sec)],
    waiting_tasks_count AS [Waiting Tasks],
    wait_time_ms / NULLIF(waiting_tasks_count, 0) AS [Avg Wait Time (ms)]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
    AND wait_type NOT LIKE '%IDLE%'
    AND wait_type NOT LIKE '%QUEUE%'
ORDER BY wait_time_ms DESC;

5.2 Sử dụng sp_WhoIsActive

sp_WhoIsActive là một quy trình được lưu trữ mạnh mẽ do cộng đồng tạo ra, cung cấp thông tin chi tiết hơn Activity Monitor trong một tập kết quả duy nhất.

5.2.1 Cài đặt sp_WhoIsActive

Để cài đặt sp_WhoIsActive:

  1. Tải xuống phiên bản mới nhất từ http://whoisactive.com.
  2. Tệp tải xuống là một tập lệnh SQL chứa định nghĩa thủ tục.
  3. Mở tập lệnh trong SQL Server Phòng thu quản lý.
  4. Kết nối với của bạn SQL Server ví dụ.
  5. Thực thi tập lệnh để tạo thủ tục trong cơ sở dữ liệu chính.
  6. Cấp quyền thực thi cho người dùng thích hợp.

Vì sp_WhoIsActive được cài đặt trong master nên có thể truy cập được từ bất kỳ ngữ cảnh cơ sở dữ liệu nào.

5.2.2 Ví dụ sử dụng cơ bản

Cách đơn giản nhất để sử dụng sp_WhoIsActive là:

EXEC sp_WhoIsActive;

Điều này trả về một tập kết quả hiển thị tất cả các phiên đang hoạt động cùng với các truy vấn, loại chờ, thông tin chặn và mức sử dụng tài nguyên.

Đối với mẫu 10 giây cho thấy hoạt động trong khoảng thời gian đó:

EXEC sp_WhoIsActive @delta_interval = 10;

Tính năng này tính toán delta cho các số liệu như CPU ​​và số lần đọc, hiển thị những gì đã xảy ra trong 10 giây đó.

5.2.3 Tham số nâng cao

sp_WhoIsActive hỗ trợ nhiều tham số để tùy chỉnh:

  • @lọc: Lọc kết quả theo phiên, cơ sở dữ liệu hoặc thông tin đăng nhập cụ thể.
  • @filter_type: Chỉ định bộ lọc áp dụng cho mục đích gì (phiên, cơ sở dữ liệu, đăng nhập, v.v.).
  • @get_plans: Bao gồm các kế hoạch thực hiện trong kết quả (đặt thành 1).
  • @get_locks: Hiển thị thông tin khóa chi tiết (đặt thành 1).
  • @get_transaction_info: Hiển thị chi tiết giao dịch (đặt thành 1).
  • @sort_order: Sắp xếp kết quả theo các số liệu khác nhau (CPU, lượt đọc, thời lượng, v.v.).
  • @destination_table: Chèn kết quả vào bảng để theo dõi lịch sử.

Ví dụ hiển thị các kế hoạch được sắp xếp theo CPU:

EXEC sp_WhoIsActive 
    @get_plans = 1,
    @sort_order = '[CPU] DESC';

5.3 Sử dụng Quy trình Lưu trữ Hệ thống

SQL Server bao gồm các quy trình lưu trữ truyền thống để giám sát hoạt động, mặc dù chúng cung cấp ít thông tin hơn DMV hoặc Activity Monitor.

5.3.1 sp_who và sp_who2

Quy trình sp_who hiển thị thông tin phiên cơ bản:

EXEC sp_who;

Quy trình sp_who2 cung cấp thêm thông tin chi tiết:

EXEC sp_who2;

Cả hai phương pháp đều hiển thị ID phiên, tên đăng nhập, thời gian sử dụng CPU và thông tin chặn. Tuy nhiên, chúng thiếu các chi tiết phong phú có sẵn thông qua DMV hoặc Activity Monitor. Chúng hữu ích nhất cho việc kiểm tra nhanh khi bạn cần thông tin tối thiểu một cách nhanh chóng.

5.3.2 Các thủ tục hệ thống hữu ích khác

Các quy trình hệ thống bổ sung để giám sát bao gồm:

  • sp_lock: Hiển thị thông tin khóa (đã lỗi thời; thay vào đó hãy sử dụng sys.dm_tran_locks).
  • sp_monitor: Hiển thị số liệu thống kê về SQL Server Hoạt động.
  • sp_help: Hiển thị định nghĩa đối tượng và siêu dữ liệu.
  • DBCC SQLPERF: Hiển thị dung lượng nhật ký giao dịch được sử dụng và số liệu thống kê chờ.

5.4 Tạo tập lệnh giám sát tùy chỉnh

Đối với các môi trường yêu cầu giám sát cụ thể ngoài những gì Activity Monitor cung cấp, bạn có thể xây dựng các giải pháp tùy chỉnh bằng cách sử dụng DMV.

5.4.1 Hoàn thành tập lệnh tương đương của Trình giám sát hoạt động

Dưới đây là một đoạn mã hoàn chỉnh mô phỏng hầu hết các chức năng của Trình quản lý hoạt động:

-- Processes Information
SELECT 
    s.session_id AS [Session ID],
    CONVERT(CHAR(1), s.is_user_process) AS [User Process],
    s.login_name AS [Login],
    ISNULL(CONVERT(VARCHAR, w.blocking_session_id), '') AS [Blocked By],
    CASE 
        WHEN r2.session_id IS NOT NULL 
        AND (r.blocking_session_id = 0 OR r.session_id IS NULL) 
        THEN '1' 
        ELSE '' 
    END AS [Head Blocker],
    ISNULL(DB_NAME(r.database_id), N'') AS [Database],
    ISNULL(t.task_state, N'') AS [Task State],
    ISNULL(r.command, N'') AS [Command],
    SUBSTRING(st.text, (r.statement_start_offset/2) + 1,
        ((CASE r.statement_end_offset 
            WHEN -1 THEN DATALENGTH(st.text)
            ELSE r.statement_end_offset 
        END - r.statement_start_offset) / 2) + 1) AS [Statement],
    st.text AS [Command Text],
    r.cpu_time AS [CPU Time (ms)],
    r.total_elapsed_time / 1000 AS [Elapsed Time (sec)],
    r.wait_time AS [Wait Time (ms)],
    r.wait_type AS [Wait Type],
    r.wait_resource AS [Wait Resource],
    s.memory_usage * 8 AS [Memory Use (KB)],
    s.host_name AS [Host Name],
    c.client_net_address AS [Net Address],
    s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests w ON r.session_id = w.blocking_session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id 
    AND r.request_id = t.request_id
LEFT JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE s.session_id != @@SPID
ORDER BY s.session_id;

-- Recent Expensive Queries
SELECT TOP 20
    qs.execution_count / 
        DATEDIFF(MINUTE, qs.creation_time, GETDATE()) AS [Executions/min],
    qs.total_worker_time / 1000 AS [CPU Time (ms)],
    qs.total_physical_reads AS [Physical Reads],
    qs.total_logical_writes AS [Logical Writes],
    qs.total_logical_reads AS [Logical Reads],
    qs.total_elapsed_time / qs.execution_count / 1000 AS [Avg Duration (ms)],
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
        ((CASE qs.statement_end_offset 
            WHEN -1 THEN DATALENGTH(st.text)
            ELSE qs.statement_end_offset 
        END - qs.statement_start_offset) / 2) + 1) AS [Query Text]
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE qs.execution_count > 0
ORDER BY qs.total_worker_time DESC;

5.4.2 Tự động hóa giám sát bằng công việc SQL Agent

Bạn có thể lên lịch các tập lệnh giám sát tùy chỉnh bằng cách sử dụng SQL Server Đại lý:

  1. Tạo bảng để lưu trữ kết quả giám sát.
  2. Sửa đổi tập lệnh giám sát của bạn để chèn kết quả vào bảng này.
  3. In SQL Server Studio quản lý, mở rộng SQL Server Đại lý trong Object Explorer.
  4. Nhấp chuột phải Việc làm và chọn Việc làm mới.
  5. Cấu hình tác vụ để chạy tập lệnh giám sát của bạn theo các khoảng thời gian đều đặn.
  6. Thiết lập cảnh báo hoặc báo cáo dựa trên dữ liệu đã thu thập.

Phương pháp này cho phép theo dõi lịch sử và phân tích xu hướng mà Activity Monitor không cung cấp.

6. Những hạn chế và cân nhắc của Trình giám sát hoạt động

Mặc dù Activity Monitor rất hữu ích, nhưng việc hiểu rõ những hạn chế của nó sẽ giúp bạn sử dụng nó một cách phù hợp và bổ sung thêm các công cụ khác khi cần thiết.

6.1 Hiểu về chi phí chung của Activity Monitor

Activity Monitor không miễn phí—nó tiêu tốn tài nguyên máy chủ để thu thập và hiển thị thông tin. Hiểu được chi phí này sẽ giúp bạn sử dụng nó một cách có trách nhiệm.

6.1.1 Tác động đến tài nguyên máy chủ

Activity Monitor chạy các truy vấn đối với DMV hệ thống mỗi khi làm mới. Các truy vấn này tiêu tốn CPU, tạo ra các lệnh đọc logic và có thể tạm thời giữ khóa trên các bảng hệ thống. Trên các máy chủ bận rộn, chi phí này có thể ảnh hưởng đến hiệu suất.

Ngăn Quy trình và Truy vấn Đắt tiền Gần đây đặc biệt tốn kém, vì chúng phải quét các DMV và bảng bộ nhớ đệm có dung lượng lớn. Trên các máy chủ có hàng nghìn kế hoạch truy vấn được lưu trong bộ nhớ đệm, việc làm mới Truy vấn Đắt tiền Gần đây có thể mất vài giây.

Tài liệu của Microsoft cảnh báo rằng khoảng thời gian làm mới dưới 10 giây có thể ảnh hưởng đáng kể đến hiệu suất máy chủ, đặc biệt là trên các hệ thống đã tải.

6.1.2 Thực hành tốt nhất về khoảng thời gian làm mới

Chọn khoảng thời gian làm mới phù hợp với tình huống của bạn:

  • 1-5 giây: Chỉ dùng để khắc phục sự cố ngay lập tức các sự cố nghiêm trọng trên máy chủ tải nhẹ. Không nên để Activity Monitor chạy trong những khoảng thời gian này.
  • 10 giây (mặc định): Phù hợp cho hầu hết các tình huống khắc phục sự cố và giám sát chung.
  • 30-60 giây: Lựa chọn tốt hơn cho các máy chủ sản xuất chịu tải nặng hoặc khi giám sát trong thời gian dài.
  • Chỉ làm mới thủ công: Dành cho những trường hợp bạn muốn kiểm tra trạng thái hiện tại thỉnh thoảng mà không cần phải thăm dò liên tục.

Luôn đóng Activity Monitor sau khi bạn hoàn tất việc điều tra. Không để nó chạy liên tục, đặc biệt là khi có nhiều phiên bản từ nhiều người dùng khác nhau.

6.2 Các vấn đề về nhóm kiểu chờ

Cách phân loại thời gian chờ của Activity Monitor, dù đơn giản hóa giao diện, có thể che khuất thông tin chẩn đoán quan trọng.

6.2.1 Cách nhóm giám sát hoạt động chờ

SQL Server Theo dõi hàng trăm loại chờ riêng biệt, mỗi loại chỉ ra một tài nguyên hoặc điều kiện cụ thể. Activity Monitor nhóm các loại chờ này thành các danh mục rộng như "Khóa Bộ đệm", "Khóa" và "Bộ nhớ".

Ví dụ, danh mục "Buffer Latch" bao gồm PAGELATCH_SH, PAGELATCH_UP, PAGELATCH_EX và một số loại chờ cụ thể khác. Mặc dù tất cả đều liên quan đến việc truy cập trang, nhưng chúng có nguyên nhân và giải pháp khác nhau.

Microsoft không ghi lại chính xác loại chờ nào tương ứng với danh mục nào, khiến bạn khó có thể hiểu được những gì mình thực sự đang thấy.

6.2.2 Thiếu các loại chờ

Trình giám sát hoạt động không hiển thị tất cả các loại chờ. Đặc biệt, nó thường bỏ qua các chờ CXPACKET, cho thấy việc thực thi truy vấn song song. Chờ CXPACKET khá phổ biến và thường không gây vấn đề, nhưng việc biết chúng hiện diện sẽ giúp bạn hiểu rõ hơn đặc điểm của khối lượng công việc.

Khi Activity Monitor hiển thị “Buffer Latch” là lựa chọn hàng đầu nhưng các công cụ khác lại hiển thị CXPACKET chiếm ưu thế, thì sự khác biệt này xuất phát từ logic lọc và nhóm của Activity Monitor.

6.2.3 Tại sao các loại chờ đợi cụ thể lại quan trọng

Biết loại chờ cụ thể có ý nghĩa quan trọng trong việc khắc phục sự cố:

  • PAGELATCH_EX: Thường chỉ ra sự tranh chấp tempdb trên các trang phân bổ. Giải pháp bao gồm việc thêm nhiều tệp dữ liệu tempdb hơn.
  • PAGELATCH_SH: Có thể chỉ ra các trang nóng trong bảng người dùng. Giải pháp bao gồm phân vùng hoặc sắp xếp lại chỉ mục.
  • TRANG LÊN: Thường xảy ra trong quá trình cập nhật. Có thể cho thấy hoạt động bình thường chứ không phải là sự cố.

Activity Monitor nhóm tất cả những điều này vào mục "Buffer Latch", khiến việc chẩn đoán trở nên khó khăn hơn. Các công cụ như sp_WhoIsActive và truy vấn DMV hiển thị các loại chờ cụ thể.

6.3 Độ chính xác và tính kịp thời của dữ liệu

Activity Monitor cung cấp chế độ xem gần như theo thời gian thực, nhưng "gần" mới là từ chính xác. Hiểu rõ phương pháp thu thập dữ liệu của nó sẽ giúp bạn diễn giải kết quả chính xác.

6.3.1 Ảnh chụp nhanh so với Giám sát liên tục

Activity Monitor hiển thị ảnh chụp nhanh tại một thời điểm nhất định được chụp ở mỗi khoảng thời gian làm mới. Các sự kiện xảy ra giữa các ảnh chụp nhanh sẽ không được ghi lại. Nếu một truy vấn chạy trong 2 giây và bạn làm mới sau mỗi 10 giây, bạn có thể thấy truy vấn đó một lần hoặc không thấy gì cả, tùy thuộc vào thời gian.

Điều này có nghĩa là Activity Monitor rất giỏi trong việc tìm ra các vấn đề dai dẳng (chặn nhiều phút, CPU luôn ở mức cao) nhưng có thể bỏ qua các vấn đề tạm thời (bế tắc ngắn, truy vấn đột biến không thường xuyên).

6.3.2 Tổng hợp và lấy mẫu

Ngăn Truy vấn Đắt Gần đây hiển thị dữ liệu được tổng hợp kể từ khi các kế hoạch truy vấn được lưu vào bộ nhớ đệm. Hai truy vấn giống hệt nhau với các giá trị tham số khác nhau sẽ xuất hiện dưới dạng một hàng nếu chúng cùng chia sẻ một kế hoạch. Việc tổng hợp này có thể che giấu các vấn đề với các kết hợp tham số cụ thể (vấn đề đánh hơi tham số).

Ngăn Thời gian chờ tài nguyên tính toán tỷ lệ bằng cách so sánh các ảnh chụp nhanh. Nếu số liệu thống kê thời gian chờ được đặt lại giữa các ảnh chụp nhanh (hiếm nhưng có thể xảy ra), tỷ lệ được tính toán có thể không chính xác.

6.4 Khi nào KHÔNG nên sử dụng Activity Monitor

Activity Monitor không phù hợp với mọi tình huống giám sát. Hãy nhận biết khi nào các công cụ thay thế là lựa chọn tốt hơn.

6.4.1 Yêu cầu phân tích lịch sử

Activity Monitor chỉ hiển thị hoạt động hiện tại hoặc gần đây. Nó không lưu trữ dữ liệu lịch sử. Nếu bạn cần phân tích xu hướng theo ngày hoặc tuần, so sánh hiệu suất hiện tại với dữ liệu cơ sở hoặc tạo báo cáo về các mô hình hiệu suất, Activity Monitor không đủ đáp ứng.

Đối với phân tích lịch sử, sử dụng SQL ServerBảng điều khiển hiệu năng tích hợp sẵn, Sự kiện mở rộng với mục tiêu tập tin hoặc các giải pháp giám sát của bên thứ ba.

6.4.2 Nhu cầu thống kê chờ chi tiết

Khi bạn cần thông tin chính xác về loại chờ để điều chỉnh nâng cao, tính năng nhóm và lọc của Activity Monitor không đáp ứng được yêu cầu. Hãy sử dụng trực tiếp truy vấn DMV hoặc sp_WhoIsActive.

Để phân tích thống kê thời gian chờ toàn diện, hãy truy vấn trực tiếp sys.dm_os_wait_stats và lọc thủ công các thời gian chờ lành tính.

6.4.3 Những cân nhắc về máy chủ sản xuất

Trên các máy chủ sản xuất đang hoạt động với tải nặng, chi phí vận hành của Activity Monitor có thể gây ra vấn đề. Nhiều quản trị viên cơ sở dữ liệu không nên chạy Activity Monitor cùng lúc trên cùng một máy chủ.

Đối với việc giám sát sản xuất, hãy cân nhắc các giải pháp thay thế nhẹ hơn như ảnh chụp nhanh DMV theo lịch trình được lưu trữ trong cơ sở dữ liệu giám sát hoặc sử dụng định tuyến Chỉ đọc để giám sát các bản sao thứ cấp trong cấu hình Luôn bật.

7. Các phương pháp hay nhất để sử dụng Activity Monitor

Thực hiện theo các biện pháp tốt nhất sẽ đảm bảo bạn tận dụng được giá trị tối đa từ Activity Monitor đồng thời giảm thiểu tác động tiêu cực đến máy chủ của bạn.

7.1 Khi nào nên sử dụng Trình giám sát hoạt động

Activity Monitor phát huy hiệu quả trong những tình huống cụ thể. Hãy sử dụng khi điểm mạnh của nó phù hợp với nhu cầu của bạn.

7.1.1 Các vấn đề về hiệu suất thời gian thực

Activity Monitor là giải pháp lý tưởng khi người dùng đang gặp sự cố và bạn cần chẩn đoán sự cố ngay lập tức. Chế độ xem theo thời gian thực giúp bạn nắm bắt những gì đang diễn ra ngay lúc đó.

Khi bạn nhận được thông báo "ứng dụng chậm", việc mở Activity Monitor nên là một trong những bước đầu tiên. Bạn có thể nhanh chóng xác định xem cơ sở dữ liệu đang bận, bị chặn hay đang nhàn rỗi.

7.1.2 Điều tra sự chậm trễ của ứng dụng

Khi một ứng dụng cụ thể không phản hồi, Activity Monitor sẽ giúp bạn xác định xem sự cố cơ sở dữ liệu có phải là nguyên nhân hay không. Lọc ngăn Quy trình theo tên ứng dụng để chỉ xem hoạt động cơ sở dữ liệu của ứng dụng đó.

Nếu ứng dụng không hiển thị hoạt động cơ sở dữ liệu trong khi người dùng báo cáo sự cố, thì vấn đề nằm ở nơi khác trong ngăn xếp. Nếu bạn thấy tình trạng chặn rộng rãi hoặc các truy vấn tốn kém, bạn đã tìm ra thủ phạm.

7.1.3 Kiểm tra sức khỏe nhanh

Activity Monitor cung cấp bảng điều khiển tuyệt vời để kiểm tra nhanh tình trạng sức khỏe trong quá trình quản lý thường xuyên. Hãy mở bảng điều khiển, xem qua biểu đồ Tổng quan và xác minh xem có gì bất thường không.

Việc kiểm tra sơ bộ này chỉ mất vài giây và có thể phát hiện vấn đề trước khi chúng trở nên nghiêm trọng. Hãy biến nó thành thói quen hàng ngày của bạn.

7.2 Cài đặt cấu hình tối ưu

Cấu hình Activity Monitor một cách phù hợp sẽ cải thiện cả tính hữu ích lẫn mức tiêu thụ tài nguyên của nó.

7.2.1 Khoảng thời gian làm mới được đề xuất

Phù hợp khoảng thời gian làm mới với mục đích của bạn:

  • Xử lý sự cố đang diễn ra: 10 giây mang lại khả năng phản hồi tốt với chi phí hợp lý.
  • Giám sát mở rộng: 30-60 giây sẽ làm giảm tác động của máy chủ trong thời gian quan sát dài hơn.
  • Chẩn đoán vấn đề quan trọng: 5 giây mang lại độ chi tiết cao khi mỗi giây đều có giá trị, nhưng hãy sử dụng ngắn gọn.
  • Kiểm tra sức khỏe định kỳ: Làm mới thủ công (cách nhau 1 giờ) khi bạn không xem.

Nhớ đóng Activity Monitor khi hoàn tất. Việc đặt chế độ này ở khoảng thời gian dài và quên nó đi sẽ lãng phí tài nguyên máy chủ.

7.2.2 Chiến lược lọc

Sử dụng bộ lọc để tập trung vào thông tin có liên quan và giảm tải nhận thức:

  • Lọc các quy trình theo Cơ sở dữ liệu để chỉ xem hoạt động trên các cơ sở dữ liệu cụ thể.
  • Lọc bởi Đăng nhập để theo dõi hoạt động của người dùng cụ thể.
  • Lọc bởi Trạng thái nhiệm vụ = CHẠY để ẩn các phiên nhàn rỗi.
  • Lọc bởi Ứng dụng để cô lập lưu lượng truy cập từ các chương trình cụ thể.
  • Chỉ hiển thị NonBlanks trong Bị chặn bởi để chỉ xem các tình huống bị chặn.

7.2.3 Lựa chọn và sắp xếp cột

Phát triển phương pháp tiếp cận có hệ thống để xem xét dữ liệu Giám sát hoạt động:

  1. Bắt đầu với phần Tổng quan: Kiểm tra biểu đồ để tìm ra những điểm đột biến hoặc bất thường rõ ràng.
  2. Kiểm tra các tiến trình bị chặn: Sắp xếp theo ID phiên, sau đó tìm giá trị Bị chặn bởi.
  3. Xem lại thời gian chờ tài nguyên: Sắp xếp theo Thời gian chờ tích lũy để xác định tình trạng tắc nghẽn tài nguyên.
  4. Phân tích các truy vấn tốn kém: Sắp xếp theo các số liệu khác nhau (CPU, thực thi, đọc) để tìm các loại vấn đề khác nhau.
  5. Xác minh bằng I/O Pane: Xác nhận xem các truy vấn sử dụng nhiều I/O có tương quan với hoạt động đĩa cao hay không.

7.3 Tích hợp với các công cụ khác

Activity Monitor hoạt động tốt nhất khi là một phần của bộ công cụ rộng hơn thay vì là một giải pháp độc lập.

7.3.1 Sử dụng với SQL Server Profiler

Giám sát hoạt động và SQL Server Profiler bổ sung cho nhau rất tốt. Khi bạn xác định được một phiên có vấn đề trong Activity Monitor, hãy nhấp chuột phải vào phiên đó và chọn Theo dõi quá trình trong SQL Server Profiler.

Thao tác này sẽ khởi chạy Profiler với các bộ lọc đã được cấu hình sẵn để chỉ ghi lại hoạt động của phiên đó. Bạn sẽ thấy toàn bộ chuỗi lệnh được thực thi, thông tin thời gian và thông báo lỗi—những chi tiết mà Activity Monitor không cung cấp.

Để tìm hiểu thêm về SQL Server Khả năng của trình phân tích và các kỹ thuật theo dõi tiên tiến, hãy xem toàn diện SQL Server Hướng dẫn về hồ sơ.

7.3.2 Bổ sung với các sự kiện mở rộng

Extended Events cung cấp khả năng giám sát chi tiết, ít tốn kém, giúp ghi lại thông tin mà Activity Monitor bỏ sót. Tạo các phiên Extended Event để theo dõi các sự kiện cụ thể như bế tắc, truy vấn chạy lâu hoặc biên dịch lại quá mức.

Sử dụng Activity Monitor để điều tra ngay lập tức và Extended Events để theo dõi liên tục và phân tích lịch sử. Hai công cụ này đáp ứng các nhu cầu khác nhau.

Để tìm hiểu thêm về SQL Server Khả năng Sự kiện mở rộng và các kỹ thuật giám sát nâng cao, hãy xem toàn diện SQL Server Hướng dẫn sự kiện mở rộng.

7.3.3 Giải pháp giám sát của bên thứ ba

Các công cụ thương mại như SolarWinds Database Performance Analyzer, Redgate SQL Monitor và Quest Spotlight cung cấp các tính năng mà Activity Monitor thiếu: cảnh báo, phân tích xu hướng lịch sử, lập kế hoạch dung lượng và chẩn đoán tự động.

Những công cụ này là những bổ sung hữu ích cho Activity Monitor, chứ không phải là sự thay thế. Activity Monitor vẫn hữu ích cho việc kiểm tra và điều tra nhanh chóng ngay cả khi đã có các công cụ giám sát phức tạp.

7.4 sai lầm phổ biến cần tránh

Hiểu được những lỗi thường gặp khi sử dụng Activity Monitor sẽ giúp bạn sử dụng ứng dụng hiệu quả hơn.

7.4.1 Để Activity Monitor chạy liên tục

Lỗi thường gặp nhất là mở Trình quản lý hoạt động (Activity Monitor) và để nó chạy liên tục. Điều này lãng phí tài nguyên máy chủ và mang lại ít giá trị vì bạn không chủ động theo dõi.

Đóng Activity Monitor khi bạn không sử dụng. Nếu bạn cần giám sát liên tục, hãy triển khai giải pháp giám sát phù hợp với tính năng thu thập dữ liệu theo lịch trình.

7.4.2 Quá phụ thuộc vào Activity Monitor

Activity Monitor cung cấp một góc nhìn tổng quan về tình trạng máy chủ. Đừng chỉ dựa vào nó. Hãy bổ sung thêm Windows Performance Monitor để biết số liệu ở cấp độ hệ điều hành, Extended Events để theo dõi chi tiết và phân tích kế hoạch thực thi để điều chỉnh truy vấn.

Activity Monitor giúp bạn xác định các vấn đề, nhưng việc giải quyết chúng thường đòi hỏi các công cụ bổ sung và phân tích sâu hơn.

Tìm hiểu thêm về SQL Server giám sát hiệu suất trong hướng dẫn đầy đủ.

7.4.3 Bỏ qua xu hướng lịch sử

Activity Monitor hiển thị trạng thái hiện tại, nhưng các vấn đề về hiệu suất thường chỉ xuất hiện theo thời gian. Hãy triển khai thu thập dữ liệu lịch sử để bạn có thể so sánh các số liệu hiện tại với dữ liệu cơ sở và xác định xu hướng.

Nếu không có bối cảnh lịch sử, bạn có thể không nhận ra rằng mức sử dụng CPU "bình thường" hiện nay cao hơn 30% so với mức cơ sở của tháng trước, cho thấy sự suy giảm dần dần.

8. Khắc phục sự cố của Activity Monitor

Bản thân Activity Monitor đôi khi cũng gặp sự cố. Biết cách khắc phục những sự cố này sẽ giúp bạn tránh được sự phiền toái.

8.1 Trình giám sát hoạt động không mở hoặc không hiển thị dữ liệu

Khi Activity Monitor mở ra nhưng hiển thị khung trống hoặc không mở được thì có thể có một số yếu tố gây ra lỗi.

8.1.1 Các vấn đề về quyền

Nguyên nhân phổ biến nhất gây ra sự cố trong Trình quản lý Hoạt động là do thiếu quyền truy cập. Để xác minh và giải quyết:

  1. Kiểm tra quyền cấp máy chủ của bạn:
    SELECT * FROM fn_my_permissions(NULL, 'SERVER')
    WHERE permission_name = 'VIEW SERVER STATE';
    
  2. Nếu không có hàng nào trả về, bạn thiếu quyền XEM TRẠNG THÁI MÁY CHỦ.
  3. Yêu cầu quản trị viên máy chủ cấp quyền:
    USE master;
    GRANT VIEW SERVER STATE TO [YourLogin];
    
  4. Đóng và mở lại Activity Monitor sau khi cấp quyền.

8.1.2 Các vấn đề về khả năng tương thích phiên bản

Sử dụng phiên bản cũ của SQL Server Studio quản lý để kết nối với một cái mới hơn SQL Server Phiên bản này có thể gây ra lỗi Activity Monitor. Công cụ có thể không hiểu các loại chờ mới hoặc các cột chế độ xem hệ thống.

Luôn sử dụng phiên bản SSMS phù hợp hoặc mới hơn phiên bản của bạn SQL Server phiên bản. Microsoft cung cấp SSMS mới nhất dưới dạng tải xuống miễn phí riêng biệt với SQL Server chính nó.

8.1.3 Các vấn đề về tường lửa và mạng

Activity Monitor yêu cầu kết nối với SQL Server Ví dụ trên các cổng tiêu chuẩn (mặc định là 1433). Nếu bạn có thể kết nối qua Object Explorer nhưng Activity Monitor không thành công, có thể các quy tắc tường lửa đang chặn các kết nối cụ thể.

Xác minh rằng khách hàng của bạn có thể đạt được SQL Server máy trên tất cả các cổng cần thiết. Kiểm tra cả Tường lửa Windows và bất kỳ tường lửa mạng nào giữa máy khách và máy chủ.

8.2 Trình giám sát hoạt động bị tạm dừng vĩnh viễn

Một vấn đề phổ biến, đặc biệt là trong SQL Server 2019, Activity Monitor đang mở ở trạng thái tạm dừng và từ chối tiếp tục.

8.2.1 Hiểu về trạng thái tạm dừng

Khi Activity Monitor tạm dừng, tất cả các khung sẽ hiển thị trạng thái "Tạm dừng" kèm theo nút tiếp tục có thể không hoạt động. Điều này ngăn bạn xem bất kỳ hoạt động nào của máy chủ.

Trạng thái tạm dừng thường xảy ra do vấn đề về quyền, hạn chế kết nối từ xa hoặc lỗi phiên bản SSMS chứ không phải là hành động tạm dừng cố ý.

8.2.2 Nguyên nhân phổ biến

Activity Monitor có thể chuyển sang trạng thái tạm dừng vĩnh viễn do:

  • Thiếu quyền VIEW SERVER STATE trên các ngăn mới hơn được thêm vào gần đây SQL Server phiên bản
  • Kết nối từ xa bị vô hiệu hóa trên SQL Server ví dụ
  • Lỗi xác thực cho các truy vấn hệ thống cụ thể
  • Lỗi trong các bản dựng SSMS cụ thể, đặc biệt là từ 18.0 đến 18.3
  • Sự cố kết nối giữa máy khách và máy chủ

8.2.3 Các bước giải quyết

Để giải quyết sự cố tạm dừng của Activity Monitor:

  1. Cập nhật SSMS: Tải xuống và cài đặt bản mới nhất SQL Server Phiên bản Management Studio từ trang web của Microsoft. Nhiều lỗi trạng thái tạm dừng đã được sửa trong các bản phát hành sau.
  2. Xác minh quyền: Đảm bảo bạn có quyền XEM TRẠNG THÁI MÁY CHỦ và XEM BẤT KỲ ĐỊNH NGHĨA NÀO.
  3. Kiểm tra kết nối từ xa: Xác minh rằng SQL Server trường hợp cho phép kết nối từ xa:
    EXEC sp_configure 'remote access';
    

    Nếu giá trị là 0, hãy yêu cầu quản trị viên bật nó lên.

  4. Khởi động lại SSMS: Đôi khi chỉ cần đóng tất cả các cửa sổ và khởi động lại máy tính là được. SQL Server Management Studio đã giải quyết được vấn đề.
  5. Kết nối với Xác thực Windows: Nếu sử dụng xác thực SQL, hãy thử xác thực Windows vì đôi khi nó bỏ qua các sự cố tạm dừng liên quan đến xác thực.

8.3 Các vấn đề về hiệu suất khi sử dụng Activity Monitor

Nếu Activity Monitor trở nên chậm hoặc làm giảm hiệu suất máy chủ thì cần phải điều chỉnh.

8.3.1 Giảm chi phí giám sát

Để giảm thiểu tác động của Activity Monitor:

  1. Tăng khoảng thời gian làm mới lên 30 giây hoặc 1 phút.
  2. Đóng các ngăn bạn không sử dụng bằng cách nhấp vào nút thu gọn.
  3. Khi các ngăn được thu gọn, Activity Monitor sẽ không truy vấn dữ liệu cho chúng.
  4. Tránh chạy nhiều phiên bản Activity Monitor cùng lúc.
  5. Đóng hoàn toàn Activity Monitor khi không chủ động điều tra sự cố.

8.3.2 Các phương pháp giám sát trọng lượng nhẹ thay thế

Nếu Activity Monitor tốn quá nhiều tài nguyên so với môi trường của bạn, hãy cân nhắc các giải pháp thay thế:

  • Hỏi trực tiếp DMV: Viết các truy vấn T-SQL cụ thể để chỉ lấy thông tin bạn cần.
  • Sử dụng sp_WhoIsActive: Quy trình được lưu trữ này được tối ưu hóa cao và thường có chi phí thấp hơn Activity Monitor.
  • Thực hiện lấy mẫu: Lên lịch các tác vụ SQL Agent để chụp ảnh nhanh dữ liệu DMV theo các khoảng thời gian đều đặn, lưu trữ kết quả trong các bảng để phân tích sau.
  • Theo dõi các bản sao thứ cấp: In Nhóm luôn sẵn sàngHãy chạy Trình giám sát hoạt động trên một máy chủ phụ có thể đọc được thay vì máy chủ chính.

8.4 Thông tin không chính xác hoặc bị thiếu

Đôi khi Activity Monitor hiển thị thông tin có vẻ không chính xác hoặc không đầy đủ.

8.4.1 Xác minh dữ liệu với DMV

Khi kết quả Activity Monitor có vẻ đáng ngờ, hãy xác minh bằng cách truy vấn trực tiếp các DMV cơ sở. Ví dụ: nếu ngăn Quy trình không hiển thị tình trạng chặn nhưng người dùng báo cáo, hãy truy vấn:

SELECT 
    blocking_session_id,
    session_id,
    wait_type,
    wait_time,
    wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id != 0;

Nếu truy vấn này hiển thị lệnh chặn mà Activity Monitor bỏ sót, bạn đã xác nhận có sự cố hiển thị.

8.4.2 Hiểu về thời gian làm mới dữ liệu

Hãy nhớ rằng Activity Monitor hiển thị ảnh chụp nhanh. Một truy vấn chạy giữa các khoảng thời gian làm mới sẽ không xuất hiện trong mục Truy vấn Đắt tiền Gần đây trừ khi kế hoạch thực thi của nó vẫn còn trong bộ nhớ đệm.

Tương tự, số liệu thống kê chờ trong ngăn Chờ Tài nguyên phản ánh sự tích lũy kể từ lần chụp nhanh cuối cùng. Khối lượng công việc thay đổi nhanh chóng có thể hiển thị các mẫu khác nhau mỗi lần làm mới.

9. Kỹ thuật giám sát hoạt động nâng cao

Các quản trị viên cơ sở dữ liệu giàu kinh nghiệm sử dụng Activity Monitor theo những cách tinh vi để khai thác tối đa giá trị chẩn đoán.

9.1 Kết hợp nhiều khung để phân tích nguyên nhân gốc rễ

Sức mạnh thực sự của Activity Monitor xuất hiện khi bạn liên kết thông tin trên nhiều khung để hiểu các vấn đề hiệu suất phức tạp.

9.1.1 Tương quan thời gian chờ với các tiến trình

Khi ngăn Chờ tài nguyên hiển thị thời gian chờ cao trong một danh mục, hãy sử dụng ngăn Quy trình để xác định phiên nào đang gặp phải thời gian chờ đó:

  1. Lưu ý danh mục chờ có thời gian chờ tích lũy cao (ví dụ: “Khóa”).
  2. Chuyển sang ngăn Quy trình.
  3. Sắp xếp theo Loại chờ để nhóm các phiên theo thời gian chờ hiện tại của họ.
  4. Tìm kiếm các phiên hiển thị loại chờ trong danh mục có vấn đề.
  5. Đối với những phiên họp đó, hãy kiểm tra Tài nguyên chờ cột để xem những đối tượng cơ sở dữ liệu nào có liên quan.
  6. Nhấp chuột phải và chọn Chi Tiết để xem văn bản truy vấn.

Mối tương quan này giúp bạn chuyển từ "chúng ta đang chờ khóa" sang "truy vấn cụ thể này đang chờ khóa trên bảng này".

9.1.2 Liên kết các truy vấn tốn kém với các vấn đề I/O

Khi ngăn I/O Tệp dữ liệu hiển thị hoạt động đĩa cao trên một cơ sở dữ liệu cụ thể:

  1. Lưu ý tệp cơ sở dữ liệu nào có tốc độ đọc hoặc ghi MB/giây cao.
  2. Chuyển sang Truy vấn tốn kém gần đây.
  3. Sắp xếp theo Đọc vật lý/giây để xác định các truy vấn đọc nhiều từ đĩa.
  4. Lọc hoặc xác định trực quan các truy vấn chạy trên cơ sở dữ liệu có I/O cao.
  5. Kiểm tra các kế hoạch thực hiện truy vấn đó để tìm các bản quét bảng hoặc chỉ mục bị thiếu gây ra I/O quá mức.

Phân tích nhiều ngăn này kết nối các triệu chứng (I/O đĩa cao) với nguyên nhân (các truy vấn kém hiệu quả cụ thể).

9.2 Sử dụng Activity Monitor để lập kế hoạch năng lực

Mặc dù Activity Monitor không lưu trữ dữ liệu lịch sử, bạn vẫn có thể sử dụng dữ liệu này một cách chiến lược để quan sát lập kế hoạch năng lực.

9.2.1 Xác định các mẫu sử dụng cao điểm

Theo dõi hoạt động của máy chủ vào các thời điểm khác nhau trong ngày để xác định các mẫu sử dụng:

  1. Mở Activity Monitor trong giờ cao điểm đã biết.
  2. Lưu ý các giá trị đỉnh của biểu đồ % Thời gian xử lý.
  3. Ghi lại số lượng Nhiệm vụ chờ tối đa.
  4. Quan sát số lượng yêu cầu theo lô/giây vào thời điểm cao điểm.
  5. Ghi lại các cơ sở dữ liệu bận rộn nhất trong ngăn Quy trình.
  6. Lặp lại vào giờ thấp điểm để so sánh.

Nếu thời gian xử lý giờ cao điểm liên tục vượt quá 80%, bạn đang tiến gần đến giới hạn dung lượng CPU. Tương tự, số lần chờ tăng lên cho thấy tình trạng tranh chấp tài nguyên ngày càng tăng.

9.2.2 Phân tích xu hướng tài nguyên

Trong khi Activity Monitor hiển thị trạng thái hiện tại, bạn có thể sử dụng nó để kiểm tra xu hướng tại chỗ bằng cách ghi lại các số liệu chính theo thời gian:

  • Chụp ảnh màn hình của khung Tổng quan vào cùng một thời điểm mỗi ngày
  • Ghi lại các giá trị đỉnh từ mỗi biểu đồ
  • So sánh theo tuần để xác định xu hướng tăng trưởng
  • Theo dõi sự gia tăng dần dần trong thời gian xử lý trung bình hoặc tốc độ I/O

Hướng dẫn này bổ sung thêm các giải pháp giám sát phức tạp hơn và giúp chứng minh tính hợp lý của việc mở rộng năng lực.

9.3 Ghi lại các chỉ số cơ sở về hiệu suất

Việc thiết lập các số liệu hiệu suất cơ bản giúp bạn nhận biết thời điểm hiệu suất giảm sút.

9.3.1 Thu thập số liệu cơ sở

Trong thời gian hiệu suất tốt đã biết, hãy ghi lại số liệu của Activity Monitor:

  1. Mở Activity Monitor trong các hoạt động kinh doanh bình thường (không phải giờ cao điểm hoặc ngoài giờ cao điểm).
  2. Giá trị ngăn Tổng quan bản ghi:
    • Khoảng thời gian xử lý % điển hình
    • Số lượng nhiệm vụ chờ trung bình
    • Tốc độ I/O cơ sở dữ liệu bình thường
    • Yêu cầu lô điển hình/giây
  3. Lưu ý các danh mục trong ngăn Thời gian chờ tài nguyên hiển thị thời gian chờ lâu nhất.
  4. Ghi lại số lượng tiến trình đang hoạt động thường ở ngăn Tiến trình.
  5. Ghi lại số liệu thực hiện truy vấn tiêu biểu từ các Truy vấn tốn kém gần đây.

Lưu trữ tài liệu cơ sở này để tham khảo trong tương lai khi điều tra các vấn đề về hiệu suất.

9.3.2 So sánh hiệu suất hiện tại và hiệu suất cơ sở

Khi phát sinh sự cố về hiệu suất, hãy so sánh các số liệu hiện tại của Activity Monitor với số liệu cơ sở đã ghi chép của bạn:

  • Thời gian xử lý có cao hơn đáng kể so với thời gian ban đầu không? Hãy tập trung vào các truy vấn sử dụng nhiều CPU.
  • Các tác vụ chờ có cao gấp 2-3 lần mức cơ bản không? Hãy điều tra tình trạng chờ tài nguyên.
  • I/O có cao hơn đáng kể không? Kiểm tra ngăn I/O Tệp dữ liệu và các truy vấn tốn kém.
  • Số lượng yêu cầu xử lý theo lô có thấp hơn mức cơ bản trong giờ cao điểm không? Hãy kiểm tra xem có vấn đề chặn hoặc kết nối không.

Sự so sánh này giúp bạn xác định những thay đổi và tập trung khắc phục sự cố một cách phù hợp.

9.4 Tạo quy trình giám sát tùy chỉnh

Phát triển quy trình làm việc có hệ thống cho các tình huống điều tra phổ biến để đảm bảo phân tích toàn diện và có thể lặp lại.

9.4.1 Quy trình điều tra từng bước

Khi người dùng báo cáo sự cố về hiệu suất, hãy tuân theo quy trình làm việc nhất quán:

  1. Kiểm tra sức khỏe nhanh: Mở Activity Monitor và quét biểu đồ khung Tổng quan để tìm ra những điểm bất thường rõ ràng.
  2. Kiểm tra xem có bị chặn không: Mở rộng ngăn Quy trình, lọc NonBlanks trong cột Bị chặn bởi.
  3. Xác định sự tranh chấp tài nguyên: Xem lại ngăn Chờ tài nguyên được sắp xếp theo thời gian chờ.
  4. Tìm các truy vấn tốn kém: Kiểm tra các truy vấn tốn kém gần đây được sắp xếp theo CPU, sau đó là thực thi, rồi đến đọc.
  5. Tương quan các mẫu I/O: Tham chiếu chéo các truy vấn tốn kém với hoạt động của ngăn I/O Tệp dữ liệu.
  6. Kết quả tài liệu: Chụp ảnh màn hình và ghi lại ID phiên có liên quan, loại chờ và chi tiết truy vấn.
  7. Lặn sâu: Sử dụng dấu vết Profiler, phân tích kế hoạch thực hiện và truy vấn DMV để điều tra chi tiết các vấn đề đã xác định.

9.4.2 Tiêu chí leo thang

Thiết lập tiêu chí về thời điểm cần nâng cấp vấn đề so với việc tiếp tục điều tra:

  • Nâng cấp ngay lập tức: Chuỗi chặn kéo dài >5 phút, thời gian xử lý ở mức 100% trong >2 phút, các tiến trình hệ thống quan trọng hiển thị trạng thái TẠM DỪNG.
  • Nâng cao với phân tích: Các truy vấn tốn kém định kỳ tiêu tốn >50% CPU, thời gian phản hồi I/O cao >50ms, cấp phát bộ nhớ liên tục bị lỗi.
  • Điều tra thêm: Các sự cố tạm thời được giải quyết trong vòng vài phút, các truy vấn có kế hoạch không tối ưu nhưng hiệu suất chấp nhận được, tắc nghẽn nhỏ kéo dài dưới 30 giây.

10. Giám sát hoạt động trong các chế độ khác nhau SQL Server Các phiên bản

Activity Monitor đã phát triển trên SQL Server phiên bản, mỗi bản phát hành đều mang đến những cải tiến và đôi khi là những vấn đề mới.

10.1 Giám sát hoạt động trong SQL Server 2008 trở lên

SQL Server Năm 2008 giới thiệu thiết kế Activity Monitor hiện đại và vẫn giữ nguyên cho đến ngày nay.

10.1.1 Tính năng mới được giới thiệu trong SQL Server 2008

SQL Server Thiết kế lại Activity Monitor năm 2008 mang lại những cải tiến đáng kể:

  • Bảng điều khiển đồ họa với biểu đồ thời gian thực trong ngăn Tổng quan
  • Giao diện khung có thể mở rộng/thu gọn thay thế chế độ xem lưới cũ
  • Ngăn Truy vấn tốn kém gần đây hiển thị dữ liệu hiệu suất truy vấn tổng hợp
  • Ngăn I/O Tệp dữ liệu để theo dõi hoạt động của từng đĩa
  • Ngăn Chờ tài nguyên nâng cao với phân loại chờ
  • Nhấp chuột phải vào menu ngữ cảnh cho các hành động xử lý như tắt phiên và khởi chạy Profiler
  • Khoảng thời gian làm mới có thể cấu hình từ 1 giây đến 1 giờ

Những thay đổi này đã chuyển đổi Activity Monitor từ một danh sách quy trình đơn giản thành một bảng điều khiển giám sát toàn diện.

10.1.2 Thay đổi từ SQL Server 2005

SQL Server Activity Monitor năm 2005 bị hạn chế hơn nhiều:

  • Truy cập thông qua thư mục Quản lý trong Object Explorer thay vì thanh công cụ
  • Lưới đơn hiển thị danh sách quy trình với thông tin cơ bản
  • Không có biểu đồ đồ họa hoặc nhiều khung
  • Không có truy vấn tốn kém hoặc giám sát I/O
  • Thông tin thống kê thời gian chờ có giới hạn

Thiết kế lại năm 2008 đại diện cho sự tái thiết hoàn toàn chứ không phải là sự cải thiện gia tăng.

10.2 Giám sát hoạt động trong SQL Server 2014/2016

SQL Server Năm 2014 và 2016 đã có những cải tiến gia tăng đối với việc thu thập dữ liệu cơ bản của Activity Monitor nhưng có ít thay đổi về mặt hình ảnh.

10.2.1 Cải tiến và nâng cao

Những cải tiến chính trong các phiên bản này bao gồm:

  • Hiệu suất tốt hơn khi giám sát các máy chủ có hàng nghìn kế hoạch được lưu trong bộ nhớ đệm
  • Khả năng lọc nâng cao trong ngăn Quy trình
  • Cải thiện độ chính xác của tổng hợp số liệu thống kê chờ
  • Xử lý tốt hơn việc sắp xếp và lọc cột với các tập kết quả lớn
  • Truy vấn DMV hiệu quả hơn giúp giảm chi phí giám sát

Giao diện cốt lõi vẫn nhất quán với SQL Server 2008, duy trì sự quen thuộc cho người quản lý.

10.3 Giám sát hoạt động trong SQL Server 2019/2022

mới đây SQL Server Các phiên bản tiếp tục cải tiến Activity Monitor với trọng tâm là hiệu suất và tính ổn định.

10.3.1 Các tính năng và khả năng mới nhất

SQL Server Giám sát hoạt động năm 2019 và 2022 bao gồm:

  • Hỗ trợ cho các loại chờ mới được giới thiệu trong các phiên bản này
  • Cải thiện hiệu suất hiển thị trong SSMS bằng công nghệ WPF
  • Xử lý tốt hơn số lượng lớn phiên hoạt động
  • Khả năng tương thích được cải thiện với nền tảng SQL đám mây
  • Số liệu CPU và I/O chính xác hơn

10.3.2 Các vấn đề đã biết trong các phiên bản gần đây

SQL Server Năm 2019 đã xuất hiện một số lỗi của Activity Monitor:

  • Trạng thái tạm dừng vĩnh viễn: Activity Monitor thường xuyên chuyển sang trạng thái tạm dừng và không tiếp tục, đặc biệt là trong SSMS 18.0-18.3. Đã sửa trong các phiên bản SSMS sau.
  • Lỗi kết nối từ xa: Một số cấu hình ngăn Activity Monitor mở trên các phiên bản từ xa. Giải pháp thay thế bao gồm bật cờ theo dõi cụ thể hoặc sử dụng các bản dựng SSMS mới hơn.
  • Các vấn đề về quyền: Chế độ xem hệ thống mới yêu cầu các quyền bổ sung không được ghi chép rõ ràng, dẫn đến màn hình trống ngay cả khi sử dụng VIEW SERVER STATE.

Luôn sử dụng phiên bản SSMS mới nhất khi làm việc với SQL Server 2019 và 2022 để tránh những vấn đề này.

11. Các trường hợp sử dụng thực tế và ví dụ

Các ví dụ thực tế minh họa cách áp dụng Activity Monitor hiệu quả trong các tình huống khắc phục sự cố phổ biến.

11.1 Nghiên cứu tình huống: Chẩn đoán ứng dụng web chậm

Một nhóm phát triển báo cáo rằng ứng dụng web của họ trở nên chậm không thể chấp nhận được, thời gian tải trang mất 20-30 giây thay vì 2-3 giây thông thường.

11.1.1 Điều tra ban đầu với Bảng tổng quan

Mở Activity Monitor và kiểm tra ngăn Tổng quan:

  1. Biểu đồ % Thời gian xử lý cho thấy mức sử dụng CPU là 85-95%, cao hơn đáng kể so với mức cơ sở thông thường là 30-40%.
  2. Nhiệm vụ chờ dao động trong khoảng 10-20 nhiệm vụ, so với mức cơ sở bình thường là 0-3.
  3. Hoạt động I/O của cơ sở dữ liệu cho thấy mức độ hoạt động vừa phải khoảng 50 MB/giây.
  4. Số lượng yêu cầu theo lô/giây thấp hơn dự kiến ​​ở mức 100/giây, so với mức thông thường là 300-400/giây trong giờ làm việc.

Mẫu này cho thấy tình trạng tắc nghẽn CPU do tranh chấp tài nguyên gây giảm thông lượng. Máy chủ đang hoạt động hết công suất nhưng không xử lý được nhiều yêu cầu.

11.1.2 Xác định truy vấn có vấn đề

Mở rộng ngăn Truy vấn tốn kém gần đây và sắp xếp theo Số lần thực thi/phút:

  1. Truy vấn hàng đầu hiển thị 15,000 lượt thực thi mỗi phút.
  2. Nhấp chuột phải và chọn Chỉnh sửa văn bản truy vấn để kiểm tra truy vấn.
  3. Truy vấn là một câu lệnh SELECT đơn giản để lấy một bản ghi người dùng duy nhất: SELECT * FROM Users WHERE UserId = @UserId.
  4. Truy vấn này không nên thực hiện 15,000 lần mỗi phút đối với ứng dụng sử dụng thông thường.

Nhấp chuột phải vào truy vấn và chọn Hiển thị kế hoạch thực hiện. Kế hoạch hiển thị quét bảng trên bảng Người dùng với cảnh báo về chỉ mục bị thiếu trên cột UserId.

Lọc ngăn Quy trình theo Ứng dụng để chỉ hiển thị các kết nối của ứng dụng web. Nhiều phiên sẽ hiển thị cùng một truy vấn này chạy lặp lại.

11.1.3 Giải quyết và Xác minh

Vấn đề này xuất phát từ hai nguyên nhân: thực thi truy vấn quá mức và thiếu chỉ mục. Các bước giải quyết:

  1. Tạo chỉ mục còn thiếu:
    CREATE NONCLUSTERED INDEX IX_Users_UserId 
    ON Users (UserId);
    
  2. Liên hệ với nhóm phát triển về việc thực thi quá mức. Cuộc điều tra cho thấy một vấn đề truy vấn N+1 trong mã ứng dụng, trong đó một vòng lặp truy xuất thông tin chi tiết người dùng cho từng mục trong danh sách.
  3. Sửa đổi ứng dụng để gom các tìm kiếm của người dùng thành một truy vấn duy nhất bằng cách sử dụng mệnh đề IN hoặc tham số có giá trị trong bảng.
  4. Xác minh bản sửa lỗi bằng cách theo dõi Activity Monitor sau khi triển khai. Mức sử dụng CPU giảm xuống còn 35-40%, số lần thực thi mỗi phút giảm xuống còn 200-300 và thời gian phản hồi của ứng dụng trở lại bình thường.

11.2 Nghiên cứu tình huống: Giải quyết vấn đề chặn

Người dùng báo cáo rằng hệ thống nhập lệnh thỉnh thoảng bị treo trong 30-60 giây trước khi hoạt động bình thường trở lại.

11.2.1 Phát hiện chuỗi chặn

Mở Activity Monitor trong một trong những sự kiện đóng băng này và mở rộng ngăn Quy trình:

  1. Sắp xếp theo ID phiên để xem tất cả các phiên họp được tổ chức.
  2. Nhiều phiên hiển thị giá trị trong Bị chặn bởi cột, tất cả đều trỏ đến ID phiên 73.
  3. Phiên 73 hiển thị '1' trong Head Blocker cột, xác nhận đó là nguyên nhân gốc rễ.
  4. Loại chờ đối với các phiên bị chặn sẽ hiển thị LCK_M_X, cho biết chúng đang chờ khóa độc quyền.
  5. Tài nguyên chờ cột này cho biết lệnh chặn nằm ở bảng Đơn hàng.

11.2.2 Phân tích nguyên nhân

Nhấp chuột phải vào Phiên 73 và chọn Chi Tiết để xem lệnh:

UPDATE Orders 
SET Status = 'Processing', 
    LastModified = GETDATE()
WHERE OrderId IN (SELECT OrderId FROM #TempOrders);

Bản cập nhật này là một phần của tác vụ xử lý hàng loạt chạy hàng giờ. Kiểm tra Đăng nhập cột xác nhận phiên này thuộc về tài khoản dịch vụ xử lý hàng loạt.

Truy vấn đang giữ khóa trên bảng Orders trong khi xử lý hàng nghìn đơn hàng. Thời gian chờ đợi đối với các phiên bị chặn tăng đều đặn, xác nhận hoạt động kéo dài này chính là vấn đề.

11.2.3 Triển khai bản sửa lỗi

Giải pháp ngắn hạn:

  1. Ghi lại thông tin chi tiết của Phiên 73 bao gồm văn bản truy vấn và thời lượng.
  2. Cho phép quá trình cập nhật hoàn tất một cách tự nhiên vì đây là quá trình xử lý hàng loạt hợp lệ.
  3. Sau khi hoàn tất, hãy xác minh các phiên bị chặn đã được xóa và hoạt động bình thường trở lại.

Các giải pháp dài hạn được thực hiện:

  1. Lên lịch lại tác vụ hàng loạt hoạt động vào giờ thấp điểm (2-4 giờ sáng thay vì trong giờ làm việc).
  2. Sửa đổi xử lý hàng loạt để cập nhật các đơn hàng theo từng đợt nhỏ hơn, mỗi đợt 100 bản ghi, giải phóng khóa giữa các đợt.
  3. Thêm một chỉ mục trên cột OrderId để tăng tốc thao tác cập nhật.
  4. Hãy xem xét cách ly SNAPSHOT để đọc các hoạt động nhằm giảm tác động chặn.

11.3 Nghiên cứu tình huống: Xác định việc thực thi truy vấn quá mức

Việc theo dõi cơ sở dữ liệu cho thấy mức sử dụng CPU đã tăng dần trong tháng qua, nhưng không có thay đổi rõ ràng nào xảy ra trong mã ứng dụng.

11.3.1 Phát hiện số lượng thực thi bất thường

Mở Activity Monitor và kiểm tra ngăn Recent Expensive Querys:

  1. Sắp xếp theo Số lần thực hiện/phút để xem các truy vấn được thực thi thường xuyên nhất.
  2. Truy vấn hàng đầu hiển thị 37,000 lượt thực thi mỗi phút—cao hơn nhiều so với bất kỳ truy vấn nào khác.
  3. Nhấp chuột phải và chọn Chỉnh sửa văn bản truy vấn.
  4. Truy vấn lấy thông tin danh mục sản phẩm:
    SELECT CategoryId, CategoryName 
    FROM ProductCategories 
    WHERE CategoryId = @CategoryId;
    
  5. Truy vấn đơn giản này phải nhanh và có thể lưu vào bộ nhớ đệm, nhưng nó lại thực hiện hàng chục nghìn lần mỗi phút.

11.3.2 Theo dõi mã ứng dụng

Trong ngăn Quy trình, hãy tìm các phiên thực hiện truy vấn này:

  1. Lưu ý Ứng dụng cột hiển thị “ProductCatalogService”.
  2. Nhấp chuột phải vào một trong những phiên này và chọn Theo dõi quá trình trong SQL Server Profiler.
  3. SQL Profiler cho thấy truy vấn được thực thi nhiều lần với tốc độ nhanh chóng với các giá trị CategoryId khác nhau.
  4. Liên hệ với nhóm phát triển quản lý ProductCatalogService để xem xét mã.

Việc xem xét mã nguồn cho thấy vấn đề: một thay đổi gần đây sẽ truy xuất danh sách sản phẩm theo danh mục. Với mỗi sản phẩm trong tập kết quả (thường là hơn 1,000 sản phẩm), mã nguồn sẽ thực hiện một lệnh gọi cơ sở dữ liệu riêng để lấy thông tin danh mục—một vấn đề truy vấn N+1 kinh điển.

11.3.3 Tối ưu hóa ứng dụng

Thực hiện sửa chữa đúng cách:

  1. Sửa đổi truy vấn ứng dụng để sử dụng JOIN để truy xuất các sản phẩm và danh mục của chúng trong một lệnh gọi cơ sở dữ liệu duy nhất:
    SELECT p.ProductId, p.ProductName, c.CategoryId, c.CategoryName
    FROM Products p
    INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId
    WHERE p.Active = 1;
    
  2. Triển khai mã đã cập nhật và theo dõi Activity Monitor.
  3. Xác minh bản sửa lỗi: Số lần thực thi mỗi phút cho truy vấn danh mục giảm từ 37,000 xuống dưới 100 và mức sử dụng CPU tổng thể giảm 40%.
  4. Ghi lại bài học kinh nghiệm và chia sẻ với nhóm phát triển để ngăn ngừa các vấn đề tương tự trong các thay đổi mã trong tương lai.

12. Phát hiện nguy cơ hỏng cơ sở dữ liệu

Mặc dù Activity Monitor không được thiết kế đặc biệt để phát hiện lỗi cơ sở dữ liệu, nhưng một số mẫu hiển thị nhất định có thể gợi ý các vấn đề lỗi tiềm ẩn cần được điều tra thêm.

12.1 Các triệu chứng tiềm ẩn của lỗi cơ sở dữ liệu

Nếu cơ sở dữ liệu bị hỏng và đang được truy cập, đôi khi bạn có thể thấy:

1. Trong ngăn Quy trình:

  • Phiên bị kẹt ở trạng thái TẠM DỪNG với các loại chờ bất thường
  • Các quy trình hiển thị trạng thái lỗi
  • Truy vấn thất bại nhiều lần

2. Trong Ngăn Chờ Tài nguyên:

  • Các loại chờ liên quan đến I/O bất thường có thể chỉ ra sự cố đĩa (mặc dù điều này có nhiều khả năng chỉ ra sự cố phần cứng hơn là lỗi logic)

3. Trong các truy vấn tốn kém gần đây:

  • Các truy vấn có số lần đọc vật lý cao bất thường nếu chúng liên tục cố gắng đọc các trang bị hỏng

12.2 Kiểm tra thêm với DBCC CHECKDB

Khi Activity Monitor hiển thị các dấu hiệu cho thấy có khả năng bị hỏng, bạn nên chạy ngay DBCC CHECKDB để xác minh tính toàn vẹn của cơ sở dữ liệu. Lệnh này sẽ quét tất cả các trang cơ sở dữ liệu, xác thực tổng kiểm tra và kiểm tra lỗi nhất quán logic.

Để tìm hiểu thêm về cách sử dụng DBCC CHECKDB để kiểm tra và sửa lỗi cơ sở dữ liệu, hãy xem hướng dẫn DBCC CHECKDB toàn diện.

12.3 Sửa chữa bằng công cụ chuyên nghiệp

Nếu DBCC CHECKDB xác nhận cơ sở dữ liệu bị hỏng, bạn có một số tùy chọn để sửa chữa:

13. Phần kết luận

SQL Server Activity Monitor là công cụ vô cùng hữu ích cho người quản trị cơ sở dữ liệu, cung cấp thông tin chi tiết ngay lập tức về hiệu suất máy chủ và giúp chẩn đoán sự cố nhanh chóng và hiệu quả.

13.1 Tóm tắt các điểm chính

Trong suốt hướng dẫn này, chúng tôi đã khám phá cách Activity Monitor giúp bạn hiểu và khắc phục sự cố SQL Server hiệu suất:

  • Activity Monitor cung cấp khả năng hiển thị theo thời gian thực vào các tiến trình, thời gian chờ, truy vấn và I/O thông qua giao diện đồ họa có tổ chức.
  • Năm ngăn—Tổng quan, Quy trình, Chờ tài nguyên, I/O tệp dữ liệu và Truy vấn tốn kém gần đây—mỗi ngăn cung cấp góc nhìn riêng về hoạt động của máy chủ.
  • Các tình huống khắc phục sự cố phổ biến như thực thi truy vấn quá mức, chuỗi chặn và sử dụng CPU cao sẽ có thể quản lý được nhờ quá trình điều tra có hệ thống của Activity Monitor.
  • Mặc dù mạnh mẽ, Activity Monitor vẫn có những hạn chế, bao gồm thiếu dữ liệu lịch sử, phân nhóm theo loại chờ và chi phí giám sát phát sinh, ảnh hưởng đến tính ứng dụng của nó.
  • Việc bổ sung Activity Monitor bằng các truy vấn DMV, sp_WhoIsActive, Extended Events và các công cụ của bên thứ ba có thể tạo ra một chiến lược giám sát toàn diện.
  • Thực hiện theo các biện pháp tốt nhất về khoảng thời gian làm mới, đóng Activity Monitor khi không sử dụng và kết hợp nhiều ngăn để so sánh sẽ tối đa hóa giá trị của nó đồng thời giảm thiểu tác động.

13.2 Giám sát hoạt động như một phần của bộ công cụ của bạn

Activity Monitor nên là công cụ phản hồi đầu tiên của bạn cho các cuộc điều tra hiệu suất, chứ không phải là công cụ duy nhất. Điểm mạnh của nó nằm ở khả năng hiển thị tức thời trong quá trình khắc phục sự cố đang diễn ra, giúp bạn nhanh chóng xác định xem cơ sở dữ liệu có phải là điểm nghẽn hay không và xác định những khía cạnh cụ thể nào cần được điều tra sâu hơn.

Hãy hình dung Activity Monitor tương tự như bảng điều khiển trên xe hơi của bạn—nó sẽ ngay lập tức báo hiệu nếu có vấn đề gì đó và giúp bạn xác định khu vực cần quan tâm. Cũng giống như bảng điều khiển của xe không cho bạn biết chính xác lý do tại sao đèn kiểm tra động cơ sáng, Activity Monitor chỉ ra các vấn đề mà không phải lúc nào cũng tiết lộ toàn bộ nguyên nhân gốc rễ của chúng. Việc phân tích sâu hơn này đòi hỏi các công cụ và chuyên môn bổ sung.

Tích hợp Activity Monitor vào bộ công cụ rộng hơn bao gồm phân tích kế hoạch thực thi, theo dõi thống kê thời gian chờ, giải pháp giám sát lịch sử và các phương pháp tối ưu hóa hiệu suất. Sử dụng kết hợp với các chiến lược lập chỉ mục phù hợp, kỹ thuật tối ưu hóa truy vấn và lập kế hoạch năng lực.

13.3 Tiếp tục hành trình học tập của bạn

Thành thạo Activity Monitor chỉ là một bước để trở thành một quản trị viên cơ sở dữ liệu hiệu quả. Hãy tiếp tục trau dồi kỹ năng của bạn bằng cách:

  • Học cách diễn giải các kế hoạch thực hiện và xác định các hoạt động không hiệu quả
  • Sự hiểu biết SQL Server chờ đợi thống kê và ý nghĩa của chúng
  • Nghiên cứu thiết kế chỉ mục và kỹ thuật tối ưu hóa
  • Khám phá SQL ServerKiến trúc của 's và cách nó xử lý các truy vấn
  • Thực hành các phương pháp khắc phục sự cố có hệ thống
  • Xây dựng kinh nghiệm với Sự kiện mở rộng để theo dõi chi tiết
  • Hiểu các mức độ cô lập giao dịch và tác động của chúng đến hiệu suất

Mỗi cuộc điều tra hiệu suất với Activity Monitor sẽ dạy cho bạn điều gì đó mới về cách SQL Server Tìm hiểu cách thức hoạt động và cách các ứng dụng tương tác với cơ sở dữ liệu. Ghi lại những phát hiện của bạn, chia sẻ kiến ​​thức với đồng nghiệp và xây dựng thư viện các giải pháp cho các vấn đề thường gặp.

13.4 Tài nguyên Bổ sung

Mở rộng kiến ​​thức của bạn với những nguồn tài nguyên có giá trị sau:

14. Các câu hỏi thường gặp (FAQ)

Q: là gì SQL Server Giám sát hoạt động?

A: SQL Server Activity Monitor là một công cụ tích hợp sẵn trong SQL Server Studio quản lý hiển thị thông tin thời gian thực về các tiến trình đang chạy trên SQL Server Phiên bản này cung cấp bảng điều khiển đồ họa với năm khung hiển thị các khía cạnh khác nhau của hoạt động máy chủ, bao gồm mức sử dụng bộ xử lý, tác vụ đang chờ, tốc độ I/O, phiên hoạt động và các truy vấn tốn kém.

H: Làm thế nào để mở Activity Monitor trong SSMS?

A: Bạn có thể mở Activity Monitor bằng bốn phương pháp: (1) Nhấp vào biểu tượng Activity Monitor trên thanh công cụ SSMS, (2) Nhấp chuột phải vào SQL Server tên thể hiện trong Object Explorer và chọn Hoạt động giám sát, (3) Báo chí Ctrl + Khác + A, hoặc (4) Cấu hình SSMS để tự động khởi chạy nó thông qua CÔNG CỤ -> Tùy chọn -> Môi trường -> Startup.

H: Tôi cần những quyền gì để sử dụng Activity Monitor?

A: Bạn cần XEM TRẠNG THÁI MÁY CHỦ quyền xem hầu hết thông tin của Trình giám sát hoạt động. Đối với ngăn Nhập/Xuất tệp dữ liệu, bạn cũng cần một trong hai điều kiện sau: TẠO NÊN CƠ SỞ DỮ LIỆU, THAY ĐỔI BẤT KỲ CƠ SỞ DỮ LIỆU NÀO, hoặc là XEM BẤT KỲ ĐỊNH NGHĨA NÀO quyền. Nếu không có những quyền này, Activity Monitor có thể mở nhưng hiển thị các khung trống.

H: Tại sao Activity Monitor của tôi bị tạm dừng hoặc không hoạt động?

A: Activity Monitor thường tạm dừng do sự cố cấp phép, phiên bản SSMS lỗi thời hoặc kết nối từ xa bị vô hiệu hóa. Để giải quyết: (1) Cập nhật lên phiên bản SSMS mới nhất, (2) Xác minh bạn có quyền VIEW SERVER STATE, (3) Kiểm tra xem kết nối từ xa đã được bật trên SQL Server ví dụ, (4) Khởi động lại SSMS và (5) Thử kết nối bằng xác thực Windows thay vì xác thực SQL nếu có thể.

H: Sự khác biệt giữa Activity Monitor và sp_WhoIsActive là gì?

A: Activity Monitor là một công cụ đồ họa được tích hợp sẵn trong SSMS, cung cấp các khung được sắp xếp hợp lý cho các khía cạnh giám sát khác nhau. sp_WhoIsActive là một thủ tục lưu trữ miễn phí do cộng đồng tạo ra, trả về thông tin phiên chi tiết trong một tập kết quả duy nhất với các loại chờ, chi tiết chặn và tùy chọn tùy chỉnh cụ thể hơn Activity Monitor. Activity Monitor tốt hơn cho việc khám phá trực quan, trong khi sp_WhoIsActive vượt trội trong việc giám sát theo kịch bản và cung cấp thông tin chi tiết hơn.

H: Activity Monitor có ảnh hưởng đến hiệu suất máy chủ không?

A: Có, Activity Monitor có chi phí phát sinh đáng kể vì nó truy vấn DMV hệ thống tại mỗi chu kỳ làm mới. Tác động này tăng lên khi tần số làm mới thấp hơn—Microsoft cảnh báo rằng chu kỳ làm mới dưới 10 giây có thể ảnh hưởng đến hiệu suất máy chủ. Luôn tắt Activity Monitor khi không sử dụng và cân nhắc chu kỳ làm mới 30-60 giây trên các máy chủ sản xuất đang hoạt động dưới tải nặng.

H: Tôi có thể lấy dữ liệu Activity Monitor bằng T-SQL không?

A: Có, Activity Monitor truy vấn các chế độ xem quản lý động hệ thống như sys.dm_exec_requests, sys.dm_exec_sessions, sys.dm_os_wait_stats và sys.dm_exec_query_stats. Bạn có thể truy vấn trực tiếp các DMV này bằng T-SQL để lấy thông tin tương đương theo chương trình, cho phép tạo các tập lệnh giám sát tùy chỉnh và thu thập dữ liệu tự động.

H: Khoảng thời gian làm mới mặc định là bao lâu?

A: Khoảng thời gian làm mới mặc định là 10 giây. Bạn có thể thay đổi khoảng thời gian này bằng cách nhấp chuột phải vào bất kỳ đâu trong khung Tổng quan, chọn Làm mới khoảng thời gianvà chọn từ các tùy chọn được xác định trước: 1 giây, 5 giây, 10 giây, 30 giây, 1 phút hoặc 1 giờ. Khoảng thời gian ngắn hơn cung cấp nhiều chế độ xem theo thời gian thực hơn nhưng lại làm tăng chi phí giám sát.

Hỏi: Làm thế nào để tự động mở Trình quản lý hoạt động (Activity Monitor) khi khởi động SSMS?

A: Cấu hình khởi chạy tự động thông qua các tùy chọn SSMS: Điều hướng đến CÔNG CỤ -> Tùy chọn -> Môi trường -> Startup, Sau đó chọn Mở Object Explorer và Activity Monitor từ Lúc khởi động Trình đơn thả xuống. Activity Monitor sẽ tự động mở mỗi khi bạn kết nối với máy chủ trong SSMS.

H: Những hạn chế của Activity Monitor là gì?

A: Các hạn chế chính bao gồm: (1) Không có khả năng lưu trữ dữ liệu lịch sử hoặc xu hướng, (2) Các loại chờ được nhóm thành các danh mục thay vì được hiển thị cụ thể, (3) Một số loại chờ như CXPACKET có thể không xuất hiện, (4) Ảnh chụp nhanh tại một thời điểm có thể bỏ sót các sự cố tạm thời, (5) Chi phí giám sát có thể ảnh hưởng đến các máy chủ bận, (6) Không có cơ chế cảnh báo để giám sát chủ động và (7) Không thể tổng hợp dữ liệu trên nhiều SQL Server trường hợp. Đối với những nhu cầu này, hãy bổ sung Activity Monitor bằng Extended Events, bộ thu thập dữ liệu hoặc công cụ giám sát của bên thứ ba.


Lưu ý

Nguyên Sinh là quản trị viên cơ sở dữ liệu cao cấp (DBA) với hơn 10 năm kinh nghiệm trong SQL Server môi trường và quản lý cơ sở dữ liệu doanh nghiệp. Ông đã giải quyết thành công hàng trăm tình huống khôi phục cơ sở dữ liệu trên khắp các tổ chức dịch vụ tài chính, chăm sóc sức khỏe và sản xuất.

Yuan chuyên về SQL Server khôi phục cơ sở dữ liệu, giải pháp khả dụng caovà tối ưu hóa hiệu năng. Kinh nghiệm thực tiễn sâu rộng của ông bao gồm quản lý cơ sở dữ liệu nhiều terabyte, triển khai Always On Availability Groups và phát triển các chiến lược sao lưu và phục hồi tự động cho các hệ thống kinh doanh quan trọng.

Nhờ chuyên môn kỹ thuật và phương pháp thực tế của mình, Yuan tập trung vào việc tạo ra các hướng dẫn toàn diện giúp quản trị viên cơ sở dữ liệu và chuyên gia CNTT giải quyết các vấn đề phức tạp SQL Server thách thức một cách hiệu quả. Anh ấy luôn cập nhật những thông tin mới nhất SQL Server phát hành và công nghệ cơ sở dữ liệu đang phát triển của Microsoft, thường xuyên kiểm tra các tình huống phục hồi để đảm bảo các khuyến nghị của ông phản ánh những phương pháp hay nhất trong thực tế.

Có thắc mắc về SQL Server phục hồi hoặc cần thêm hướng dẫn khắc phục sự cố cơ sở dữ liệu? Yuan hoan nghênh phản hồi và đề xuất để cải thiện các nguồn lực kỹ thuật này.

Chia sẻ ngay bây giờ: