क्वेरी योजनाओं को कैसे संकलित, संग्रहीत और पुनर्प्राप्त किया गया है, इसके मेरे सीमित ज्ञान से मैं समझता हूं कि एक बहु कथन क्वेरी या संग्रहीत कार्यविधि यह क्वेरी योजना उत्पन्न करेगी जो भविष्य की निष्पादनों में क्वेरी द्वारा उपयोग की जाने वाली क्वेरी योजना कैश में संग्रहीत की जाएगी।
मुझे लगता है कि इस योजना को क्वेरी हैश के साथ क्वेरी हैश से पुनर्प्राप्त किया गया है, जिसका अर्थ है कि यदि क्वेरी संपादित की गई है और निष्पादित की गई हैश अलग है और एक नई योजना उत्पन्न होती है क्योंकि क्वेरी प्लान कैश में कोई मिलान हैश नहीं मिल सकता है।
मेरा प्रश्न यह है: यदि कोई उपयोगकर्ता किसी ऐसे कथन को निष्पादित करता है जो बहु-कथन क्वेरी में दिए गए कथनों में से एक है, तो क्या वह बहु-कथन क्वेरी के लिए कैश में पहले से ही क्वेरी प्लान के उस प्रासंगिक हिस्से का उपयोग कर सकता है? मुझे उम्मीद है कि उत्तर नहीं है क्योंकि हैश मूल्य स्पष्ट रूप से मेल नहीं खाएंगे, लेकिन बहु-स्टेटमेंट क्वेरी में प्रत्येक स्टेटमेंट को हैश करना बेहतर होगा ताकि वे उपयोगकर्ताओं को क्वेरी से अलग-अलग स्टेटमेंट चला रहे हों?
मुझे उम्मीद है कि ऐसी जटिलताएँ हैं जो मैं ध्यान में नहीं रख रहा हूँ (और यह इन है कि मैं वास्तव में इसके बारे में जानना चाहता हूं), लेकिन ऐसा लगता है कि हम कई क्वेरी योजनाओं में एक ही 'स्टेटमेंट प्लान' जमा कर सकते हैं और अधिक स्थान ले रहे हैं और अधिक ले रहे हैं सीपीयू और उत्पन्न करने का समय।
हालांकि मेरी अज्ञानता दिखा सकता है।
dbid
औरobjectid
दोनों के पासis_cache_key=1
इतना है कि आपको विभिन्न संकलित वस्तुओं के बीच योजनाओं का कोई भी पुन: उपयोग नहीं मिलेगा।