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

Theo dõi tuổi thọ trang trong SQL Server

Chỉ số Thời gian sử dụng trang SQL Server (PLE) từ lâu đã được coi là một chỉ báo hiệu suất chính cho các DBA xem xét tình trạng tổng thể của các cá thể cơ sở dữ liệu của họ. PLE cho biết liệu hệ thống có đang chịu áp lực bộ nhớ trong hay không bằng cách sử dụng các bộ đếm được cung cấp bởi đối tượng Trình quản lý bộ đệm.

Xem xét kỹ hơn Kỳ vọng về tuổi thọ của trang

PLE là thước đo khoảng thời gian (tính bằng giây) mà một trang tệp dữ liệu dự kiến ​​sẽ ở trong vùng đệm của SQL Server. Số liệu này không phải là tổng hợp hoặc tích lũy, mà chỉ đơn giản là giá trị tại thời điểm mà các DBA sẽ truy vấn từ Trình quản lý bộ đệm.

SQL Server chỉ đọc các trang dữ liệu từ vùng đệm (tức là đọc logic), vì vậy nếu trang không có trong vùng đệm, nó sẽ tìm thấy nó trên đĩa (tức là đọc vật lý) và di chuyển trang đó vào vùng đệm. nó có thể đọc một cách hợp lý. Đây là một quá trình tốn thời gian và có thể ảnh hưởng tiêu cực đến hiệu suất.

Giá trị PLE “Tốt” là gì?

Giá trị PLE cao có nghĩa là một trang ở trong vùng đệm lâu hơn, do đó, SQL Server ít có khả năng phải truy cập vào đĩa để tìm kiếm trang dữ liệu, điều này làm cho hệ thống chạy nhanh hơn.

Trong lịch sử, các DBA coi 300 giây (năm phút) là điểm ngọt ngào của PLE. Tuy nhiên, con số đó là khá tùy ý. Microsoft đã đề xuất 300 làm tiêu chuẩn PLE vào những năm 2000 khi bộ nhớ bị hạn chế.

Ngày nay, các DBA không tập trung vào một con số “đúng” vì nhóm bộ nhớ trở thành tiêu chuẩn trên hầu hết các hệ thống. Không có gì lạ khi SQL Server chạy trên hệ thống có TB bộ nhớ RAM, vì vậy các DBA đã áp dụng một phương pháp công thức để xác định giá trị PLE “tốt”:

Tuổi thọ trang =300 giây cho mỗi 4 GB RAM trên máy chủ của bạn

Tuy nhiên, điều quan trọng hơn là phải liên tục theo dõi các giá trị PLE để biết các thay đổi về tính nhất quán để bạn có thể xác định các vấn đề về bộ nhớ và giải quyết chúng một cách nhanh chóng.

Nếu bạn làm việc với khối lượng lớn dữ liệu, điều quan trọng cần lưu ý là các máy chủ lớn hơn thường có nhiều PLE. Mỗi nút truy cập bộ nhớ không đồng nhất (NUMA) nhận giá trị PLE của riêng nó và sau đó những con số đó được tính toán để nhận giá trị PLE của máy chủ. Ví dụ:lấy giá trị PLE của nút x 1.000 (thực hiện điều này cho tất cả NUMA nút). Cộng các giá trị của tất cả các nút, sau đó chia cho tổng số NUMA nút, sau đó chia lại cho 1.000. Điều này sẽ cung cấp cho bạn PLE máy chủ.

Cách xác định xem có vấn đề với kỳ vọng tuổi thọ của trang hay không

Biến động trong PLE là bình thường vì nó dựa trên khối lượng công việc. Theo dõi các xu hướng cao, trung bình và thấp có thể cho bạn biết liệu các quy trình nhất định, như quét bảng hoặc xóa bộ đệm đệm, có cần được điều chỉnh để cải thiện PLE hay không.

Một cách tốt để xác định xem có sự cố hay không là nếu phạm vi giá trị PLE bình thường giảm xuống và ở mức thấp. Điều này cho thấy có khả năng nhu cầu và áp lực tăng lên đối với vùng đệm.

Điều này có nghĩa là bạn cần thêm một số bộ nhớ cho vấn đề? Có lẽ. Có thể không.

