IMCO (इनमेमोरी कोऑर्डिनेटर) प्रक्रिया सक्रिय हो जाती है हर दो मिनट में और यह देखने के लिए जांच करता है कि क्या कोई जनसंख्या कार्य पूरा करने की आवश्यकता है। इसलिए, स्मृति के लिए इसे सक्षम करने के तुरंत बाद किसी तालिका से पूछताछ करना यह सुनिश्चित नहीं करता है कि क्वेरी को स्मृति से परोसा जाना है।
डेटाबेस खोलने के तुरंत बाद या पहली बार टेबल स्कैन (पूछताछ) के बाद ऑब्जेक्ट्स को IM कॉलम स्टोर में प्राथमिकता सूची में पॉप्युलेट किया जाता है।
उदाहरण के लिए, यदि हम स्मृति के लिए तालिका tab1, tab2, tab3 सक्षम करते हैं:
alter table tab1 inmemory priority medium;
alter table tab3 inmemory priority high;
alter table tab2 inmemory priority critical;
ये तालिकाएँ स्मृति में तब आती हैं जब:
- IMCO प्रक्रिया इन तालिकाओं को उठाती है और उन्हें स्मृति क्षेत्र में लोड करती है (उच्चतम से निम्नतम प्राथमिकता के क्रम में:tab2, tab3 और tab1)
- अगर हम किसी भी टेबल पर चुनिंदा क्वेरी करते हैं (उदाहरण:
select * from tab1
) IMCO प्रक्रिया शुरू होने से पहले (प्रत्येक 2 मिनट में)
यह जानने के लिए कि क्या कोई तालिका/विभाजन पूरी तरह से स्मृति में लोड है, आप v$im_segments
को क्वेरी कर सकते हैं निम्न की तरह देखें:
select owner, segment_name, partition_name, segment_type, bytes,
bytes_not_populated, populate_status from v$im_segments;
तो, आपके प्रश्न का उत्तर देने के लिए:
- सुनिश्चित करें कि
v$im_segments
को क्वेरी करके तालिका को मेमोरी में लोड किया गया है - यदि तालिका लोड नहीं होती है, तो इसे स्मृति क्षेत्र में लोड करने के लिए उस पर क्वेरी का चयन करें
- टेबल पर चुनिंदा क्वेरी के लिए क्वेरी प्लान प्राप्त करें, यह INMEMORY को प्लान के हिस्से के रूप में दिखाना चाहिए
इसे श्वेतपत्र देखें अधिक जानकारी के लिए।