दोनों सवालों के जवाब देने का मेरा तरीका अलग है। मैं आम तौर पर ट्रिगर्स का उपयोग करने से बचता हूं जब तक कि यह अंतिम विकल्प न हो क्योंकि यह डेटाबेस पर अनावश्यक ओवरहेड जोड़ता है।
ट्रिगर और संग्रहीत कार्यविधि के बीच तुलना
- डेटाबेस में तालिका संबंध, बाधाओं, अनुक्रमित, संग्रहीत प्रक्रिया को देखना आसान है लेकिन ट्रिगर को देखना मुश्किल है।
- ट्रिगर क्लाइंट-एप्लिकेशन एप्लिकेशन के लिए अदृश्य निष्पादित करते हैं। वे दिखाई नहीं दे रहे हैं या डिबगिंग कोड में पता लगाया जा सकता है।
- ट्रिगर्स के बारे में भूलना आसान है और यदि कोई दस्तावेज नहीं है तो नए डेवलपर्स के लिए उनके अस्तित्व का पता लगाना मुश्किल होगा।
- ट्रिगर हर बार चलते हैं जब डेटाबेस फ़ील्ड अपडेट होते हैं और सिस्टम पर यह ओवरहेड होता है। यह सिस्टम को धीमा कर देता है।
पर्याप्त कहा, यही कारण है कि मैं संग्रहित प्रोसेस पसंद करता हूं। आप एजेंट के माध्यम से एक जॉब फ़ाइल बना सकते हैं (उदाहरण के लिए कहें:यह हर 30 मिनट या किसी अन्य समय के बाद निष्पादित होती है)। आप उस जॉब फ़ाइल में सम्मिलन के लिए तर्क का उपयोग कर सकते हैं। इस तरह आपका डेटा tree table
. में वास्तविक समय के निकट होगा।
अब एजेंट बनाने के लिए संदर्भ:
http://msdn.microsoft.com/en-us/library/ms191128(v=sql.90).aspx
http://msdn. microsoft.com/en-us/library/ms181153(v=sql.105).aspx