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

मुझे Oracle की अनुक्रमणिका संगठित तालिका का उपयोग कब करना चाहिए? या, मुझे कब नहीं करना चाहिए?

मूल रूप से एक अनुक्रमणिका-संगठित तालिका तालिका के बिना एक अनुक्रमणिका है। एक टेबल ऑब्जेक्ट है जिसे हम USER_TABLES में पा सकते हैं लेकिन यह केवल अंतर्निहित इंडेक्स का संदर्भ है। सूचकांक संरचना तालिका के प्रक्षेपण से मेल खाती है। इसलिए यदि आपके पास एक तालिका है जिसके कॉलम में प्राथमिक कुंजी है और अधिक से अधिक एक अन्य कॉलम है तो आपके पास INDEX ORGANIZED के लिए एक संभावित उम्मीदवार है।

अनुक्रमणिका संगठित तालिका के लिए मुख्य उपयोग का मामला एक तालिका है जिसे लगभग हमेशा इसकी प्राथमिक कुंजी द्वारा एक्सेस किया जाता है और हम हमेशा इसके सभी स्तंभों को पुनः प्राप्त करना चाहते हैं। व्यवहार में, अनुक्रमणिका संगठित तालिकाएँ संदर्भ डेटा, कोड लुक-अप मामले होने की सबसे अधिक संभावना है। एप्लिकेशन टेबल लगभग हमेशा ही व्यवस्थित होते हैं।

सिंटैक्स एक IOT को एक से अधिक गैर-कुंजी कॉलम रखने की अनुमति देता है। कभी-कभी ये सही होता है। लेकिन यह भी एक संकेत है कि शायद हमें अपने डिजाइन निर्णयों पर पुनर्विचार करने की आवश्यकता है। निश्चित रूप से अगर हम गैर-प्राथमिक कुंजी कॉलम पर अतिरिक्त इंडेक्स की आवश्यकता पर विचार कर रहे हैं तो हम शायद नियमित ढेर तालिका के साथ बेहतर हो जाते हैं। इसलिए, चूंकि अधिकांश तालिकाओं को अतिरिक्त अनुक्रमणिका की आवश्यकता होती है, अधिकांश तालिकाएं IOT के लिए उपयुक्त नहीं होती हैं।

इस उत्तर पर वापस आकर मैं इस धागे में कुछ अन्य प्रतिक्रियाओं को देखता हूं जो आईओटी के लिए उपयुक्त उम्मीदवारों के रूप में चौराहे की तालिकाओं का प्रस्ताव करते हैं। यह उचित लगता है, क्योंकि प्रतिच्छेदन तालिकाओं के लिए एक प्रक्षेपण होना आम बात है जो उम्मीदवार कुंजी से मेल खाता है:STUDENTS_CLASSES में केवल (STUDENT_ID, CLASS_ID) का प्रक्षेपण हो सकता है।

मुझे नहीं लगता कि यह कच्चा लोहा है। इंटरसेक्शन टेबल में अक्सर एक तकनीकी कुंजी होती है (अर्थात STUDENT_CLASS_ID)। उनके पास गैर-कुंजी कॉलम भी हो सकते हैं (मेटाडेटा कॉलम जैसे START_DATE, END_DATE सामान्य हैं)। इसके अलावा कोई प्रचलित पहुंच पथ नहीं है - हम उन सभी छात्रों को ढूंढना चाहते हैं जो जितनी बार कक्षा लेते हैं उतनी बार हम एक छात्र द्वारा ली जा रही सभी कक्षाओं को ढूंढना चाहते हैं - इसलिए हमें एक अनुक्रमण रणनीति की आवश्यकता होती है जो दोनों को समान रूप से अच्छी तरह से समर्थन देती है। यह नहीं कहना कि चौराहे की मेज IOT के लिए उपयोग का मामला नहीं है। बस इतना है कि वे स्वचालित रूप से ऐसा नहीं हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Visual Studio 2017 में Oracle Attunity ड्राइवर स्थापित करें

  2. शेल स्क्रिप्ट से sqlplus में वैरिएबल कैसे पास करें?

  3. क्या एक इन्सर्ट ऑपरेशन एक और डीडीएल ऑपरेशन प्रतीक्षा कर सकता है?

  4. ORACLE में LAG फ़ंक्शन का उपयोग करके पिछले दिनों की गणना अपडेट करें

  5. SQL डेवलपर में CSV…