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

Cải thiện điều chỉnh hiệu suất SQL Server với 3 mẹo sau

Như bất kỳ ai quản lý cơ sở dữ liệu đều biết quá rõ, điều chỉnh hiệu suất SQL Server là một chức năng quan trọng để đảm bảo hiệu suất tối ưu. Với hiệu suất phụ thuộc vào các yếu tố khác nhau như bộ nhớ, cấu hình, thiết kế truy vấn và sử dụng tài nguyên, việc xác định nguyên nhân gốc rễ của sự suy giảm hiệu suất là một việc không hề nhỏ.

Thay vì chờ đợi các vấn đề về hiệu suất xảy ra, việc chủ động điều chỉnh SQL Server sẽ đảm bảo các câu lệnh SQL của bạn chạy hiệu quả nhất có thể bằng cách giúp SQL tìm ra đường vào và ra nhanh nhất để cung cấp kết quả truy vấn của bạn.

Nếu bạn đang vật lộn với hiệu suất chậm chạp — hoặc bạn không phải là người chỉ đợi các vấn đề phát sinh — đây là ba lĩnh vực chính cần tập trung điều chỉnh hiệu suất SQL Server của bạn để đạt được hiệu suất tối ưu và hệ thống khỏe mạnh hơn.

Mẹo số 1:Tối ưu hóa TempDB của bạn

TempDB được định cấu hình không đúng là một thủ phạm phổ biến khi xem xét sự suy giảm hiệu suất. Nếu bạn thường xuyên lấp đầy TempDB của mình, đã đến lúc xem xét những gì cần thay đổi.

Đầu tiên, hãy kiểm tra kích thước TempDB. Không có quy tắc cứng và nhanh về việc nó phải lớn như thế nào, nhưng một nguyên tắc chung là giữ TempDB ở 25 phần trăm cơ sở dữ liệu lớn nhất của bạn hoặc cùng kích thước với chỉ mục lớn nhất của bạn. Điều này tránh phải tăng TempDB trong quá trình xây dựng lại.

Với TempDB, ổ đĩa càng nhanh càng tốt. Khi TempDB được đặt trên một ổ đĩa chậm hoặc cùng một ổ đĩa với Hệ điều hành, bạn chắc chắn sẽ thấy các vấn đề về hiệu suất cơ sở dữ liệu. Nếu có thể, hãy giữ TempDB trên ổ SSD cục bộ chuyên dụng. Nếu không thể, tùy chọn tốt nhất tiếp theo của bạn là giữ nó trên ổ đĩa chuyên dụng của riêng mình với đủ dung lượng đĩa được phân bổ trước.

Điều quan trọng nữa là giữ cho dữ liệu và tệp nhật ký riêng biệt và đặt một giá trị cố định lớn cho tự động phát triển TempDB. Nếu không, bạn sẽ phải gánh chịu chi phí không cần thiết mỗi khi TempDB đầy.

Kiểm soát số lượng tệp dữ liệu TempDB góp phần tối ưu hóa TempDB. Nhưng câu hỏi lớn là bạn cần bao nhiêu tệp dữ liệu TempDB? Lý tưởng nhất là bạn sẽ có một tệp dữ liệu TempDB cho mỗi CPU logic, nhưng không quá tám tổng số (với một số ngoại lệ). Ví dụ:nếu bạn có bốn CPU logic, bạn cần bốn tệp dữ liệu TempDB. Nếu bạn có 12 CPU logic, bạn có thể có tám tệp dữ liệu TempDB.

Mẹo số 2:Ngăn chặn tắc nghẽn hiệu suất

Có ba loại tắc nghẽn hiệu suất SQL Server chính gây ra hiệu suất kém:CPU, bộ nhớ và I / O. Nguyên nhân, triệu chứng và chẩn đoán khác nhau tùy theo loại nút cổ chai, vì vậy dưới đây là hướng dẫn nhanh về những điều cần chú ý:

Sự tắc nghẽn của CPU

Nguyên nhân: Không đủ tài nguyên phần cứng

Hiện tượng: Sử dụng bộ xử lý cao liên tục

Số liệu cần theo dõi: % Thời gian bộ xử lý, Yêu cầu hàng loạt / Phần, Biên dịch SQL / Phần và Bản biên dịch SQL / Phần

Nút thắt cổ chai của bộ nhớ

Nguyên nhân: Hạn chế về bộ nhớ khả dụng và áp lực bộ nhớ do SQL Server, hệ thống hoặc hoạt động ứng dụng khác gây ra

Hiện tượng: Khả năng phản hồi ứng dụng chậm, toàn bộ hệ thống chậm lại và ứng dụng bị treo

Số liệu cần theo dõi: Bộ nhớ khả dụng (KB), Tổng bộ nhớ máy chủ (KB), Bộ nhớ máy chủ đích (KB), Số trang / giây, Số trang điểm kiểm tra / giây, Số lần ghi chậm / giây và Tỷ lệ truy cập bộ nhớ đệm