Khắc phục sự cố Tuổi thọ trang SQL Server Thấp Kỳ vọng

Có một số lý do tại sao giá trị PLE có thể có xu hướng thấp. Điều quan trọng là phải khắc phục sự cố vì giải pháp không giống nhau cho mọi nguyên nhân gốc rễ. Dưới đây là ba trong số những thủ phạm có nhiều khả năng làm chậm PLE của bạn nhất:

Bộ nhớ không đủ

Nếu khối lượng công việc ngày càng tăng và PLE giảm, có thể bạn đang thiếu bộ nhớ. Thêm bộ nhớ có thể giúp tăng PLE, nhưng nó sẽ không làm cho các truy vấn chạy hiệu quả hơn.

Hoạt động tốn kém

Nếu khối lượng công việc không thay đổi, nhưng nhu cầu về vùng đệm tăng lên, thì có thể là do những người khác đang sử dụng nhiều bộ nhớ hơn. Kiểm tra xem có các công việc bảo trì đang chạy hay việc xây dựng lại chỉ mục đang được tiến hành hay không.

Thống kê cũ

Thống kê cũ có thể gây ra các thay đổi đối với kế hoạch truy vấn. Điều này làm tăng nhu cầu trên vùng đệm bằng cách khiến các hoạt động tốn kém chạy vì chúng không được đồng bộ hóa với số liệu thống kê mới.

Cách khắc phục thời gian sử dụng trang thấp bằng cách tối ưu hóa truy vấn

Cách tốt nhất để sửa các giá trị PLE thấp là truy cập nguồn và tối ưu hóa các truy vấn SQL Server của bạn. Điều này đi kèm với một phần thưởng bổ sung vì việc tối ưu hóa các truy vấn sẽ đồng thời cải thiện hiệu suất tổng thể của hệ thống của bạn.

Có một số điều bạn sẽ muốn làm sẽ giúp bạn tối ưu hóa các truy vấn để cải thiện tối đa PLE:

  • Bỏ các chỉ mục không sử dụng
  • Hợp nhất các chỉ mục trùng lặp
  • Tìm kiếm các truy vấn lớn
  • Biết những gì có trong vùng đệm
  • Chống phân mảnh chỉ mục
  • Cập nhật số liệu thống kê
  • Xóa dữ liệu

Theo dõi tuổi thọ trang theo thời gian

Mặc dù PLE là chỉ số theo thời gian, nhưng xem xét PLE theo thời gian là một cách quan trọng để xác định sớm các vấn đề và khắc phục chúng nhanh chóng trước khi hiệu suất bị ảnh hưởng đáng kể.

Có nhiều cách để theo dõi chỉ số PLE theo thời gian và xác định các truy vấn có giao dịch gây ra một lượng lớn lượt đọc. DMV và các sự kiện mở rộng trong SQL Server là các phương pháp đã được thử nghiệm và là công cụ trong quá trình thu thập dữ liệu này. Nhưng chúng cũng thủ công và tốn thời gian, đồng thời mang lại những lợi ích hạn chế khi có được quan điểm lịch sử về hiệu suất chỉ số theo thời gian.

Một giải pháp thương mại như Spotlight Cloud không chỉ cung cấp cho DBA khả năng theo dõi PLE theo thời gian ngay lập tức mà còn phân tích khối lượng công việc để xác định những truy vấn và hoạt động ngoại lệ nào đang gây ra áp lực cho vùng đệm để bạn có thể cô lập và khắc phục sự cố và tối ưu hóa hiệu suất Máy chủ SQL của bạn.

Được xuất bản lần đầu vào tháng 4 năm 2019 và cập nhật vào tháng 9 năm 2020.


  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ỗi truy vấn với tên cột không rõ ràng trong SQL

  2. Lỗi trong SQL Server khi nhập tệp CSV mặc dù varchar (MAX) được sử dụng cho mỗi cột

  3. Lỗi MSSQL 'Nhà cung cấp cơ bản không thành công khi Mở'

  4. Tìm các giá trị không phải số trong một cột trong SQL Server

  5. Mã khung thực thể đầu tiên với từ đồng nghĩa SQL Server