2009-07-08 12 views
5

मेरे संगठन में हमें LinqToSQL का उपयोग करने जैसे निर्णयों के लिए एक अलग डीबीए समूह का जवाब देना होगा। संग्रहीत प्रक्रियाओं के बजाए एल 2 एस का उपयोग करने के कुछ बेहतरीन कारणों के रूप में आप क्या देखते हैं।प्रिय डीबीए - मैं संग्रहीत प्रक्रियाओं के बजाय LinqToSQL का उपयोग करना चाहता हूं क्योंकि

उत्तर

3

मुझे लगता है कि यह कोड एकीकरण के लिए उबलता है। संग्रहीत प्रक्रियाओं को देखने के बजाय, आप बस अपने आवेदन में कोड देख सकते हैं।

इस लिंक पर एक नज़र डालें ... http://www.linqpad.net/WhyLINQBeatsSQL.aspx

मैं भी क्षमता के लिए LINQ प्रश्नों की तरह गतिशील एसक्यूएल का निर्माण करने की ताकि गतिशील और नहीं बल्कि डिबग करने के लिए आसान दिखाई नहीं पाया है। उदाहरण के लिए, मान लें कि आपके पास 10 अलग-अलग मानदंड/फ़िल्टर वाले एक खोज पृष्ठ है। उपयोगकर्ता उनमें से केवल 2 पर फिल्टर, तो आप अगर कुछ हालत सच है क्वेरी पर एक जहां फ़िल्टर जोड़ने के लिए एक विस्तार विधि बना सकते हैं। आप एक sproc था, तो आप डिबग करने के लिए एक मेस का एक ढेर ...

+0

हर तरह से कई समर्थक विपक्ष हैं, लेकिन एप्लिकेशन आर्किटेक्चर का निर्णय लेने के लिए आपको संग्रहित प्रक्रियाओं को देखने की ज़रूरत नहीं है, बस पागल है! –

+0

@ केएम - ऐसा नहीं लगता कि मैंने कभी भी एक स्पोक लिखने से बचने के लिए LINQ का उपयोग करने का सुझाव दिया है। मैं एक जिम्मेदारी पैटर्न का प्रशंसक हूं, जितना अधिक नहीं, डेटाबेस से कनेक्टिविटी और मैं डेटा कैसे प्राप्त करता हूं, स्टैंड स्टैंड अकेले संरचना का कुछ रूप है ... मैं मानता हूं कि हर तरह पेशेवर/विपक्ष हैं और आप मामले के आधार पर आपके डीएओ संरचना के मामले में निर्णय लेने की आवश्यकता है। – RSolberg

+0

@RSolberg ने कहा, "मुझे लगता है कि यह कोड एकीकरण के लिए उबलता है। संग्रहीत प्रक्रियाओं को देखने के बजाय, आप बस अपने आवेदन में कोड देख सकते हैं।" मैंने "संग्रहित प्रक्रियाओं को देखने के बजाय" जैसा ही लिखा है, "इसलिए आपको संग्रहीत प्रक्रियाओं को देखने की आवश्यकता नहीं है"। –

2

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

1

एल 2 एस का उपयोग करते समय, अधिक नियंत्रण एप्लिकेशन डेवलपर के अधीन है। तो, मैं कहूंगा, आप डीबीए समूह को अतिरिक्त संचार के बिना जल्दी से कुछ ठीक कर सकते हैं।

रिपोर्टों के अलावा जो बहुत डेटा केंद्रित है, मैं शायद ही कभी संग्रहित प्रक्रिया का उपयोग करता हूं।

6

स्टैक ओवरफ्लो प्रश्न, Linq to SQL vs Stored Procedures?, दोनों पक्षों के लिए कुछ अच्छे अंक हैं।

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

हालांकि, LINQ का उपयोग कर आप टाइप सुरक्षा मिलता है, अपने DAL आसान संस्करणीकृत और अपनी परियोजना के साथ बनाए रखा रखने के लिए है, यह परीक्षण करने के लिए आसान और बेहतर डिबगिंग समर्थन है।

+0

प्रकार की सुरक्षा चीज़ से सहमत है, यह मेरे लिए सबसे बड़ा लाभ है। – bbqchickenrobot

+1

मैं कहूंगा कि LINQ से SQL निश्चित रूप से परीक्षण करना आसान नहीं है। यह देखते हुए कि यह आपको क्वेरी निर्माण के लिए कहीं अधिक मार्ग प्रदान करता है, आपके पास संग्रहीत प्रक्रिया के लिए एक साधारण पैरामीटर सूची की तुलना में परीक्षण करने के लिए कई और अंक हैं। –

1

यह रूप में अच्छी तरह SQL इंजेक्शन के खिलाफ कर पाएगा होगा।

sprocs भी करते हैं, लेकिन DBAs इस बारे में चिंतित अगर आप linq2sql का उपयोग कर रहे होंगे, इसलिए उन्हें पता है कि इस तरह आपको की कायल करने में मदद मिलेगी का उपयोग L2S

L2S भी DBAs पर ध्यान केंद्रित करने की अनुमति देगा डेटाबेस और 'अपनी तालिका संरचनाओं, अनुक्रमित, आदि के अनुकूलन और नहीं, डेटाबेस के भीतर किसी भी sprocs के समर्थन के बारे में चिंता करने की वजह से है कि जिम्मेदारी देव टीम के लिए स्थानांतरित कर दिया जाएगा।

+0

दोनों प्रक्रियाओं और Linq2sql इसके खिलाफ रोकें। किसी भी paramterized प्रश्न इस के खिलाफ रोका जाएगा। – bbqchickenrobot

+1

@bbqchickenrobot: आप सही हैं, लेकिन जैसा कि sprocs को बढ़ावा देने के लिए एक रास्ता DBAs तथ्य यह है कि sprocs एसक्यूएल इंजेक्शन के खिलाफ रोकने उपयोग नहीं कर सकते> linq2sql (मैं इस लगता है क्या मैं वास्तव में कहने की कोशिश कर रहा था) –

0

इस चेक बाहर, एक तरह से यहां चर्चा की गई:

LINQ-to-SQL vs stored procedures?


इसके अलावा, हम डेटा को अद्यतन करने के लिए डेटा के पढ़ने के लिए LINQ और संग्रहित प्रक्रियाओं का उपयोग करना चाहते के रूप में वहाँ कुछ व्यापार है हमारे sprocs में तर्क (दुर्भाग्य से)। मैं सबसे प्राथमिक के अपवाद के साथ स्पॉक्स में बिज़ तर्क से सहमत नहीं हूं। दोनों पक्षों के लिए तर्क हो सकते हैं और वे आपके पर्यावरण के लिए प्रासंगिक होंगे।

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

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