Duy trì một SQL Server hiệu suất cao là điều cần thiết không chỉ đối với hoạt động của tổ chức bạn mà còn đối với khách hàng của bạn. Khi máy chủ của bạn phản hồi chậm — hoặc hoàn toàn không phản hồi — bạn sẽ mất việc kinh doanh. Dưới đây là ba lĩnh vực chính cần theo dõi chặt chẽ để đảm bảo hiệu suất SQL Server của bạn là tối ưu và các cách để cải thiện hiệu suất nếu các số liệu của bạn cho thấy bạn có vấn đề.
Chỉ mục
Nếu các chỉ mục của bạn hoạt động tốt, chúng sẽ góp phần tạo nên một hệ thống chạy nhanh và trơn tru. Tuy nhiên, nếu các chỉ mục của bạn mắc phải bất kỳ vấn đề chung nào trong số này, bạn có thể thấy hiệu suất SQL Server của mình bị ảnh hưởng tiêu cực.
Số liệu cần theo dõi:hệ số lấp đầy
Hệ số lấp đầy là một cài đặt trong SQL Server hướng dẫn các chỉ mục điền vào mỗi trang X phần trăm. Có vẻ trực quan rằng bạn muốn lấp đầy mỗi trang 100 phần trăm, nhưng trên thực tế, việc lấp đầy các trang có thể gây ra hiện tượng tách trang. Nếu quản trị viên thêm một hàng bổ sung vào trang đầy đủ, hàng mới sẽ đẩy khoảng một nửa số hàng hiện có sang trang mới và hàng mới được thêm vào cuối trang đầu tiên.
Tách trang có thể gây ra các vấn đề về hiệu suất do số lượng hoạt động I / O tăng lên và khả năng bị phân mảnh. Tuy nhiên, quá nhiều không gian trên một trang cũng có thể ảnh hưởng đến hiệu suất vì tài nguyên đang được sử dụng một cách không cần thiết.
Để nhận được kết quả hiệu suất tốt nhất từ cài đặt hệ số lấp đầy của bạn, đừng đặt giá trị trên toàn hệ thống. Xem xét từng chỉ mục của bạn và đặt hệ số lấp đầy ở mức thích hợp cho từng chỉ mục. Ví dụ:các chỉ mục thường xuyên bị phân mảnh cần một giá trị hệ số lấp đầy khác với các chỉ mục hầu như không được sử dụng.
Số liệu cần theo dõi:phân mảnh
Phân mảnh chỉ mục xảy ra khi người dùng thêm và xóa các bản ghi. Di chuyển mọi thứ xung quanh là một phần bình thường trong hoạt động hàng ngày của cơ sở dữ liệu, nhưng theo thời gian, sự phân mảnh ảnh hưởng đến hiệu suất. Sự phân mảnh có thể gây ra một số vấn đề:
- Quá nhiều không gian trống trên quá nhiều trang làm chậm quá trình quét và sử dụng bộ nhớ một cách không cần thiết
- Các trang mới được thêm không theo thứ tự nên máy chủ sẽ mất nhiều thời gian hơn để tìm dữ liệu
Khi phân mảnh bắt đầu ảnh hưởng đến hiệu suất, bạn sẽ cần chạy Xây dựng lại hoặc Tổ chức lại để dọn dẹp các chỉ mục bị phân mảnh. Chạy Rebuild sẽ tạo một chỉ mục mới và loại bỏ không gian trống thừa. Tổ chức lại sắp xếp các trang lá theo thứ tự để máy chủ có thể tìm thấy dữ liệu dễ dàng hơn.
Bộ đệm đệm
Khi SQL Server có thể đọc các trang trong bộ đệm đệm, thời gian phản hồi của bạn sẽ nhanh hơn. Hiệu suất bị ảnh hưởng khi máy chủ phải truy cập đĩa để tìm một trang vì nó phải trải qua một loạt các bước trước khi lưu trang vào bộ đệm và sau đó đọc nó. Có một số chỉ số bạn có thể theo dõi sẽ giúp giữ cho bộ đệm đệm hoạt động ở hiệu suất cao nhất.
Số liệu cần theo dõi:tuổi thọ trang
Tuổi thọ trang (PLE) là khoảng thời gian một trang nằm trong bộ đệm cache mà không được gọi trước khi nó được gửi trở lại đĩa. Tăng PLE sẽ cải thiện hiệu suất, nhưng nó cũng sử dụng bộ nhớ có thể cần cho các chức năng khác. Nếu bạn định điều chỉnh PLE, bạn cần tìm ra dung lượng bộ nhớ bạn có thể sử dụng mà không ảnh hưởng đến hiệu suất ở nơi khác.
Số liệu cần theo dõi:tỷ lệ truy cập bộ nhớ đệm
Tỷ lệ truy cập bộ nhớ đệm của bộ đệm là tỷ lệ phần trăm các trang nằm trong vùng đệm so với tất cả các yêu cầu trang. Tỷ lệ truy cập bộ nhớ đệm phải trên 90 để có hiệu suất tốt nhất (tức là Máy chủ SQL không phải đọc từ đĩa). Hãy cẩn thận khi phân tích dữ liệu tỷ lệ truy cập bộ nhớ đệm bộ đệm của bạn. Một sự sụt giảm nhỏ trong tỷ lệ có thể không chỉ ra một vấn đề thực sự. Phân tích dữ liệu cùng với PLE để xác định xem có tồn tại vấn đề hiệu suất thực tế hay không.
Tối ưu hóa Truy vấn
Các truy vấn chậm và hoạt động kém là một trong những vấn đề về hiệu suất SQL Server phổ biến nhất. Có nhiều lý do có thể khiến các truy vấn của bạn không chạy tốt, vì vậy có thể khó xác định nguyên nhân chính xác. Nhưng có một số điều bạn có thể thử sớm trong quá trình điều tra có thể cải thiện hiệu suất truy vấn với nỗ lực tối thiểu.
Số liệu cần theo dõi:quét chỉ mục
Kiểm tra tình trạng của SQL Server phải là một phần thường xuyên trong các nhiệm vụ DBA của bạn. Khi các truy vấn chạy chậm, hãy dành thêm một chút thời gian với trình tối ưu hóa truy vấn. Một điều quan trọng cần kiểm tra là việc quét chỉ mục SQL Server có bất kỳ vấn đề nào bạn cần giải quyết hay không.
Một kẻ giết hiệu suất tiềm năng khác là quét chỉ mục chạy thường xuyên hơn mức cần thiết. Quét chỉ mục mất nhiều thời gian hơn tìm kiếm chỉ mục vì truy vấn phải quét mọi hàng để tìm kiếm dữ liệu hữu ích. Thiết lập trình tối ưu hóa truy vấn của bạn để nó tìm kiếm các chỉ mục thường xuyên hơn là quét chúng.
Viết lại một truy vấn có vấn đề là một cách khác để tăng hiệu suất. Đôi khi việc đơn giản hóa các truy vấn sẽ loại bỏ phần đang khiến truy vấn bị sa lầy. Bạn cũng có thể thử thêm các chỉ mục để tăng tốc độ truy vấn, nhưng điều này trong một số trường hợp hoạt động tốt hơn những trường hợp khác.
Thêm chỉ mục là một giải pháp tốt cho các trường liên quan đến tìm kiếm, nhóm hoặc sắp xếp; các trường được truy cập thường xuyên; và các trường có giá trị duy nhất. Nói chung không hiệu quả nếu thêm chỉ mục vào các trường có giá trị trùng lặp, chẳng hạn như có / không hoặc cho các bảng nhỏ.
Giám sát hiệu suất SQL Server là rất quan trọng để duy trì cơ sở dữ liệu hiệu suất cao. Chỉ có thể đạt được việc giữ cho Máy chủ SQL của bạn chạy ở tốc độ cao nhất thông qua sự chú ý chăm chỉ đến các chỉ số hiệu suất. Thêm các chỉ số được thảo luận ở trên vào danh sách kiểm tra bảo trì của bạn để xác định và khắc phục sớm các vấn đề về hiệu suất SQL Server.