यह अच्छा अभ्यास नहीं है। संख्यात्मक डेटा को NUMBER कॉलम में रखा जाना चाहिए। कारण सरल है:यदि हम एक मजबूत डेटा प्रकार को लागू नहीं करते हैं तो हम अपने varchar2 कॉलम में गैर-संख्यात्मक डेटा के साथ खुद को पा सकते हैं। अगर ऐसा होता तो इस तरह का एक फिल्टर
where to_number(field1) = 23
ORA-01722: invalid number
के साथ विफल हो जाएगा ।
मैं निश्चित रूप से यह नहीं कह सकता कि आपके परिदृश्य में यही हो रहा है, क्योंकि मुझे समझ में नहीं आता कि आईडी के फ़िल्टर में स्पष्ट रूप से महत्वहीन परिवर्तनों ने क्वेरी की सफलता को क्यों बदल दिया है। प्रश्नों के विभिन्न संस्करणों के लिए निष्पादन योजनाओं को देखना शिक्षाप्रद होगा। लेकिन मुझे लगता है कि SGA में बग की तुलना में आपके डेटा में समस्या होने की संभावना अधिक है।