2008-08-25 8 views

उत्तर

18

एसक्यूएल बोल से:

सेट NOCOUNT पर एक संग्रहीत प्रक्रिया में प्रत्येक कथन के लिए ग्राहक को DONE_IN_PROC संदेश भेजने से बचाता है। संग्रहित प्रक्रियाओं कि कई बयान है कि नहीं वापसी ज्यादा वास्तविक डेटा करना शामिल के लिए, सेटिंग चालू पर NOCOUNT सेट, एक महत्वपूर्ण प्रदर्शन को बढ़ावा देने प्रदान कर सकते हैं क्योंकि नेटवर्क यातायात बहुत कम है।

अधिक जानकारी के लिए http://msdn.microsoft.com/en-us/library/ms189837.aspx देखें।
इसके अलावा, SQLServerCentral पर इस लेख इस विषय पर बहुत अच्छा है:
Performance Effects of NOCOUNT

+0

यह * विशेष रूप से * कर्सर का उपयोग करने वाले प्रश्नों में अनिवार्य है। –

8

और यह सिर्फ नेटवर्क यातायात कि कम हो जाता है नहीं है। SQL सर्वर के लिए एक बूस्ट आंतरिक है क्योंकि निष्कर्ष निकालने के लिए निष्पादन योजना को अतिरिक्त क्वेरी में कमी के कारण अनुकूलित किया जा सकता है कि कितनी पंक्तियां प्रभावित हुईं।

4

यह केवल उस संदेश को रोकता है जो भेजने/प्रदर्शित होने के लिए प्रभावित पंक्तियों की # दिखाता है, जो प्रदर्शन लाभ प्रदान करता है, खासकर यदि आपके पास कई बयान हैं जो संदेश वापस कर देंगे। यह प्रदर्शन में सुधार करता है क्योंकि नेटवर्क पर कम डेटा भेजा जा रहा है (एसक्यूएल सर्वर और फ्रंट एंड के बीच)।

अधिक बोल पर: SET NOCOUNT

1

मैं हमेशा यह उपरोक्त कारणों के लिए चालू पर सेट है, लेकिन 1 से अधिक परिणाम आपके proc में स्थापित कर दें तो आप है यह हो सकता गंदगी ग्राहक कोड

0

मैं व्यक्तिगत रूप से की तरह NOCOUNT को मैन्युअल फ़ैशन में चलाने के लिए और Print कथन को आउटपुट डीबगिंग संदेशों के लिए उपयोग करने के लिए चालू करने के लिए। इस तरह, अपने उत्पादन कम दिखाई देगा:

 
Updating usernames 
(287 rows updated) 

Done 
Updating passwords 
(287 rows updated) 

Done 
Doing the next thing 
(1127 rows updated) 

Done 

और

अधिक की तरह
 
Updating usernames 
Done 

Updating passwords 
Done 

Doing the next thing 
Done 

आप अद्यतन कर रहे हैं क्या की संवेदनशीलता पर निर्भर करता है, कभी कभी यह मायने रखता है शामिल करने के लिए उपयोगी है; हालांकि, बहुत सारे आउटपुट के साथ जटिल स्क्रिप्ट के लिए मैं आमतौर पर उन्हें छोड़ना पसंद करता हूं।

0

सेट NOCOUNT पर एक oneline वक्तव्य है, Sql सर्वर client.this हर प्रक्रिया (यानी .. का चयन करें, सम्मिलित करें, अद्यतन, हटाने) के लिए किया जाता है करने के लिए वापस संदेश भेजता है।यदि आप इस संदेश से बचने के हम अपने डाटाबेस के लिए समग्र प्रदर्शन में सुधार कर सकते हैं और यह भी नेटवर्क यातायात

को कम पूर्व के लिए:

घोषित @a तालिका (आईडी int)

सेट nocount पर

सम्मिलित @ एक 1 संघ का चयन 2

सेट बंद nocount

0

संदेश एक ट्रांस से प्रभावित पंक्तियों की संख्या का संकेत रोकता चयन परिणाम-भाग के रूप में वापस आने से कार्य-एसक्यूएल कथन।

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