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

Khắc phục sự cố tắc nghẽn I / O trên đĩa

Máy chủ của bạn có bị quá nhiều cảnh báo I / O không? Nếu vậy, bạn có nên lo lắng về sự suy giảm hiệu suất của máy chủ không? Làm thế nào để chẩn đoán tốt nhất vấn đề cơ bản và phá vỡ tắc nghẽn I / O?

I / O Stall Time Alarm của Spotlight Cloud là một chỉ báo tốt về sự tắc nghẽn I / O. Nó tăng lên khi thời gian chờ trung bình cho mỗi hoạt động của tệp cơ sở dữ liệu vượt quá ngưỡng cảnh báo. Cảnh báo sử dụng dữ liệu từ sys.dm_io_virtual_file_stats của DMV để tính toán. Nó sử dụng giá trị trung bình có được sau năm lần thu thập trong 15 phút qua, vì vậy, bạn sẽ không bị cảnh báo về mức tăng đột biến. Mô tả cảnh báo bao gồm tên tệp ảo cơ sở dữ liệu, tên cơ sở dữ liệu và lượng thời gian chờ trung bình cho mỗi thao tác I / O.

Bốn gợi ý dễ dàng để chẩn đoán các vấn đề liên quan đến I / O trong Spotlight Cloud:

1. Kiểm tra xem điều gì đang góp phần vào việc tiêu thụ I / O.

Tiêu thụ I / O là một dấu hiệu của độ trễ của hệ thống con đĩa có thể do bộ nhớ hoặc áp lực CPU, các truy vấn được viết kém hoặc không có sự kết hợp tốt giữa các chỉ mục. Vào thời điểm báo động:

Trước tiên, hãy tận dụng bảng điều khiển bên phải Thuộc tính của trang Báo thức để xem dữ liệu liên quan đến Báo thức thông minh:
1. Thông tin chi tiết về cảnh báo bao gồm tên tệp, thời gian chờ I / O trung bình trên tệp và thời lượng báo thức

2. Phân tích dữ liệu thu thập được trên biểu đồ xu hướng kéo dài trong vài giờ qua



Tiếp theo, chẩn đoán sự cố bằng cách nhấn nút Chẩn đoán. Điều đó sẽ dẫn bạn đến bảng điều khiển I / O by File tập trung vào tệp được nhấn mạnh. Bạn có thể sử dụng bảng điều khiển này và các bảng điều khiển khác để chẩn đoán thêm:

1. I / O by File - Xác định các tệp bị ảnh hưởng trực tiếp bởi I / O
2. Trình phân tích khối lượng công việc - Các câu lệnh SQL hàng đầu và hàng loạt TSQL tiêu thụ nhiều I / O nhất
3. Phiên - Phiên tại thời điểm có hoạt động trên đĩa
4. Kiểm tra sức khỏe - Xem lại nếu còn thiếu các chỉ số


2. Kiểm tra các tệp đang chờ hoạt động I / O.

Bảng điều khiển I / O by File xác định các tệp đang chờ hoạt động I / O. Kiểm tra các thống kê I / O sau:
1. Ghi chú các cột liên quan đến I / O:Tỷ lệ I / O, Tỷ lệ đọc / ghi và Tỷ lệ chờ

2. Sắp xếp các tệp theo thời gian chờ trung bình của chúng cho mỗi / IO bằng cách nhấn vào danh sách thả xuống màu xanh lam ngay phía trên cột Tệp lôgic.

3. Xem hoạt động Đọc và Ghi trong giờ trước được tạo trên tệp hiển thị trên bảng bên phải.

4. Theo tùy chọn, mở rộng khung thời gian để kiểm tra xem đây có phải là hành vi bình thường trên tệp hay không.

5. Nếu bạn thấy một số tệp theo thời gian bị cùng một vấn đề và chia sẻ vị trí hoặc đĩa, hãy cân nhắc điều chỉnh vị trí của chúng và so sánh tranh chấp IO giữa các đĩa hoặc vị trí để giảm bớt vấn đề về độ trễ của đĩa.


6. Trong trường hợp các tệp cơ sở dữ liệu Tempdb là một yếu tố nổi bật, hãy sử dụng bảng điều khiển Cách sử dụng TempDB để xem hoạt động dựa trên cơ sở dữ liệu:

một. Tệp cơ sở dữ liệu Tempdb và số liệu thống kê của chúng
b. Phiên sử dụng tempdb
c. Các bảng và chỉ mục hàng đầu được tạo trong tempdb



3. Tìm các câu lệnh SQL có thể đang thực hiện số lượng lớn I / O logic.

Bảng điều khiển của Trình phân tích khối lượng công việc hiển thị I / O sử dụng SQL nhiều nhất:

1. Nhấp vào tài nguyên I / O ở biểu ngữ trên cùng và mở rộng nút Câu lệnh SQL từ cây kích thước để xem 25 I / O sử dụng SQL hàng đầu trong khoảng thời gian.

2. Tập trung vào một câu lệnh và mở rộng bảng Thuộc tính câu lệnh SQL ở phía bên phải để xem chi tiết về kế hoạch truy vấn và SQL.

3. Tải câu lệnh SQL trong SSMS bằng cách sử dụng tùy chọn ‘Open in SSMS’ và sử dụng công cụ plugin Tuning Pack để phân tích kế hoạch hoặc để nó viết lại một câu lệnh tối ưu hơn.


4. Tập trung vào nút ‘Câu lệnh SQL’ của cây Thứ nguyên để liệt kê các câu lệnh SQL. Sắp xếp các phiên theo IO Wait hoặc Logical Reads. Sử dụng bảng So sánh với cha ở bên phải để so sánh IO chờ của một SQL đơn lẻ với phần còn lại của SQL trong trường hợp chiếm IO. I / O hợp lý có thể dẫn đến I / O vật lý không cần thiết.


4. Kiểm tra phiên SQL Server nào đang tạo ra nhiều hoạt động trên đĩa.

Trang tổng quan Phiên hiển thị các phiên được mở trong phiên bản. Để xem các phiên đang tạo ra số lượng lớn hoạt động trên đĩa, hãy kiểm tra số liệu thống kê liên quan đến I / O và sắp xếp theo chúng.
1. Số liệu thống kê liên quan đến I / O chỉ cho bạn đúng hướng:Tổng số I / O, Số lần đọc logic, Số lần đọc vật lý và Yêu cầu I / O

2. Bảng điều khiển bên phải của tab Phiên hiển thị số liệu thống kê bổ sung cùng với SQL cơ bản



Sử dụng bảng Tempdb để xem các phiên sử dụng cơ sở dữ liệu Tempdb:
1. Sử dụng bảng điều khiển Tempdb để xác định các phiên và đối tượng sử dụng cơ sở dữ liệu

2. Sử dụng bảng điều khiển Sử dụng Tempdb để xem tất cả các phiên trong một khoảng thời gian


Chịu trách nhiệm về độ trễ I / O bằng cách tận dụng khả năng chẩn đoán của Đám mây Spotlight!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kích hoạt MSDTC trên SQL Server?

  2. Các cột tổng hợp động trong SQL Server

  3. Cập nhật dữ liệu thông qua một hàm có giá trị bảng trong SQL Server

  4. Khắc phục “Lỗi tràn số học khi chuyển đổi IDENTITY thành kiểu dữ liệu…” trong SQL Server

  5. Cách tìm kiếm một chuỗi trong cơ sở dữ liệu của SQL Server