2009-06-02 21 views
5

मैं अपने .NET C# एप्लिकेशन पर डेटा कैशिंग का उपयोग करना चाहता हूं। अब तक मैंने डेटा कैशिंग जोड़ा है और विशिष्ट तालिकाओं पर एसक्यूएल कैश निर्भरताओं को जोड़ा है। लेकिन यह काफी अच्छा नहीं है। इन तालिकाओं को बहुत बार अद्यतन किया जाएगा लेकिन बहुत से कैश किए गए ऑब्जेक्ट्स के लिए प्रासंगिक नहीं है। इससे डाटा कैशिंग लगभग बेकार हो जाएगी क्योंकि इसे अक्सर फ़्लश किया जाएगा। मैं प्रत्येक ऑब्जेक्ट के लिए विशिष्ट पंक्तियों पर एसक्यूएल कैश निर्भरता को कार्यान्वित करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?मैं पंक्ति विशिष्ट एसक्यूएल कैश निर्भरता कैसे बना सकता हूं?

+0

aspnet_regsql के लिए दस्तावेज़ केवल तालिकाओं का उल्लेख है, लेकिन BTW जब मैं कहता हूँ 'hardcoded WHERE' मुझे शक है यह काम करेंगे, किसी दृश्य के खिलाफ यह उपयोग करने की कोशिश की है?, लेकिन यह एक शॉट के लायक हो सकता है। –

उत्तर

5

आपको यह समझने की आवश्यकता है कि SQLDependency कैसे काम करता है। आप subscribe a result set and get notified when that result set has changed। आप किसी भी प्रकार के परिणाम सेट की सदस्यता ले सकते हैं, जिसका अर्थ है किसी भी तरह की क्वेरी, जब तक यह restrictions of the supported statements के अनुरूप है। तालिका या दृश्य होने पर यह वास्तव में कोई फर्क नहीं पड़ता है।

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

आप डेटा के विभाजन को पुनर्प्राप्त और कैश करना भी चुन सकते हैं, यानी। कुंजी की व्यक्तिगत श्रेणियां ('ए' और 'डी', 'ई' और 'एच' आदि के बीच कहें और उस विशिष्ट डेटा विभाजन के लिए अधिसूचित होने की सदस्यता लें।

यदि आप understand how SqlDependency works चाहते हैं तो मेरे ब्लॉग में कुछ लेख शामिल हैं , common programming pitfalls of SqlDependency और deployment problems with SqlDependency भी शामिल है।

+0

मुझे लुकअप कुंजियों को कड़ी कोड करने का मतलब नहीं है। आप @parameters OK का उपयोग कर सकते हैं, मेरा मतलब यह है कि आपको केवल रुचि की अपनी पंक्ति में परिणामसेट को प्रतिबंधित करने के लिए WHERE क्लॉज जोड़ना होगा। –

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