SSMS
 sql >> Teknologi Basis Data >  >> Database Tools >> SSMS

Kueri SQL Menggunakan Kerangka Entitas Berjalan Lebih Lambat, menggunakan rencana kueri yang buruk

Masalahnya adalah rencana kueri yang basi atau salah untuk kueri saya.

Saya memecahkan masalah untuk menghapus rencana kueri yang ada untuk kueri ini.

Terima kasih kepada Vladimir Baranov karena telah mengarahkan saya ke sommarskog.se/query-plan-mysteries.html. Terima kasih juga kepada tschmit007 dan annemartijn.

Saya harus mengidentifikasi rencana kueri untuk kueri saya di database menggunakan kueri berikut:

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%'

Ini adalah versi kueri yang sedikit dimodifikasi dari makalah sommarskog. Perhatikan bahwa Anda harus meletakkan kode Anda sendiri di pernyataan serupa untuk menemukan kueri Anda. Kueri ini merespons dengan daftar atribut dan pegangan paket untuk setiap paket kueri untuk kueri saya.

Saya mencoba mencari tahu paket mana yang berasal dari SSMS dan mana dari EF, jadi saya menghapus semuanya, menggunakan sintaks berikut:

dbcc freeproccache([your plan handle here])

Paket baru yang dibuat untuk kueri EF saya berfungsi dengan baik. Rupanya, rencana EF tidak mempertimbangkan bahwa saya telah memperbarui statistik di database baru-baru ini. Sayangnya, saya tidak tahu bagaimana melakukan sp_recompile untuk kueri EF.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Bagaimana Anda mengirim banyak perintah ke Sql PowerShell dari Baris Perintah Windows?

  2. SQL SERVER MANAGEMENT STUDIO:Sorot variabel

  3. Hasil salin tempel Microsoft SQL Server ke excel tidak berfungsi

  4. Mengapa nama alias yang sama dengan nama kolom dihilangkan saat disimpan sebagai tampilan?

  5. Database Default SQL Server saat Kueri - master