अपने अलग-अलग मामलों (आइडिया या जावा प्रोग्राम) से एनएलएस पैरामीटर प्राप्त करने का प्रयास करें, वे अलग-अलग होने चाहिए
select * from NLS_SESSION_PARAMETERS
फिर अपने स्टोर प्रक्रिया के अंदर वेरिएबल्स को सबसे तेज़ केस से बराबर बनाने के लिए सेट करें।
execute immediate 'alter session set NLS_SORT=''SPANISH''';
एक बार जब आप एसपी के पास सभी एनएलएस पैरामीटर हों। यह तेजी से चलेगा।
मैंने अभी हाल ही में इसी तरह का मामला पाया है Alter सत्र हाइबरनेट के माध्यम से क्वेरी को धीमा कर देता है। लेकिन उनके मामले में वे डी पैरामीटर बदलते हैं और फिर धीमे हो जाते हैं।
मैंने जांच की और पाया कि पैरामीटर NLS_COMP y NLS_SORT प्रभावित कर सकते हैं कि कैसे oracle स्ट्रिंग के लिए निष्पादन योजना का उपयोग करता है (जब यह तुलना या ऑर्डर कर रहा हो)
जब NLS_COMP को LINGUISTIC के रूप में परिभाषित किया जाता है, तो यह NLS_SORT में परिभाषित भाषा का उपयोग करेगा।
उदाहरण के लिए, यदि NLS_COMP =LINGUISTIC और NLS_SORT=BINARI_AI आपकी क्वेरी है
select * from table where string_column like 'HI%'
आंतरिक रूप से यह करेगा
select * from table where
NLSSORT(string_column,'BINARI_AI') >= HEXTORAW('324242432')
NLSSORT(string_column,'BINARI_AI') >= HEXTORAW('675757576')
इसलिए यदि आपके पास NLSSORT(column,'BINARI_AI') के लिए कोई अनुक्रमणिका नहीं है तो यह बहुत धीमी होगी।
यह जानते हुए कि NLS_SORT=BINARY_AI आपके आदेश और तुलना को उच्चारण-असंवेदनशील और केस-असंवेदनशील बना देगा।