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

Hibernate Query chạy chậm trong hệ thống, nhưng nhanh khi chạy trực tiếp

Từ mô tả vấn đề của bạn, có vẻ như bạn đang gặp phải vấn đề đánh giá thông số. Về cơ bản, SQL Server đang tạo một kế hoạch truy vấn dựa trên một tập hợp các giá trị tham số cũ hơn đã được chuyển vào và không tạo ra một kế hoạch thực thi hiệu quả cho truy vấn hiện đang chạy.

Thông thường, tôi giải quyết vấn đề này bằng cách chuyển các giá trị tham số vào các biến cục bộ và sử dụng các giá trị đó trong truy vấn của tôi hoặc bằng cách sử dụng TÙY CHỌN (RECOMPILE). Tuy nhiên, vì bạn đang sử dụng Hibernate nên giải pháp thông thường của tôi không phải là một lựa chọn dành cho bạn. Theo tôi hiểu, tùy chọn tốt nhất sẽ là sử dụng Hibernate để chạy một truy vấn SQL gốc bằng cách sử dụng readyStatement () hoặc createSQLQuery (), rất tiếc, sẽ loại bỏ một số lợi ích của việc sử dụng Hibernate.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:thả bảng xếp tầng tương đương?

  2. tìm kiếm toàn văn bản trên dữ liệu với dấu gạch dưới

  3. Một thay đổi quan trọng đối với Sự kiện mở rộng trong SQL Server 2012

  4. Khi sử dụng GETDATE () ở nhiều nơi, tốt hơn là sử dụng một biến?

  5. SQL:Tìm đường dẫn thư mục bị thiếu trong phân chia cấu trúc phân cấp