मेरे पास C # .NET वेब एप्लिकेशन से जोड़े जाने वाले कुछ प्रश्न हैं जो मेरे लिए हमेशा तेज़ होते हैं (मैं SQL सर्वर पर एक स्थानीय व्यवस्थापक हूं) लेकिन उपयोगकर्ताओं के एक समूह (आवश्यक अनुमतियों के साथ डोमेन समूह) के लिए, क्वेरी अविश्वसनीय रूप से धीमी है बिंदु यह आवेदन में बाहर बार।
विभिन्न उपयोगकर्ताओं के लिए अलग-अलग चलाने के लिए सटीक एक ही क्वेरी का क्या कारण होगा?
और जानकारी:
- क्वेरी C # कोड में इनलाइन SQL है, एक संग्रहीत कार्यविधि नहीं है
- ऐप डोमेन प्रमाणीकरण का उपयोग करता है और उपयोगकर्ता और स्वयं दोनों ऐप के माध्यम से क्वेरी चलाते हैं
- लगता है कि मुद्दा अलग-अलग योजनाओं का है और एक को कैश किया गया था, इसीलिए यह अलग-अलग उपयोगकर्ताओं के लिए अलग था। कुछ कैश को प्रभावित कर रहा है क्योंकि अब मेरे लिए ऐप के माध्यम से और SQL सर्वर प्रबंधन स्टूडियो में तेजी से क्वेरी धीमी है।
exact same query
), तो इसे सूँघने का पैरामीटर नहीं होना चाहिए (उपयोगकर्ताओं को गलत पैरामीटर (एस) के लिए एक खराब योजना मिलती है), बल्कि उपयोगकर्ताओं को एक ही पैरामीटर के लिए अलग-अलग योजनाएं मिल रही हैं (रों)। यह सेटिंग्स की तरह हो सकता है quoted_identifier
और arithabort
, जिसे आप sys.dm_exec_sessions
तेज उपयोगकर्ता और धीमे उपयोगकर्ता के लिए तुलना कर सकते हैं , या यह इसलिए हो सकता है क्योंकि उनके पास अलग-अलग डिफ़ॉल्ट स्कीमा हैं और स्कीमा उपसर्ग के बिना ऑब्जेक्ट संदर्भित हैं। पैरामीटर सूँघना अभी भी शामिल हो सकता है (इसलिए उनमें से एक में एक बुरी योजना क्यों है)।