Tìm hiểu các loại wait type phổ biến trong phân tích hiệu năng trên SQL Server

Trong bài viết này Stanford sẽ tiếp tục giới thiệu đến các bạn học quản trị sql server làm việc với các wait type phổ biến trong phân tích hiệu năng trên hệ quản trị SQL Server mà bạn cần phải biết.

Trong SQL Server, wait types là một phần quan trọng trong việc phân tích hiệu năng hệ thống. Chúng phản ánh lý do tại sao một tác vụ (task) phải chờ đợi để được thực thi, từ đó giúp quản trị viên xác định các điểm nghẽn tài nguyên. Dưới đây là tổng quan chi tiết về các loại wait type phổ biến và cách sử dụng chúng trong phân tích hiệu năng:

Wait Statistics là gì?

Khi một truy vấn được gửi đến SQL Server, nếu không thể thực thi ngay do thiếu tài nguyên (CPU, memory, I/O, lock...), nó sẽ bị đưa vào hàng đợi. SQL Server ghi lại:

  • Wait time: thời gian chờ.
  • Wait type: loại tài nguyên bị chờ.

Thông tin này được lưu trong các DMV (Dynamic Management Views):

  • sys.dm_os_waiting_tasks: các tác vụ đang chờ tại thời điểm hiện tại.
  • sys.dm_os_wait_stats: thống kê tổng thời gian chờ theo loại kể từ khi SQL Server khởi động hoặc lần cuối được reset.



Các nhóm wait type phổ biến

Dưới đây là một số nhóm wait type thường gặp và ý nghĩa của chúng:

- I/O waits: Ví dụ PAGEIOLATCH_* Chờ đọc dữ liệu từ đĩa vào bộ nhớ. Khi có loại wait này xảy ra phương án xử lý là Kiểm tra tốc độ I/O, tối ưu chỉ mục.

- CPU waits: Loại SOS_SCHEDULER_YIELD xảy ra khi Task nhường CPU cho task khác. Nguyên nhân có thể do CPU quá tải.

Memory waits: Ví dụ RESOURCE_SEMAPHORE, đây là loại chờ cấp phát bộ nhớ cho truy vấn. Phương án xử lý đó là Tối ưu truy vấn, tăng RAM.

Lock waits: Bao gồm các loại như LCK_M_IX, LCK_M_S. Các loại wait này xuất hiện do chờ giải phóng khóa trên dữ liệu. Phương án xử lý đó là Kiểm tra deadlock, tối ưu truy vấn.

Parallelism waits: Bao gồm CXPACKET, CXCONSUMER. Các loại wait này xuất hiện khi chờ xử lý song song. Phương án xử lý đó là Tối ưu cấu hình MAXDOP.

Network waits: Ví dụ ASYNC_NETWORK_IO đây là wait type xuất hiện khi chờ client đọc dữ liệu. Phương án xử lý là Kiểm tra ứng dụng client.
- Log waits: WRITELOG đây là loại wait chờ ghi log giao dịch. Phương án xử lý đó là Kiểm tra tốc độ ghi log.

Cách phân tích hiệu năng bằng wait statistics

1. Truy vấn DMV:

SELECT * FROM sys.dm_os_wait_stats ORDER BY wait_time_ms DESC;
2. Lọc các wait type không đáng kể:
Bỏ qua các loại như SQLTRACE_*, BROKER_*, WAITFOR, vì chúng không ảnh hưởng đến hiệu năng.
3. Phân tích theo nhóm:
Nhóm các wait type theo loại tài nguyên để xác định điểm nghẽn.
4. Kết hợp với execution plan và query store:
Để xác định truy vấn nào gây ra wait type nhiều nhất.

Như vậy qua bài viết này Stanford đã giúp các bạn học quản trị sql server tìm hiểu về các loại wait statistics trong phân tích hiệu năng trên SQL Server. Chúc các bạn học tập tốt !

Bên cạnh đó nếu bạn đang muốn được đào tạo bài bản từ cơ bản đến nâng cao có thể tham gia ngay khóa học sql cùng chuyên gia giàu kinh nghiệm Stanford tại đây: http://bit.ly/2SLPYFF và nhận ưu đãi hấp dẫn của Stanford trong thời gian này. Bạn có thể gọi theo hotline: 0963 723 236 - 0866 586 366 để được gọi lại tư vấn trực tiếp nhé.

=============================
☎ STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 - 0866 586 366
Website: https://stanford.com.vn
Facebook: http://bit.ly/2FN0TYb
Youtube: http://bit.ly/2TkKT7I

Tags: tìm hiểu wait statistics, tối ưu statistics trong sql server