2009-01-22 16 views
10

से चलने पर टाइमआउट का कारण बनती है हम एक एसपी के साथ एक समस्या में भाग गए हैं।संग्रहीत प्रक्रिया केवल

हमारे पास एक बहुत ही सरल स्पा है जिसमें घोषित तालिका है और कुछ बाहरी जुड़ते हैं जो अंत में 20 और 100 पंक्तियों के बीच लौटते हैं।

चूंकि इस स्पैम से पूछताछ हमें उत्पादन में और टेस्टेन्वायरमेंट में खराब प्रदर्शन दे रही है, हमने हाल ही में इसे और अधिक कुशल बनाने के लिए फिर से लिखा है और हमारे टेस्टेनवायरमेंट में शानदार प्रदर्शन के साथ परीक्षण किया है।

हमने इसे अभी उत्पादन के लिए जारी किया है यह पता लगाने के लिए कि यह अभी भी बहुत धीमा है और हमारे .NET 2.0 एप्लिकेशन को समय-समय पर कॉल करने पर इसका कारण बन रहा है।

हम कुछ भी नहीं समझ पाए और उत्पादन डेटाबेस पर प्रबंधन स्टूडियो में गए और वहां एसपी चलाया, यह 1 सेकंड से नीचे चला गया।

यह है कि, जब हमारे आवेदन से भाग लिया जाता है तो यह बेहद धीमा होता है और प्रबंधन स्टूडियो से भागने पर टाइमआउट का कारण बनता है, यह बहुत तेज़ होता है और कभी भी एक सेकंड नहीं लेता है।

SQL सर्वर 2005 के अच्छे ज्ञान वाले किसी भी व्यक्ति जो हमें इसके बारे में संकेत दे सकता है?

+0

जब आप कहते हैं कि तुम, प्रबंधन स्टूडियो में सपा का परीक्षण आप सपा बुला रहे हैं EXEC का उपयोग कर और कुछ मानकों प्रदान करने या आप बस के अंदर सपा से क्वेरी शरीर का उपयोग कर रहे हैं? – AnthonyWJones

+0

क्या आपने एसएसएमएस में उसी उपयोगकर्ता के साथ परीक्षण किया था जिसे ऐप कनेक्ट करने के लिए उपयोग करता है? – devio

उत्तर

0

सुनिश्चित करें कि आपके उत्पादन डेटाबेस में अद्यतित आंकड़े हैं और अनुक्रमणिका अच्छी स्थिति में हैं (यदि संभव हो तो शामिल इंडेक्स को पुनर्निर्माण पर विचार करें)।

0

क्या आप सुनिश्चित हो सकते हैं कि कोई डेडलॉक स्थिति नहीं हो रही है? प्रबंधन स्टूडियो से रन अलग किया जाएगा जहां आवेदन से यह एक बड़ा लेनदेन का हिस्सा हो सकता है।

1

उत्तर लोगों के लिए Thanx, लगता है जैसे sp_recompile चल रहा है समस्या हल हो गई है, कम से कम सबकुछ ठीक से चल रहा है क्योंकि मैंने कल दोपहर इसे निष्पादित किया था, इसे देखकर देखेंगे और देखें कि यह जल्दी रहता है या नहीं।

हालांकि यह समझ में नहीं आया कि जब मैंने एसपी के अंदर सामग्री बदल दी तो पुनर्मूल्यांकन नहीं किया गया था?

9

मुझे लगता है कि आपकी समस्या "पैरामीटर सूँघने" हो सकता है: यह सबसे अधिक संभावना सूँघने

इस सवाल देखें पैरामीटर है। यह एक प्रक्रिया है जब SQL सर्वर का निष्पादन वातावरण तेजी से निष्पादन योजना उत्पन्न करने के लिए संकलन या पुन: संकलन के दौरान एसपी के पैरामीटर मानों को "स्नीफ" करता है। लेकिन कभी-कभी यह पैरामीटर का संयोजन प्राप्त करता है जो वर्तमान डेटा के साथ एसपी वापस आ जाएगा वास्तव में धीमी गति से एसपी बनाता है।

वहां कुछ अच्छी व्याख्याएं हैं। Stackoverflow पर खोजें। यह एक है अच्छा है: http://omnibuzz-sql.blogspot.com/2006/11/parameter-sniffing-stored-procedures.html

एक संभव समाधान एसपी में स्थानीय चर बना सकते हैं और उन्हें भेजे पैरामीटर मूल्यों को निर्धारित करने के लिए है। फिर एसपी में केवल स्थानीय चर का उपयोग करें।

CREATE PROCEDURE [dbo].spTest 
    @FromDate as DATETIME 
AS 
BEGIN 
    DECLARE @FromDate_local as DATETIME 
    SET @FromDate_local = '2009-01-01' 

    SET @FromDate_local = @FromDate 
    ... 
    SELECT * FROM TestTbl WHERE FromDate >= @FromDate_local 
END 
+0

आपको धन्यवाद! मैं इस सटीक समस्या में भाग गया और आपका समाधान खूबसूरती से काम किया! – Chuck

संबंधित मुद्दे