Nút cổ chai I / O

Nguyên nhân: Đọc và ghi quá nhiều các trang cơ sở dữ liệu từ và lên đĩa

Hiện tượng: Thời gian phản hồi lâu, ứng dụng làm chậm và hết thời gian thực hiện tác vụ

Số liệu cần theo dõi: Độ dài hàng đợi đĩa trung bình, Số giây / đọc trên đĩa trung bình, Số giây / Ghi trên đĩa trung bình,% Thời gian trên đĩa, Số lần đọc / Giây trên đĩa trung bình và Số ghi / Giây trên đĩa trung bình

Mẹo số 3:Đảm bảo các chỉ mục được thiết kế đúng cách

Chỉ mục là một cách tuyệt vời để tăng tốc hoạt động của SQL Server nhất định, nhưng chỉ khi chúng được thiết kế tốt. Các chỉ mục được thiết kế kém có tác dụng ngược lại và là cách chắc chắn giết chết hiệu suất Máy chủ SQL của bạn.

Việc thiết lập đúng bốn khu vực này có thể giúp đảm bảo các chỉ mục được thiết kế đúng cách và giúp ích hơn là làm ảnh hưởng đến hiệu suất của SQL Server.

Kích thước bảng

Không phải mọi bảng đều là ứng cử viên tốt để lập chỉ mục. Trên thực tế, nếu một bảng quá nhỏ, thì SQL Server sẽ hiệu quả hơn để tìm kiếm toàn bộ bảng thay vì phải tìm kiếm thông qua các chỉ mục. Tất nhiên, điều ngược lại cũng đúng với các bảng lớn, vì vậy bạn cần cân nhắc chi phí tiềm năng khi quyết định bảng nào sẽ được hưởng lợi từ các chỉ mục.

Các loại chỉ mục

Về mặt kỹ thuật, mọi bảng cơ sở dữ liệu có thể có một chỉ mục được phân nhóm và vô số chỉ mục không được phân cụm, nhưng bạn biết họ nói gì về “Chỉ vì bạn có thể làm điều gì đó”…

Quá nhiều chỉ mục không phân nhóm có thể làm chậm đáng kể các hoạt động Chèn và Cập nhật, do đó, việc bám vào một chỉ mục được phân nhóm và số lượng tối thiểu các chỉ mục không phân nhóm thực sự cần thiết là lựa chọn thiết kế tốt hơn nhiều.

Lưu trữ chỉ mục

Trong giai đoạn thiết kế, việc lựa chọn tiêu chí lưu trữ thích hợp cho các chỉ mục là rất quan trọng đối với hiệu suất I / O. Chỉ mục được phân nhóm theo cụm và chỉ mục không được phân cụm có thể được lưu trữ trên cùng một nhóm tệp với bảng chính hoặc chúng có thể được lưu trữ trên một nhóm tệp khác. Lưu trữ một chỉ mục không phân cụm trong một nhóm tệp nằm trên một ổ đĩa khác nhau có thể cải thiện hiệu suất của các truy vấn sử dụng nó, vì nó không bị ảnh hưởng bởi việc đọc đồng thời dữ liệu và các trang chỉ mục SQL xảy ra trên các ổ đĩa khác nhau.

CÔNG TY CỔ PHẦN

FILLFACTOR chỉ định phần trăm không gian sẽ được lấp đầy trên mỗi trang dữ liệu khi tạo chỉ mục. Giá trị FILLFACTOR có thể nằm trong khoảng từ 0 phần trăm (không trang dữ liệu nào được lấp đầy) đến 100 phần trăm (trang dữ liệu được lấp đầy hoàn toàn). Khi thiết kế chỉ mục của bạn, hãy chọn giá trị FILLFACTOR sẽ tối ưu hóa việc sử dụng trang trong khi giảm thiểu nguy cơ phân mảnh chỉ mục quá mức.

Làm cho việc điều chỉnh hiệu suất SQL Server trở thành một phần của quy trình tiêu chuẩn của bạn là một cách tuyệt vời để đảm bảo cơ sở dữ liệu của bạn chạy ở hiệu suất cao nhất. Việc kết hợp ba bước đơn giản này vào kế hoạch bảo trì SQL Server thường xuyên của bạn sẽ cải thiện đáng kể tốc độ và hiệu suất cho người dùng của bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thực thi truy vấn SQL mà không hiển thị kết quả

  2. Bộ xử lý Intel được đề xuất cho khối lượng công việc SQL Server 2014

  3. Tìm kiếm văn bản trong quy trình được lưu trữ trong SQL Server

  4. Kiểm tra tình trạng máy chủ SQL chủ động, Phần 3:Cài đặt phiên bản và cơ sở dữ liệu

  5. Làm cách nào để đặt chuỗi kết nối theo chương trình cho Entity-Framework Code-First?