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

Hồ sơ truy vấn 101 - Có, nó thực sự có thể cải thiện hiệu suất máy chủ SQL của bạn

Hồ sơ truy vấn là cách bạn tìm ra những gì đang xảy ra bên trong hộp đen về hiệu suất của SQL Server.

Người dùng dễ dàng. DBA thì không.

Hãy nghĩ về các tùy chọn dễ dàng mà người dùng có khi ứng dụng cơ sở dữ liệu hoạt động kém:

  • Đi uống cà phê và đợi.
  • Xúc phạm máy tính.
  • Khiếu nại với những người dùng khác.
  • Gửi thông báo về sự cố.

Đó chẳng phải là cuộc sống của Riley so với những lựa chọn bạn có với tư cách là một DBA sao?

  • Tìm kiếm các phiên bị chặn.
  • Kiểm tra tỷ lệ lần truy cập vào bộ nhớ đệm.
  • Đo thời gian chờ I / O tối đa.
  • Kiểm tra tuổi thọ của trang.
  • Xem liệu các chỉ mục có bị thiếu hoặc cần xây dựng lại hay không.
  • Tìm kiếm ổ khóa / điểm tắc nghẽn.
  • Kiểm tra mức sử dụng CPU.
  • Xem lại nhật ký ứng dụng để biết thông báo hết bộ nhớ.
  • Đảm bảo rằng cơ sở dữ liệu tempdb được định cấu hình đúng cách.

Đó có thể là bất kỳ sự cố phần mềm nào trong số đó và chúng thường dẫn bạn đến giải pháp tối ưu hóa truy vấn hoặc thay đổi cấu hình của bạn. Hoặc đó có thể là sự cố phần cứng và giải pháp là mua thêm bộ nhớ hoặc sức mạnh xử lý.

Bởi vì các ứng dụng cơ sở dữ liệu chủ yếu là thực thi rất nhiều truy vấn SQL, các vấn đề về hiệu suất có rất nhiều chỗ để ẩn trong SQL Server. Nếu là người dùng, bạn có thể nói:“Ồ, vấn đề chắc hẳn nằm ở bên trong hộp đen đó ở đâu đó. Không phải công việc của tôi. ”

Nhưng với tư cách là một DBA, bạn không có được sự xa xỉ đó. Bạn phải mở hộp đen, trèo vào, tìm ra đống hỗn độn và sửa nó.

Cấu hình truy vấn 101 với giám sát hiệu suất máy chủ SQL

Nói chung, mục tiêu của bạn với việc giám sát hiệu suất máy chủ là theo dõi các truy vấn SQL của bạn đang hoạt động như thế nào theo thời gian và theo sự tăng trưởng của khối lượng giao dịch trên Máy chủ SQL của bạn. Bạn có thể đạt được mục tiêu đó bằng một số cách.

Hãy xem kế hoạch giải thích

Kế hoạch giải thích cho thấy SQL Server sẽ làm gì khi thực hiện truy vấn, bao gồm các bảng mà nó sẽ tham gia, kiểu liên kết mà nó sẽ thực hiện, số hàng mà nó sẽ chạm vào và các chỉ mục mà nó sẽ sử dụng.

Kế hoạch giải thích có thể cho bạn biết điều gì? Đối với một điều, bạn có thể xem cách cải thiện chính truy vấn bằng cách xóa một THAM GIA NESTED LOOP mà một trong những nhà phát triển cơ sở dữ liệu đã thêm vào một bảng lớn. Hoặc, bạn có thể tìm ra từ kế hoạch giải thích rằng bạn cần tạo hoặc xây dựng lại chỉ mục cho một bảng nhất định.

Kế hoạch giải thích là một điểm khởi đầu tốt để lập hồ sơ truy vấn, ngay cả trước khi bạn thực sự thực hiện các truy vấn nghi ngờ.

Thực hiện truy vấn

Để thực hiện các truy vấn và xem chúng ảnh hưởng đến tài nguyên nào trong thời gian chạy, trước tiên bạn tạo dấu vết để đánh dấu các sự kiện khi chúng xảy ra. Với dấu vết, bạn có thể nắm bắt dữ liệu và xem các lỗi phát sinh. Một công cụ lập hồ sơ lưu trữ dữ liệu mà các dấu vết đã thu thập và hiển thị nó theo cách giúp bạn tìm và khắc phục sự cố các truy vấn có vấn đề dễ dàng hơn.

