0

Index Maintenance - Lên plan bảo trì Index?

Index là chìa khóa để cải thiện hiệu suất truy vấn, nhưng không phải lúc nào cũng cần "đụng" vào chúng. Vậy khi nào thì nên thực hiện bảo trì index? Dưới đây là một vài dấu hiệu:

  • Fragmentation tăng cao: Khi mức phân mảnh vượt quá 30%, việc rebuild/reorganize là cần thiết để đảm bảo truy xuất dữ liệu nhanh hơn.
  • Hiệu suất truy vấn giảm: Nếu thấy các truy vấn chậm dần, có thể đã đến lúc kiểm tra lại các index có sẵn, thêm mới hoặc điều chỉnh chúng.
  • Statistical Outdated: Nếu statistics không được cập nhật, có thể dẫn đến việc SQL Server chọn plan không tối ưu.
  • Dữ liệu thay đổi liên tục: Với các bảng có dữ liệu thay đổi thường xuyên, cần bảo trì index để tránh phân mảnh quá nhiều.

Đừng quên lập lịch bảo trì định kỳ và chỉ can thiệp khi cần thiết, tránh việc bảo trì quá mức gây tốn tài nguyên hệ thống!

Index Missing - Create Indexes: Hàng tháng vào ban đêm

Tạo index mới dựa trên các đề xuất từ SQL Server hoặc các truy vấn chậm.

- Sử dụng DMV để phát hiện index bị thiếu và xác định những index có Potential Impact cao.

- Kiểm tra Execution Plan của các truy vấn quan trọng để chắc chắn rằng index sẽ mang lại hiệu quả.

Index Redundant, Replicate - Remove/Edit Indexe: Hàng tháng vào ban đêm

Xóa các index dư thừa hoặc trùng lặp để tối ưu dung lượng và giảm chi phí cập nhật index.

- Sử dụng DMV sys.dm_db_index_usage_stats để kiểm tra những index ít hoặc không sử dụng.

- Kiểm tra index nào bị trùng lặp về chức năng (ví dụ: các index có cùng cột với thứ tự khác nhau).

Heap Table, Index Scan - Xem xét và chỉnh sửa: Hàng tháng

Xem xét table không có index (Heap tables) và những truy vấn thực hiện Index Scan thay vì Index Seek để tối ưu hóa hiệu suất truy vấn.

- Table heap có thể không hiệu quả nếu cần tìm kiếm hoặc truy xuất nhiều hàng. Chuyển sang Clustered Index nếu cần.

- Kiểm tra các truy vấn sử dụng Index Scan và xem có thể chuyển sang Index Seek bằng cách tối ưu hóa index không.

Index Physical Statistic Report - Rebuild/Reorganize/Update Statistics: Hàng tháng vào ban đêm

Rebuild: Dùng khi mức độ phân mảnh trên 30%.

Reorganize: Dùng khi mức độ phân mảnh dưới 30%.

Update statistics: Đảm bảo SQL Server có thông tin mới nhất về dữ liệu.

- Sử dụng query sys.dm_db_index_physical_stats để kiểm tra mức độ phân mảnh.

- Chạy UPDATE STATISTICS để đảm bảo bộ tối ưu hóa truy vấn có dữ liệu chính xác về các table.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí