दिलचस्प पोस्ट
यादृच्छिक अल्फा-न्यूमेरिक स्ट्रिंग कैसे उत्पन्न करें? डीजेन्गो-स्टोरेज और अमेज़ॅन एस 3 के साथ एक डीजेंगो प्रोजेक्ट को सेट अप कैसे करें, लेकिन स्थिर फाइलों और मीडिया फ़ाइलों के लिए अलग-अलग फ़ोल्डरों के साथ? मैं iPhone पर स्क्रीन लॉक / अनलॉक इवेंट कैसे ढूंढ सकता हूं? एक्सएसएल: स्ट्रिंग्स को विभाजित कैसे करें? मैं UITableView चयन हाइलाइटिंग को अक्षम कैसे कर सकता हूं? कैसे जांच करने के लिए कैसे डेटा स्थानांतरण दो ऑब्जेक्ट में सी # में समान गुण हैं? पॉलीमोर्फ़िक मॉडल बाइंडिंग एंड्रॉइड एप्लिकेशन को अग्रभूमि में चेक करना है या नहीं? टेक्सरेआ में लाइनों की सीमा और jQuery का उपयोग करने वाली डिस्प्ले लाइन गिनती गतिशील रूप से एक स्थानीय चर बनाने के लिए कैसे? जेएस: getElementsByClassName का परिणाम ऐरे का उपयोग करने के लिए IE8 में छद्म तत्व पर एक फ़िल्टर ग्रेडिएंट क्यों काम नहीं करता है? मौजूदा SQLite डेटाबेस के लिए एक पूर्ण एंड्रॉइड डाटाबेस हेल्पर क्लास क्या है? संदर्भ C ++ में क्यों नहीं reseatable हैं बाहरी जार पर "दल्विक प्रारूप में रूपांतरण त्रुटि 1 के साथ विफल"

कैसे SQL सर्वर में भौतिक दृश्य बनाने के लिए?

मैं एक डीडब्ल्यू डिजाइन करने जा रहा हूँ और मैंने भौतिक विचारों के बारे में सुना है। असल में मैं एक दृश्य बनाना चाहता हूं और जब बेस टेबल बदल जाएंगे तो इसे स्वचालित रूप से अपडेट करना चाहिए। क्या कोई क्वेरी उदाहरण के साथ समझा सकता है ..

वेब के समाधान से एकत्रित समाधान "कैसे SQL सर्वर में भौतिक दृश्य बनाने के लिए?"

उन्हें SQL सर्वर में अनुक्रमित दृश्य कहा जाता है – अधिक पृष्ठभूमि के लिए इन श्वेत पत्रों को पढ़ें:

  • एक अनुक्रमित दृश्य बनाना
  • SQL सर्वर 2008 अनुक्रमित दृश्य के साथ प्रदर्शन में सुधार

असल में, आपको बस इतना करना होगा:

  • एक नियमित दृश्य बनाएं
  • उस दृश्य पर एक संकुल सूचक बनाएं

और आपने कल लिया!

मुश्किल भाग यह है: दृश्य को काफी सी कठिनाइयों और सीमाओं को पूरा करना है – वे श्वेत पत्र में दिए गए हैं। यदि आप ऐसा करते हैं – ये सब कुछ है दृश्य स्वचालित रूप से अद्यतन किया जा रहा है, कोई रखरखाव की आवश्यकता नहीं है

अतिरिक्त संसाधन:

  • SQL सर्वर में दृश्य बनाना और ऑप्टिमाइज़ करना
  • SQL सर्वर अनुक्रमित दृश्य

यद्यपि इंजीनियरिंग के परिप्रेक्ष्य से पूरी तरह से, अनुक्रमित दृश्य कुछ ऐसे लोगों की तरह लगते हैं जो प्रदर्शन में सुधार करने के लिए इस्तेमाल कर सकते हैं लेकिन वास्तविक जीवन परिदृश्य बहुत अलग है। मैं असफल रहा है अनुक्रमित दृश्यों का उपयोग कर रहा है जहां मुझे सबसे ज्यादा ज़रूरत है क्योंकि इन्हें अनुक्रमित किया जा सकता है और क्या नहीं किया जा सकता है।

यदि आपके पास बाहरी विचारों में शामिल है, तो इसका उपयोग नहीं किया जा सकता। इसके अलावा, सामान्य तालिका अभिव्यक्ति की अनुमति नहीं है … वास्तव में यदि आपके पास उप-चयन या व्युत्पन्न तालिकाओं (जैसे कि खंड द्वारा विभाजन के साथ) में कोई आदेश है, तो आप भाग्य से भी बाहर हैं।

यह अनुक्रमित दृश्यों का उपयोग करने के लिए केवल बहुत सरल परिदृश्य छोड़ देता है, मेरी राय में कुछ भी अंतर्निहित तालिकाओं पर उचित अनुक्रमित बनाकर अनुकूलित किया जा सकता है।

मुझे कुछ वास्तविक जीवन परिदृश्य सुनने के लिए रोमांचित होगा जहां लोगों ने वास्तव में अनुक्रमित विचारों को उनके लाभ के लिए उपयोग किया है और उनके बिना नहीं किया जा सकता था

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

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

SQL सर्वर में, मैं निम्नलिखित को नियमित रूप से रीफ्रेश (पूर्ण) करने के लिए बुनियादी MVIEW बनाने के लिए उपयोग करूंगा

सबसे पहले, एक दृश्य किसी भी डाटाबेस में विचार काफी सामान्य हैं, इसके बाद से यह आसान होना चाहिए, एक तालिका यह कॉलम और डेटा में दृश्य के समान होना चाहिए। यह दृश्य डेटा का स्नैपशॉट स्टोर करेगा। फिर, एक प्रक्रिया जो तालिका को छोटा करती है, और दृश्य में वर्तमान डेटा के आधार पर इसे पुनः लोड करता है। अंत में, एक नौकरी जो कार्य को शुरू करने के लिए प्रक्रिया को ट्रिगर करती है

सब कुछ प्रयोग है

जब अनुक्रमित दृश्य एक विकल्प नहीं है, और त्वरित अपडेट आवश्यक नहीं हैं, तो आप एक हैक कैश तालिका बना सकते हैं:

 select * into cachetablename from myviewname alter table cachetablename add primary key (columns) -- OR alter table cachetablename add rid bigint identity primary key create index... 

फिर sp_rename देखें / तालिका या किसी भी प्रश्न या कैश तालिका को इंगित करने के लिए संदर्भ अन्य विचारों को बदलने।

अनुसूची दैनिक / रात / साप्ताहिक / जोनोट ताज़ा करें जैसे

 begin transaction truncate table cachetablename insert into cachetablename select * from viewname commit transaction 

एनबी: यह आपके टीएक्स लॉग में भी जगह खाएगा। सर्वश्रेष्ठ आंकड़ों के लिए धीमी गति से छोटे डेटासेट के लिए उपयोग किया जाता है शायद बाहरी दृश्य में पहले "आसान लेकिन बड़े" कॉलम को खत्म करने के लिए रिफ्लेक्टर

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

https://msdn.microsoft.com/en-us/library/ms190806.aspx

https://technet.microsoft.com/en-us/library/ms189607(v=sql.105).aspx