SSMS
 sql >> डेटाबेस >  >> Database Tools >> SSMS

एंटिटी फ्रेमवर्क का उपयोग कर SQL क्वेरी धीमी चलती है, खराब क्वेरी योजना का उपयोग करती है

मेरी क्वेरी के लिए समस्या एक पुरानी या गलत क्वेरी योजना थी।

मैंने इस क्वेरी के लिए मौजूदा क्वेरी योजनाओं को हटाने की समस्या का समाधान किया है।

sommarskog.se/query-plan-mysteries.html पर मुझे इंगित करने के लिए व्लादिमीर बरानोव का धन्यवाद। Tschmit007 और annemartijn को भी धन्यवाद।

मुझे निम्न क्वेरी का उपयोग करके डेटाबेस में अपनी क्वेरी के लिए क्वेरी योजनाओं की पहचान करनी थी:

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

यह सोमरस्कोग के पेपर से क्वेरी का हल्का संशोधित संस्करण है। ध्यान दें कि आपको अपनी क्वेरी खोजने के लिए समान कथनों में अपना कोड डालना होगा। यह क्वेरी मेरी क्वेरी के लिए प्रत्येक क्वेरी योजना के लिए विशेषता सूची और योजना हैंडल के साथ प्रतिक्रिया करती है।

मैंने यह पता लगाने की कोशिश की कि कौन सी योजना SSMS से आई और कौन सी EF से, इसलिए मैंने निम्नलिखित सिंटैक्स का उपयोग करके उन सभी को हटा दिया:

dbcc freeproccache([your plan handle here])

मेरी ईएफ क्वेरी के लिए बनाई गई नई योजना ने पूरी तरह से काम किया। जाहिर है, ईएफ योजना ने इस बात पर ध्यान नहीं दिया कि मैंने हाल ही में डेटाबेस पर आंकड़े अपडेट किए थे। दुर्भाग्य से, मुझे नहीं पता कि EF क्वेरी के लिए sp_recompile कैसे करें।




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. कॉलम से टेक्स्ट निकालें और इसे एक नए कॉलम में कॉपी करें

  2. ODBC डेटा स्रोत व्यवस्थापक का उपयोग करके प्रबंधन स्टूडियो में SAGE 50 US डेटाबेस से लिंक सर्वर बनाएं

  3. मैं चयनित तालिका से शीर्ष 1000* का चयन करने के लिए कीबोर्ड शॉर्टकट कैसे प्रोग्राम कर सकता हूं?

  4. SQL सर्वर ISNUMERIC () स्पष्टीकरण

  5. कुंजी के लिए मान नहीं लिख सका \SOFTWARE SSMS के लिए प्रदर्शित होता है एक व्यवस्थापक खाते के साथ विंडोज 7 मशीन में स्थापित करें