LINQ करने वाली एसक्यूएल CompiledQuery.Compile () अद्यतन के साथ, हटाएँ, सम्मिलित करें?

वोट
6

सब,

इसलिए मैं में LINQ करने वाली एसक्यूएल चीजें तेजी लाने के लिए CompiledQueries का उपयोग कर के लिए परिवर्तित कर मेरे सभी का चयन प्रश्नों मिल गया है। अब तक चुनिंदा बयानों के लिए अच्छा काम करता है, लेकिन मैं यह पता लगाने की कैसे पूर्व संकलित करने के लिए सम्मिलित करें, अद्यतन, या बयान को नष्ट नहीं कर पाए हैं।

दी, जब आप डालने रहे हटाने या में LINQ करने वाली एसक्यूएल को अद्यतन करने के लिए, आप ऑब्जेक्ट मॉडल का उपयोग करने के लिए है। लेकिन स्पष्ट रूप से कहीं न कहीं रास्ते में यह एक प्रश्न है, जो पहले से संकलन और एक स्थिर सदस्य में दुकान करने के लिए अच्छा होगा उत्पन्न करता है।

क्या यह संभव है? , हटाता है और आवेषण जब इसकी नहीं पूर्व संकलित अद्यतन के लिए की तरह LINQ प्रदर्शन कैसा है? मैं देख सकता यह एक बहुत चयन की तुलना में तेजी से किया जा रहा है, क्योंकि वे क्या नीचे करना बहुत आसान और कम डायनामिक है ...

09/12/2008 को 22:08
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
8

एक बड़ा अंतर है। LINQ-टू-एसक्यूएल का चयन प्रश्नों बड़ी जटिल भाव पेड़ हो सकता है। इसके इन कि कुछ समय लग सकता है 'संकलन'। इस मामले में कुछ T-SQL है कि एक एसक्यूएल सर्वर के खिलाफ चलाया जा सकता है के लिए coalescing। तो यह एक ऑपरेशन का परिणाम कैश करने के लिए इतना है कि यह फिर से इस्तेमाल किया जा सकता समझ में आता है।

हालांकि अन्य हटाएँ, अद्यतन, और सम्मिलित सरल आपरेशन की आवश्यकता नहीं है कि एक अभिव्यक्ति पेड़ T-SQL करने के लिए परिवर्तित किया (LINQ ही सब के बारे में क्वेरी करने है) कर रहे हैं। इसका सिर्फ दुर्भाग्यपूर्ण है कि हम एसक्यूएल कोड है कि 'जिज्ञासा', हम दरअसल नहीं कर रहे हैं किसी भी जानकारी के लिए पूछ के रूप में इन अन्य कार्यों प्रदर्शन के बारे में सोच करने के लिए प्रशिक्षित किया गया है।

ये अभियान केवल इन कार्यों को पहले से ही संकलित किया गया है प्रदर्शन करने के लिए DataContext से इसलिए LINQ द्वारा नहीं कोड परिभाषित कर रहे हैं।

09/12/2008 को 22:46
का स्रोत उपयोगकर्ता

वोट
3

मैं तीन केवल डालने के बारे में सोच समझ बनाने हैं संकलन और फिर से उपयोग करने में सक्षम होना हटाने क्योंकि तुच्छता सरल है (तालिका से हटा दें, जिनके कुंजी ...) और अद्यतन केवल क्षेत्रों को बदल दिया है कि अद्यतन करता है और इतने अपडेट करें कार्रवाई के साथ बदलती है।

[) Amien

10/12/2008 को 07:03
का स्रोत उपयोगकर्ता

वोट
0

L2S ताकि आप इसे पहली बार चलाने के बाद इसे संग्रहीत प्रक्रिया कार्य योजना लागू करके कैश में नहीं किया जा सकेगा "sp_executesql"। (समान क्वेरी की - एक ही नहीं पैरामीटर) इसके बाद रन कैश से संकलित योजना का पुन: उपयोग होगा। तो क्या आप के लिए पूर्ण रूप से अपने 'पर्दे के पीछे' एसक्यूएल सर्वर द्वारा नियंत्रित किया जाता पूछ रहे हैं।

10/12/2008 को 12:43
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more