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

Đây là ba lý do tại sao bạn có thể thấy hoạt động cao điểm trong phiên bản SQL của bạn

Duy trì các phiên bản SQL Server hiệu suất cao là một phần rất lớn trong trách nhiệm công việc của DBA. Việc không phát hiện và khắc phục các hoạt động bất thường có thể ảnh hưởng đến hoạt động nội bộ cũng như ảnh hưởng đến lợi nhuận của doanh nghiệp.

Nếu bạn nhận thấy những thay đổi hoặc bất thường về hoạt động cao điểm trong phiên bản SQL Server, đây là ba nơi để bạn bắt đầu tìm kiếm câu trả lời.

Kỳ vọng về tuổi thọ của trang

Tuổi thọ trang (PLE) của một phiên bản phải duy trì một phạm vi giá trị khá nhất quán. Nếu giá trị đó giảm xuống và vẫn ở mức thấp, đó là dấu hiệu cho thấy vùng đệm đang có nhu cầu tăng lên.

Trước khi bạn sử dụng hết và tăng bộ nhớ, hãy xem hoạt động của khối lượng công việc. Nếu khối lượng công việc tăng lên, điều đó sẽ tạo ra áp lực bổ sung lên vùng đệm. Nhưng nếu khối lượng công việc không thay đổi, bạn sẽ cần xem xét kỹ hơn để xác định những gì đang sử dụng bộ nhớ bổ sung.

Các lý do có thể khiến PLE giảm bao gồm tích cực chạy các công việc bảo trì, xây dựng lại chỉ mục hoặc cập nhật thống kê, hoạt động DBCC và các thay đổi đối với kế hoạch truy vấn.

Nếu bạn nhận thấy sự sụt giảm PLE không liên quan đến việc tăng khối lượng công việc, có một số điều bạn có thể thử để cải thiện PLE của một phiên bản:

  • Bỏ các chỉ mục không sử dụng
  • Hợp nhất các chỉ mục trùng lặp
  • Theo dõi các truy vấn lớn
  • Chống phân mảnh
  • Xóa dữ liệu

Thời gian chờ của WRITELOG

Khi thời gian chờ WRITELOG chiếm tỷ lệ quá lớn so với tổng thời gian chờ, có thể bạn đã gặp phải tắc nghẽn trên phiên bản SQL Server của mình. Sự cố tắc nghẽn có thể do sự cố trên đĩa nơi lưu trữ nhật ký giao dịch hoặc do dữ liệu được cam kết không hiệu quả.

Để xác định loại nút cổ chai bạn đang đối phó, hãy bắt đầu bằng cách phân tích số lượng câu lệnh SQL đang chờ sự kiện WRITELOG. Nếu có rất nhiều câu lệnh đang chờ, bạn có một nút cổ chai. Nếu chỉ có một vài câu lệnh đang chờ, có thể dữ liệu đang được cam kết quá thường xuyên.

Có một số cách để giải quyết thời gian chờ WRITELOG cao khi bạn đã tìm ra liệu nút cổ chai của mình là liên quan đến đĩa hay liên quan đến cam kết:

  • Thêm băng thông I / O vào đĩa lưu trữ nhật ký giao dịch
  • Di chuyển I / O nhật ký không giao dịch khỏi đĩa
  • Di chuyển nhật ký giao dịch sang một đĩa ít bận hơn
  • Giảm kích thước của nhật ký giao dịch
  • Đảm bảo rằng câu lệnh COMMIT được đặt trong mã để dữ liệu không bị cam kết quá thường xuyên

TempDB

TempDB là một không gian làm việc tạm thời trong SQL Server chứa các đối tượng tạm thời. Vì các đối tượng được giữ trong TempDB là tạm thời, một phiên bản SQL Server sẽ tạo lại TempDB mỗi khi nó khởi động lại. Điều này làm cho việc tối ưu hóa TempDB trở nên quan trọng để duy trì hiệu suất và tránh tắc nghẽn hoạt động.

Sự tranh cãi về TempDB là một trong những thủ phạm chính của sự suy giảm hiệu suất. Tranh chấp xảy ra khi nhiều tài nguyên cần truy cập TempDB nhưng chỉ có một tệp dữ liệu TempDB. Điều này gây ra tắc nghẽn vì các quy trình không thể truy cập TempDB đủ nhanh, dẫn đến kết nối hết thời gian và các quy trình được phân bổ theo thỏa thuận.

May mắn thay, tắc nghẽn TempDB có thể được giải quyết khá dễ dàng bằng cách điều chỉnh số lượng và kích thước của các tệp TempDB. Sau khi cài đặt, SQL Server mặc định là một tệp dữ liệu TempDB. Nếu bạn nhận thấy sự tranh cãi xảy ra, bạn nên thêm tám tệp dữ liệu mới và xác định xem điều đó có khắc phục được sự cố hay không. Nếu sự cố vẫn chưa được giải quyết, hãy thử thêm các tệp dữ liệu bổ sung theo bội số của bốn cho đến khi hiệu suất được khôi phục.

Mặc dù thật tuyệt khi bạn biết bắt đầu tìm kiếm ở đâu khi bạn gặp sự cố về hiệu suất, nhưng mỗi vấn đề ở trên và các tắc nghẽn dẫn đến có thể được giảm thiểu hoặc tránh hoàn toàn bằng cách thực hiện một quy tắc khó và nhanh chóng:Theo dõi số liệu hiệu suất không phải là tùy chọn. Dưới đây là một số ví dụ về các chỉ số chính cần theo dõi:

Tuổi thọ trang:Theo dõi PLE với sự giám sát liên tục và chủ động khi nó giảm xuống và ở dưới giá trị điển hình cho một phiên bản SQL Server cụ thể.

Thời gian chờ của WRITELOG:Theo dõi các số liệu như tăng trưởng nhật ký, thu nhỏ nhật ký, phần trăm nhật ký được sử dụng và số lần chờ xả nhật ký / giây.

Tính không hiệu quả của TempDB:Giám sát những gì đang được phân bổ cho các đối tượng người dùng, cửa hàng phiên bản hoặc các đối tượng nội bộ. Theo dõi xu hướng của chúng theo thời gian, sau đó xác định phiên nào đang tiêu thụ TempDB và mức độ.

Có một số công cụ giám sát hiệu suất SQL Server giá cả phải chăng, giàu tính năng tuyệt vời trên thị trường có thể giúp bạn đối mặt với các vấn đề làm giảm hiệu suất. Hãy tự biến mình trở thành MVP DBA của công ty bằng cách chủ động nghiên cứu các giải pháp giữ cho cả hoạt động hướng nội và dịch vụ kinh doanh hướng ra bên ngoài luôn hoạt động ở hiệu suất cao nhất.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Một số tin tức tuyệt vời cho khách hàng Standard Edition trong SQL Server 2014

  2. Cách bật tính năng nén trên bảng hiện có trong SQL Server (T-SQL)

  3. PHP Lỗi nghiêm trọng:Gọi đến hàm không xác định mssql_connect ()

  4. Trả về các tham số của một thủ tục được lưu trữ hoặc hàm do người dùng xác định trong SQL Server (ví dụ T-SQL)

  5. Tablix:Lặp lại các hàng tiêu đề trên mỗi trang không hoạt động - Trình tạo Báo cáo 3.0