2009-09-18 11 views
30

मैं एक एमएस प्रमाणीकरण के लिए अध्ययन कर रहा हूं और एक अभ्यास परीक्षण में से एक है जो एक प्रश्न है जहां विवाद का बिंदु एसक्यूएल सर्वर में सत्र को संग्रहीत करने के बीच प्रदर्शन है राज्यसेवर का विरोध किया।एएसपी.NET सत्र राज्य प्रदर्शन के लिए SQLServer बनाम स्टेटसेवर

यह देखते हुए कि ऐप वेब फार्म में चल रहा है, सत्र सत्र के लिए कौन सा समाधान सर्वश्रेष्ठ प्रदर्शन (SQL सर्वर या स्टेटसेवर) देता है और सबसे महत्वपूर्ण बात क्यों?

+1

ASP.net सत्र स्थिति के बारे में अधिक जानकारी के लिए यहां एक नजर है:> http://msdn.microsoft.com /fr-fr/library/system.web.sessionstate.httpsessionstate%28v=vs.80%29.aspx – 7addan

उत्तर

53

राज्य सर्वर तेज़ है क्योंकि यह एक इन-मेमोरी डिक्शनरी में सत्र डेटा संग्रहीत करता है। SQL सर्वर धीमा है क्योंकि यह डेटाबेस में संग्रहीत है जो डिस्क को डेटा को जारी रखता है।

एसक्यूएल सर्वर भी धीमा है क्योंकि सबकुछ एक टेबल में संग्रहीत होता है जो विवाद की ओर जाता है क्योंकि अधिक से अधिक ग्राहक सत्र डेटा को एक्सेस/अपडेट करते हैं।

एसक्यूएल सर्वर अधिक विश्वसनीय है क्योंकि यह डिस्क पर जारी है और फेलओवर क्षमता के साथ क्लस्टर के रूप में स्थापित किया जा सकता है।

इंडिपथ स्पष्टीकरण के लिए this article में प्रस्तावना देखें।

+0

धन्यवाद मार्क, बहुत स्पष्ट और बिंदु उत्तर के लिए –

11

इस लिंक से: http://www.eggheadcafe.com/articles/20021016.asp

प्रदर्शन

  • inproc - सबसे तेजी से है, लेकिन अधिक सत्र डेटा, अधिक स्मृति वेब सर्वर पर भस्म है, और उस प्रदर्शन को प्रभावित कर सकते हैं ।

  • StateServer - जब (जैसे स्ट्रिंग, पूर्णांक, आदि) बुनियादी प्रकार के डेटा भंडारण, एक परीक्षण वातावरण में यह 15% inproc की तुलना में धीमी है में। हालांकि, क्रमशः क्रमशः/deserialization के प्रदर्शन को प्रभावित कर सकते हैं यदि आप ऑब्जेक्ट्स के संग्रहीत कर रहे हैं। आपको अपने परिदृश्य के लिए प्रदर्शन परीक्षण करना होगा।

  • SQLServer - जब (जैसे स्ट्रिंग, पूर्णांक, आदि) बुनियादी प्रकार के डेटा भंडारण, एक परीक्षण वातावरण में यह 25% inproc की तुलना में धीमी है में। राज्यसेवर के रूप में क्रमबद्धता के बारे में वही चेतावनी।

तो यह प्रतीत होता है कि StateServer एक छोटे से तेजी से सत्र स्थिति के भंडारण के लिए कि एसक्यूएल सर्वर है।

क्यों, मैं सुझाव दूंगा कि SQL सर्वर अधिक बहुउद्देश्यीय है और अन्य चीजों के लिए भी इसका उपयोग किया जाएगा। इतना ही नहीं, लेकिन भंडारण तंत्र डिस्क पर है, जहां राज्य सर्वर एक अलग प्रक्रिया में चल रहा है, फिर भी यह डिस्क पर लिखने के बजाय अन्य प्रक्रिया की स्मृति स्थान में डेटा संग्रहीत कर रहा है (वर्चुअल मेमोरी अनुमति)

14

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

here से

:

  • प्रक्रिया में। प्रक्रिया में सबसे अच्छा प्रदर्शन होगा क्योंकि सत्र स्थिति स्मृति एएसपी.NET प्रक्रिया के भीतर रखा जाता है। एक सर्वर पर होस्ट किए गए वेब अनुप्रयोगों के लिए, जिन अनुप्रयोगों में उपयोगकर्ता को सही सर्वर पर फिर से निर्देशित करने की गारंटी दी जाती है, या जब सत्र स्थिति डेटा महत्वपूर्ण नहीं होता है (इस अर्थ में कि इसे फिर से बनाया जा सकता है या फिर से पॉप्युलेट किया जा सकता है) , यह चुनने का तरीका है।
  • प्रक्रिया से बाहर। जब प्रदर्शन महत्वपूर्ण होता है तो यह मोड सबसे अच्छा उपयोग किया जाता है लेकिन आप यह गारंटी नहीं दे सकते कि उपयोगकर्ता किस सर्वर से एप्लिकेशन का अनुरोध करेगा। आउट-ऑफ-प्रोसेस मोड के साथ, आपको स्मृति से पढ़ने और एक अलग प्रक्रिया की विश्वसनीयता की कार्यक्षमता मिलती है जो सभी सर्वरों के लिए राज्य का प्रबंधन करती है।
  • SQL सर्वर। इस मोड का सबसे अच्छा उपयोग किया जाता है जब डेटा की विश्वसनीयता अनुप्रयोग की स्थिरता के लिए मौलिक है, क्योंकि डेटाबेस विफलता परिदृश्यों के लिए क्लस्टर किया जा सकता है। प्रदर्शन प्रक्रिया के बाहर जितना तेज़ नहीं है, लेकिन ट्रेडऑफ विश्वसनीयता का उच्च स्तर है।
+0

यह भी ध्यान रखें कि SQL सर्वर और आउट-ऑफ-प्रोसेस दोनों सत्र सत्र के क्रमिकरण और deserialisation शामिल है, जो एक है अतिरिक्त प्रदर्शन ओवरहेड inproc के साथ बोझ नहीं है। –

+0

इसके अलावा, SQL सर्वर और आउट-ऑफ-प्रोसेस को आम तौर पर नेटवर्क पर डेटा भेजने की आवश्यकता होती है, इसलिए ओवरहेड wrt नेटवर्क संचार भी शामिल होते हैं, जिसमें इनप्रोक भी बोझ नहीं होता है। –

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