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

Phương thức SqlDataAdapter.Fill chậm

Trước tiên, hãy đảm bảo rằng bạn đang lập hồ sơ hiệu suất đúng cách. Ví dụ:chạy truy vấn hai lần từ ADO.NET và xem liệu lần thứ hai có nhanh hơn nhiều lần so với lần đầu tiên hay không. Điều này loại bỏ chi phí chờ đợi ứng dụng biên dịch và cơ sở hạ tầng gỡ lỗi tăng lên.

Tiếp theo, kiểm tra cài đặt mặc định trong ADO.NET và SSMS. Ví dụ:nếu bạn chạy SET ARITHABORT OFF trong SSMS, bạn có thể thấy rằng nó hiện chạy chậm như khi sử dụng ADO.NET.

Những gì tôi đã tìm thấy một lần là việc ĐẶT LƯU TRỮ TẮT trong SSMS khiến quy trình được lưu trữ được biên dịch lại và / hoặc sử dụng các số liệu thống kê khác nhau. Và đột nhiên cả SSMS và ADO.NET đều báo cáo thời gian thực thi gần như giống nhau.

Để kiểm tra điều này, hãy xem kế hoạch thực thi cho mỗi lần chạy, cụ thể là bảng syscacheobjects. Chúng có thể sẽ khác nhau.

Chạy 'sp_recompile' trên một thủ tục được lưu trữ cụ thể sẽ loại bỏ kế hoạch thực thi liên quan khỏi bộ đệm, sau đó cho SQL Server cơ hội để tạo một kế hoạch có thể thích hợp hơn ở lần thực thi tiếp theo của thủ tục.

Cuối cùng, bạn có thể thử cách tiếp cận "nuke it from obitan" để làm sạch toàn bộ bộ đệm thủ tục và bộ đệm bộ nhớ bằng SSMS:

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

Làm như vậy trước khi bạn kiểm tra truy vấn của mình sẽ ngăn việc sử dụng các kế hoạch thực thi được lưu trong bộ nhớ cache và bộ nhớ cache của kết quả trước đó.



  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 loại con trỏ máy chủ SQL - Sự khác biệt giữa con trỏ địa phương và toàn cầu là gì | Hướng dẫn sử dụng SQL Server / TSQL

  2. Cách tách một chuỗi sau ký tự cụ thể trong SQL Server và cập nhật giá trị này vào cột cụ thể

  3. cách đặt dữ liệu của bạn theo chiều ngang

  4. SQL Server, Làm thế nào để đặt tự động tăng sau khi tạo bảng mà không bị mất dữ liệu?

  5. Xuất dữ liệu trong SQL Server dưới dạng CHÈN VÀO