Sự kết hợp của dấu vết và công cụ định hình có thể trả lời nhiều câu hỏi:

  • Truy vấn nào tiêu tốn nhiều bộ nhớ nhất?
  • Mỗi truy vấn mất bao lâu để thực thi?
  • SQL Server đặt khóa nào cho mỗi truy vấn?
  • SQL Server có thể thực thi những truy vấn nào từ bộ đệm đệm? Bao lâu thì nó cần phải đi đến đĩa?
  • Mỗi truy vấn kiểm tra bao nhiêu hàng?
  • Cơ sở dữ liệu đáp ứng bao nhiêu yêu cầu mỗi phút?

Bạn sẽ nhận được thông tin đọc chính xác nhất bằng cách thực hiện truy vấn trên cơ sở dữ liệu sản xuất của mình, nhưng điều đó cũng có thể làm chậm quá trình xử lý của khách hàng và người dùng trong thế giới thực của bạn. Nếu có thể, trước tiên hãy kiểm tra các phiên bản phát triển hoặc kiểm tra mà bạn không cạnh tranh về bộ nhớ hoặc I / O với phiên bản sản xuất của mình.

Nói về khách hàng và người dùng, mục tiêu của bạn trong việc lập hồ sơ truy vấn là làm cho họ hài lòng. Việc lập hồ sơ có thể dễ dàng phát hiện ra hàng tá vấn đề trong cơ sở dữ liệu của bạn, nhưng lý do bạn mở hộp đen là để giải quyết những vấn đề nhức nhối nhất. Sau khi thu thập dữ liệu từ một hoặc hai ngày sử dụng bình thường, bạn có thể tìm thấy các vấn đề về hiệu suất máy chủ SQL khiến người dùng của bạn gặp nhiều rắc rối nhất. Có thể một chỉ mục bị thiếu đang làm chậm việc truy xuất bản ghi hoặc quá nhiều chỉ mục đang làm chậm việc chèn bản ghi và cập nhật cơ sở dữ liệu. Có thể một truy vấn được sử dụng thường xuyên đang thu thập thông tin mà không ai quan tâm đến nữa.

Sử dụng các công cụ lập hồ sơ một cách khôn ngoan

Các công cụ lập hồ sơ giải cứu bạn khỏi quá trình tẻ nhạt của việc thiết lập thủ công từng sự kiện, bộ lọc và lệnh gọi thủ tục cho mọi thứ bạn muốn theo dõi. Với rất nhiều thứ đang diễn ra bên trong hộp đen về hiệu suất của SQL Server, bạn có thể dễ dàng thu thập quá nhiều dữ liệu để xem rừng cây.

Các công cụ tốt cho phép bạn lựa chọn cẩn thận những gì bạn theo dõi để chẳng hạn như bạn không nắm bắt được hàng trăm sự kiện Khóa:Có được và lấp đầy màn hình của bạn với chúng một cách không cần thiết. Tuy nhiên, nếu bạn cần kiểm tra một sự kiện thường xuyên xảy ra, hãy sử dụng các bộ lọc như tên ứng dụng hoặc tên bảng.

Thay vì ghi dữ liệu theo dõi vào một bảng trong cơ sở dữ liệu, hãy cân nhắc lưu nó vào tệp riêng, riêng biệt. Điều đó giữ cho chi phí theo dõi không trở thành gánh nặng cho SQL Server và có khả năng làm sai lệch kết quả. Nếu công cụ lập hồ sơ của bạn ủng hộ dữ liệu được lấy từ bảng, bạn có thể nhập dữ liệu từ tệp vào bảng sau đó.

Cải thiện giám sát hiệu suất SQL Server của bạn với cấu hình truy vấn

Người dùng của bạn tránh xa hộp đen về hiệu suất SQL Server, nhưng bạn không cần phải làm như vậy. Hồ sơ truy vấn là cách bạn mở hộp, tìm hiểu điều gì đang xảy ra bên trong và bắt đầu khắc phục sự cố.

Nhưng đừng đợi cho đến khi bạn gặp khó khăn mới sử dụng nó. Hồ sơ truy vấn giống như kiểm tra dầu hơn là thay thế động cơ. Nó giúp thực hiện các nhiệm vụ thông thường của DBA là cập nhật các truy vấn lỗi thời và sửa đổi thiết kế để cơ sở dữ liệu của bạn bắt kịp với những thay đổi trong hoạt động kinh doanh.


  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ác câu trả lời hàng đầu cho 5 câu hỏi nhức nhối về hàm COALESCE trong SQL Server

  2. Tạo lớp từ bảng cơ sở dữ liệu

  3. Cách tìm một chuỗi trong một chuỗi trong SQL Server

  4. CHÈN SỐ LƯỢNG LỚN với cột nhận dạng (tăng tự động)

  5. Cách thay đổi kiểu dữ liệu của cột trong SQL Server (T-SQL)