Oracle RAC प्रदर्शन ट्यूनिंग के अध्याय 3 में, मैंने दिखाया कि कैसे अनुक्रमों के लिए अनुचित CACHE मान Oracle RAC में खराब प्रदर्शन का कारण बन सकते हैं। मैंने यह भी दिखाया कि सत्र की प्रतीक्षा घटनाओं को देखते समय अनुक्रम विवाद को कैसे देखा जाए।
आज, मैं एक डेवलपर के साथ काम कर रहा था जो एक नया अनुक्रम बना रहा था। डेवलपर के पास 100 का CACHE मान था, जिसने मुझे शुरुआत में एक मूल्य से बहुत कम बना दिया था। मैंने कोड समीक्षा के दौरान इस कम सेटिंग को देखा। डेवलपर को लगता है कि CACHE मान ठीक है लेकिन मैं आश्वस्त नहीं हूं। हम यह देखने के लिए लोड के तहत इसका परीक्षण करेंगे कि क्या CACHE मान को समायोजित करने की आवश्यकता है।
इस बीच, मैं सोच रहा था "क्या होगा अगर मैं कोड समीक्षा के दौरान इसे चूक गया?" और एक अनुवर्ती प्रश्न, "क्या होगा यदि हमने लोड परीक्षण के दौरान कुछ भी नोटिस नहीं किया?" मैं वापस जाने और यह निर्धारित करने में सक्षम होना चाहता हूं कि कौन से अनुक्रम, यदि कोई हो, अनुचित CACHE सेटिंग के लिए उम्मीदवार होंगे। मैं निश्चित रूप से सत्रों का पता लगा सकता था और ट्रेस फाइलों का विश्लेषण कर सकता था, लेकिन यह बहुत दर्दनाक होगा। इसलिए मैंने एक स्क्रिप्ट तैयार की जिसे मैं उम्मीदवार अनुक्रम निर्धारित करने में सहायता के लिए सक्रिय सत्र इतिहास के विरुद्ध चला सकता हूं।
select sh.sql_id,to_char(st.sql_text),count(*) from dba_hist_active_sess_history sh join dba_hist_sqltext st on sh.sql_id=st.sql_id where st.sql_text like '%NEXTVAL%' and (event='row cache lock' or event like 'gc current block %-way') group by sh.sql_id,to_char(st.sql_text) order by count(*) desc;
एएसएच संग्रह की प्रकृति के कारण यह एक आदर्श विज्ञान नहीं है। विवाद का अनुभव करने वाले सत्र को DBA_HIST_ACTIVE_SESSION_HISTORY तालिका में होने के लिए सही समय पर पकड़ने की आवश्यकता होगी। लेकिन उपरोक्त SQL कथन मुझे कुछ उम्मीदवारों को विचार के लिए देता है। लौटाए गए SQL कथनों में एक्सेस किए गए प्रत्येक अनुक्रम को उनके CACHE मानों को समायोजित करने की आवश्यकता नहीं है। आगे के विश्लेषण की आवश्यकता होगी। हालांकि, यह मुझे विचार करने वालों की एक सूची देता है। और यह मेरे शुरुआती सवालों के जवाब देने में मदद कर सकता है। अगर मैं कोड समीक्षा के दौरान अनुक्रम निर्माण से चूक गया, तो मैं उम्मीद कर सकता हूं कि यदि अनुक्रम अनुप्रयोग प्रदर्शन के लिए एक समस्या है तो मैं इसे बाद में ढूंढ सकता हूं।