Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

इसे कैसे निष्पादित किया जाता है, इसके आधार पर ऑरैकल संग्रहीत कार्यविधि निष्पादन समय बहुत अधिक क्यों बढ़ जाता है?

अपने अलग-अलग मामलों (आइडिया या जावा प्रोग्राम) से एनएलएस पैरामीटर प्राप्त करने का प्रयास करें, वे अलग-अलग होने चाहिए

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 आपके आदेश और तुलना को उच्चारण-असंवेदनशील और केस-असंवेदनशील बना देगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php . के साथ utf-8 में oracle से डेटा

  2. Oracle PL/SQL में कॉलिंग प्रक्रिया या फ़ंक्शन का नाम प्राप्त करें

  3. जावा - ऑरैकल संग्रहीत प्रक्रिया में पासिंग सरणी

  4. Oracle Regexp \n,\r और \t को स्पेस से बदल देगा

  5. कॉलम के औसत की गणना कैसे करें और फिर इसे ऑरैकल में एक चुनिंदा क्वेरी में शामिल करें?