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

Thủ tục được lưu trữ mất thời gian thực hiện

Có vẻ như đánh giá tham số.

Đây là một lời giải thích hay: Tôi ngửi thấy một thông số!

Về cơ bản, máy chủ sql có kế hoạch thực thi truy vấn được lưu trong bộ nhớ cache cho các tham số mà nó được chạy lần đầu tiên vì vậy kế hoạch này không tối ưu cho các giá trị mới mà bạn đang chuyển. Khi bạn chạy truy vấn trực tiếp, kế hoạch được tạo ngay tại thời điểm đó, vì vậy đó là lý do tại sao nó nhanh chóng.

Bạn có thể đánh dấu quy trình biên dịch lại theo cách thủ công bằng cách sử dụng sp_recompile hoặc sử dụng tùy chọn With Recompile trong định nghĩa của nó để nó được biên dịch trong mọi lần chạy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặt lại AutoIncrement trong SQL Server sau khi Xóa

  2. Lọc dựa trên tên cột bí danh

  3. Tạo người dùng chỉ có thể XEM một cơ sở dữ liệu và chỉ chọn từ cơ sở dữ liệu đó?

  4. Sử dụng bcp để nhập tệp csv sang sql 2005 hoặc 2008

  5. Những lý do không có chỉ mục nhóm trong SQL Server 2005