2008-08-07 12 views
17

एसक्यूएल सर्वर 2008 बैकएंड के साथ अधिकतर निम्न-स्तर सी के साथ लोड कस्टम अनुकूलित क्वेरी की तुलना में सी # और LINQ का उपयोग करने के साथ कितना डेटाबेस प्रदर्शन ओवरहेड शामिल है?LINQ का उपयोग करते समय डेटाबेस प्रदर्शन ओवरहेड कितना है?

मैं विशेष रूप से ऐसे मामले के बारे में सोच रहा हूं जहां आपके पास काफी डेटा-गहन प्रोग्राम है और प्रति डेटा कम से कम एक बार डेटा रीफ्रेश या अपडेट करेगा और 50-100 एक साथ उपयोगकर्ता होंगे।

उत्तर

1

मेरे अनुभव में ओवरहेड न्यूनतम है, बशर्ते कि प्रश्न लिखने वाला व्यक्ति जानता है कि वह क्या कर रहा है, और यह सुनिश्चित करने के लिए सामान्य सावधानी बरतें कि जेनरेट किए गए प्रश्न इष्टतम हैं, आवश्यक इंडेक्स आदि आदि हैं। दूसरे शब्दों में, डेटाबेस प्रभाव एक जैसा होना चाहिए; ऐप पक्ष पर एक न्यूनतम लेकिन आमतौर पर नगण्य ओवरहेड है।

उस ने कहा ... इसमें एक अपवाद है; यदि एक एकल क्वेरी कई समेकित उत्पन्न करती है तो L2S प्रदाता इसे एक उप-क्वेरी प्रति कुल के साथ एक बड़ी क्वेरी में अनुवाद करता है। एक बड़ी तालिका के लिए क्वेरी में प्रत्येक नए कुल के लिए क्वेरी द्वारा बढ़ने के लिए डीबी I/O लागत के रूप में महत्वपूर्ण I/O प्रभाव हो सकता है।

इसके लिए वर्कअराउंड कुल मिलाकर संग्रहित प्रो या दृश्य में स्थानांतरित करने के लिए है। मैट वॉरेन के पास एक वैकल्पिक क्वेरी प्रदाता के लिए कुछ नमूना कोड है जो उस तरह के प्रश्नों को अधिक कुशल तरीके से अनुवादित करता है।

संसाधन:

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=334211

http://blogs.msdn.com/mattwar/archive/2008/07/08/linq-building-an-iqueryable-provider-part-x.aspx

2

धन्यवाद स्टू। नीचे की रेखा यह प्रतीत होती है कि LINQ से SQL में नए संस्करणों के साथ एक महत्वपूर्ण डेटाबेस प्रदर्शन ओवरहेड नहीं है यदि आप संकलित चयन का उपयोग करने में सक्षम हैं, और अपडेट करने के धीमे कार्यों को तेज होने की संभावना है जब तक कि आपके पास वास्तव में तेज़ न हो विशेषज्ञ कोडिंग के अधिकांश कर रहे हैं।

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