Các vấn đề về hiệu suất cơ sở dữ liệu không phải là hiếm. May mắn thay, thường có một giải pháp khá trực quan cho hầu hết các vấn đề. Điều quan trọng nhất mà DBA có thể làm để khắc phục sự cố nhanh chóng và cải thiện hiệu suất SQL Server là đảm bảo chiến lược giám sát hiệu suất của bạn được cập nhật và phù hợp với nhu cầu giám sát cơ sở dữ liệu của bạn. Nếu không, đã đến lúc phải hành động.
Bước đầu tiên để cải thiện việc giám sát cơ sở dữ liệu là đánh giá tình hình hiện tại của bạn. Bạn sẽ không biết khả năng giám sát của mình đang thiếu ở đâu hoặc liệu việc giám sát có đang cải thiện bất kỳ vấn đề nào về hiệu suất của bạn hay không nếu bạn không thực hiện phép đo cơ bản về điểm xuất phát của mình.
Để đặt đường cơ sở về hiệu suất của mình, bạn sẽ cần phải đánh giá tình trạng của cơ sở dữ liệu SQL Server của mình bằng cách tự hỏi mình một số câu hỏi:
Các truy vấn có được tối ưu hóa không? Các truy vấn hoạt động kém hiệu quả là một cách chắc chắn để làm chậm hiệu suất. Có nhiều thủ thuật bạn có thể thử để xóa các truy vấn của mình, nhưng tùy chọn tốt nhất của bạn là triển khai trình tối ưu hóa truy vấn sẽ phân tích và viết lại các truy vấn của bạn cho đến khi tìm thấy một truy vấn nhanh hơn.
Các chỉ mục có ở trạng thái tốt không? Việc lập chỉ mục được thực hiện đúng cách sẽ tăng tốc độ truy xuất dữ liệu. Tuy nhiên, có một số vấn đề phổ biến có thể làm chậm hiệu suất, bao gồm cài đặt hệ số lấp đầy và chia tách trang không hiệu quả. Cách tốt nhất để tránh những vấn đề về hiệu suất này là không đặt giá trị hệ số lấp đầy trên toàn hệ thống và xem xét nhu cầu của từng chỉ mục riêng lẻ.
Nhiều dữ liệu có bị phân mảnh không? Dữ liệu bị phân mảnh ảnh hưởng đến hiệu suất bằng cách đặt quá nhiều không gian trống trên một trang hoặc bằng cách thêm trang. Máy chủ phải quét và tìm kiếm dữ liệu bị phân mảnh, điều này khiến cơ sở dữ liệu chạy chậm. Chạy Xây dựng lại hoặc Tổ chức lại có thể làm sạch phân mảnh.
Có thứ gì đó ăn CPU không? Cơ sở dữ liệu chậm lại khi CPU phải chịu sức ép từ nhiều tài nguyên. Đánh giá tải CPU và quyết định xem vấn đề là bạn cần thêm CPU hay có tài nguyên không hiệu quả sử dụng nhiều CPU hơn mức cần thiết.
Sau khi bạn có ảnh chụp nhanh về vạch xuất phát, bạn sẽ có ý tưởng tốt hơn về các loại cải tiến giám sát mà bạn cần tập trung vào. Dưới đây là năm cách bạn có thể cải thiện việc giám sát cơ sở dữ liệu SQL Server của mình.
1. Đánh giá khoảng thời gian giám sát của bạn và lọc dữ liệu thường xuyên nhất có thể
Các công cụ giám sát hiệu suất cung cấp vô số lựa chọn về chỉ số nào cần theo dõi, thời điểm lấy dữ liệu và thời gian lưu giữ dữ liệu. Nếu bạn đang theo dõi nhiều trường hợp, lượng dữ liệu bạn đang thu thập có khả năng đáng kinh ngạc (và tốn kém để lưu trữ).
Để giữ cho dữ liệu của bạn ở mức có thể quản lý được, đừng thu thập dữ liệu thường xuyên hơn mức bạn phải làm và chỉ giữ dữ liệu đủ lâu để phát hiện xu hướng. Khi bạn đã ghi lại bất kỳ điều gì quan tâm, hãy lưu trữ hoặc xóa dữ liệu.
2. Kiểm tra xem các truy vấn của bạn có đang hoạt động hiệu quả không
Có rất nhiều nơi để các vấn đề về hiệu suất ẩn trong SQL Server. Vì các ứng dụng cơ sở dữ liệu thường xuyên thực thi các truy vấn SQL, nên việc đánh giá trạng thái của các truy vấn của bạn là một nơi tuyệt vời để bắt đầu loại bỏ các vấn đề.
Ví dụ:theo dõi cách truy vấn hoạt động theo thời gian sẽ giúp bạn tách biệt bất kỳ truy vấn nào đang sử dụng nhiều tài nguyên hơn bình thường. Khi bạn đã xác định được các truy vấn có vấn đề, bạn có thể chạy từng truy vấn để xác định nguồn gốc cụ thể của vấn đề và sửa chữa nó.
3. Xem lại bộ đếm và cài đặt Perfmon
SQL Server Performance Monitor (Perfmon) là một công cụ có giá trị giúp các DBA cô lập các điểm yếu trong cơ sở dữ liệu SQL Server của họ. Perfmon cho phép bạn thiết lập bộ đếm hiệu suất cho từng máy chủ của mình để xác định tắc nghẽn CPU, hiệu suất đĩa, sự cố bộ nhớ, v.v.
Bài viết này của Brent Ozar giải thích cách bắt đầu sử dụng Perfmon và mô tả một số phương pháp hay nhất.
4. Định cấu hình cảnh báo của bạn dựa trên mức độ nghiêm trọng
Mặc dù có nhiều cấu hình cảnh báo có sẵn, nhưng tốt nhất bạn nên chọn lọc khi định cấu hình cảnh báo để bạn không bị cảnh báo mệt mỏi. Một nguyên tắc chung là thiết lập cảnh báo cho các sự cố Mức độ nghiêm trọng 17 trở lên và cho các thông báo lỗi 823, 824 và 825 — nói cách khác, những sự cố đó có thể dẫn đến việc máy chủ của bạn ngoại tuyến, hỏng dữ liệu nghiêm trọng hoặc mất dữ liệu.
5. Tận dụng tất cả các tính năng quản lý cảnh báo mà công cụ giám sát hiệu suất SQL Server của bạn cung cấp
Các giải pháp giám sát SQL Server cung cấp một loạt các tính năng quản lý. Hãy dành chút thời gian để tìm hiểu các tính năng của công cụ và đảm bảo rằng bạn đang nhận được giá trị cao nhất cho khoản đầu tư của mình.
Một số tính năng cần tìm sẽ giúp bạn cải thiện quy trình giám sát hiệu suất của mình là:
Quy tắc: Cho phép bạn tùy chỉnh báo thức nào được kích hoạt và khi nào
Chẩn đoán: Cho bạn biết có sự cố, sau đó đưa ra các bản sửa lỗi có thể có
Ưu tiên vấn đề: Trước tiên, hãy tập trung sự chú ý của bạn vào những vấn đề có mức độ nghiêm trọng cao nhất
Cảnh báo di động: Cho phép bạn truy cập, đánh giá và bắt đầu xử lý cảnh báo từ bất kỳ đâu vào bất kỳ lúc nào
Giảm tiếng ồn: Giúp bạn tránh mệt mỏi khi báo thức bằng cách chỉ nhận những thông báo bạn cần