SSMS
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> SSMS

Truy vấn SQL sử dụng khung thực thể chạy chậm hơn, sử dụng kế hoạch truy vấn không hợp lệ

Vấn đề là một kế hoạch truy vấn cũ hoặc không chính xác cho truy vấn của tôi.

Tôi đã giải quyết vấn đề khi xóa các kế hoạch truy vấn hiện có cho truy vấn này.

Cảm ơn Vladimir Baranov đã chỉ cho tôi tại sommarskog.se/query-plan-mysteries.html. Cũng xin cảm ơn tschmit007 và annemartijn.

Tôi phải xác định các kế hoạch truy vấn cho truy vấn của mình trong cơ sở dữ liệu bằng cách sử dụng truy vấn sau:

SELECT qs.plan_handle, a.attrlist, est.dbid, text
FROM   sys.dm_exec_query_stats qs
CROSS  APPLY sys.dm_exec_sql_text(qs.sql_handle) est
CROSS  APPLY (SELECT epa.attribute + '=' + convert(nvarchar(127), epa.value) + '   '
          FROM   sys.dm_exec_plan_attributes(qs.plan_handle) epa
          WHERE  epa.is_cache_key = 1
          ORDER  BY epa.attribute
          FOR    XML PATH('')) AS a(attrlist)
 WHERE  est.text LIKE '%standardHourRate%' and est.text like '%q__7%'and est.text like '%Unit Overhead%'
 AND  est.text NOT LIKE '%sys.dm_exec_plan_attributes%'

Đây là phiên bản được sửa đổi nhẹ của truy vấn từ bài báo của sommarskog. Lưu ý rằng bạn phải đặt mã của riêng mình trong các câu lệnh tương tự để tìm truy vấn của bạn. Truy vấn này phản hồi với danh sách thuộc tính và trình xử lý kế hoạch cho từng kế hoạch truy vấn cho truy vấn của tôi.

Tôi đã cố gắng tìm ra gói nào đến từ SSMS và gói nào từ EF, vì vậy tôi đã xóa tất cả chúng bằng cú pháp sau:

dbcc freeproccache([your plan handle here])

Kế hoạch mới được tạo cho truy vấn EF của tôi đã hoạt động hoàn hảo. Rõ ràng, kế hoạch EF đã không tính đến việc tôi đã cập nhật số liệu thống kê trên cơ sở dữ liệu gần đây. Rất tiếc, tôi không biết cách thực hiện sp_recompile cho truy vấn EF.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Lỗi kết nối cơ sở dữ liệu cục bộ phòng thu máy chủ SQL trong Windows 7

  2. SSMS Object Explorer - Chọn N hàng trên cùng bị thiếu khi kết nối với Azure DB

  3. Chuyển đổi chuỗi an toàn Powershell

  4. không thể truy cập sql server developer sp1 ssis từ ssms

  5. Bộ kết quả đặt SSIS từ luồng dữ liệu thành biến