Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

वेब से निष्पादित होने पर क्वेरी का समय समाप्त हो जाता है, लेकिन SSMS से निष्पादित होने पर सुपर-फास्ट

तो आपका सी # कोड किस विधि का उपयोग कर SQL सर्वर पर एक विज्ञापन SQL क्वेरी भेज रहा है? क्या आपने संग्रहीत प्रक्रिया का उपयोग करने पर विचार किया है? यह शायद वही प्रदर्शन सुनिश्चित करेगा (कम से कम इंजन में) चाहे इसे किसने बुलाया हो।

क्यों? ARITHABORT सेटिंग उन चीजों में से एक है जिसे ऑप्टिमाइज़र देखता है जब यह निर्धारित करता है कि आपकी क्वेरी को कैसे निष्पादित किया जाए (अधिक विशेष रूप से, योजना मिलान के लिए)। यह संभव है कि कैश में योजना की SSMS जैसी ही सेटिंग हो, इसलिए यह कैश्ड योजना का उपयोग करती है, लेकिन विपरीत सेटिंग के साथ आपका C# कोड एक पुनर्संकलन को मजबूर कर रहा है (या शायद आप वास्तव में BAD मार रहे हैं) कैश में योजना), जो निश्चित रूप से कई मामलों में प्रदर्शन को नुकसान पहुंचा सकता है।

यदि आप पहले से ही एक संग्रहीत कार्यविधि को कॉल कर रहे हैं (आपने अपनी क्वेरी पोस्ट नहीं की, हालांकि मुझे लगता है कि आपका मतलब था), तो आप संग्रहीत कार्यविधि में आपत्तिजनक क्वेरी (या प्रश्नों) में विकल्प (RECOMPILE) जोड़ने का प्रयास कर सकते हैं। इसका मतलब यह होगा कि वे बयान हमेशा पुन:संकलित होंगे, लेकिन यह उस खराब योजना के उपयोग को रोक सकता है जिसे आप मार रहे हैं। एक अन्य विकल्प यह सुनिश्चित करना है कि जब संग्रहित प्रक्रिया को संकलित किया जाता है, तो बैच को SET ARITHABORT ON के साथ निष्पादित किया जाता है।

अंत में, आप पूछ रहे हैं कि आप SSMS में ARITHABORT सेटिंग कैसे बदल सकते हैं। मुझे लगता है कि आप जो पूछना चाहते थे वह यह है कि आप अपने कोड में ARITHABORT सेटिंग को कैसे लागू कर सकते हैं। यदि आप अपने C# ऐप से तदर्थ SQL भेजना जारी रखने का निर्णय लेते हैं, तो निश्चित रूप से आप एक कमांड को टेक्स्ट के रूप में भेज सकते हैं जिसमें सेमी-कॉलन द्वारा अलग किए गए कई स्टेटमेंट हैं, जैसे:

SET ARITHABORT ON; SELECT ...

यह समस्या क्यों होती है, इस बारे में अधिक जानकारी के लिए, एरलैंड सोमरस्कोग का महान लेख देखें:

  • आवेदन में धीमा, एसएसएमएस में तेज? प्रदर्शन रहस्यों को समझना


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Azure डेटा स्टूडियो में SQL सर्वर एजेंट जॉब बनाएँ

  2. इन 4 आम डीबीए गलतियों से बचें

  3. एसक्यूएल सर्वर (टी-एसक्यूएल) में मुद्रा के रूप में संख्याओं को कैसे प्रारूपित करें

  4. SQL सर्वर के लिए शीर्ष 5 डेटा मॉडलिंग उपकरण

  5. आप SQL सर्वर में काम करने के लिए अग्रणी वाइल्डकार्ड पूर्ण-पाठ खोज कैसे प्राप्त करते हैं?