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

पीएल/एसक्यूएल में कर्सर के लिए चयन * का उपयोग खराब प्रोग्रामिंग माना जाता है?

select * . का उपयोग करना आपके कोड में मैं आलसी प्रोग्रामिंग कहूंगा, जिसमें कई दुष्प्रभाव हैं। आप उन दुष्प्रभावों का कितना अनुभव करते हैं, यह अलग होगा, लेकिन यह कभी भी सकारात्मक नहीं होता है।

मैं पहले से ही अन्य उत्तरों में उल्लिखित कुछ बिंदुओं का उपयोग करूंगा, लेकिन बेझिझक अपने उत्तर को संपादित कर सकता हूं और select * का उपयोग करने के बारे में कुछ और नकारात्मक बिंदु जोड़ सकता हूं। ।

  1. आप SQL इंजन से अपने कोड में आवश्यकता से अधिक डेटा भेज रहे हैं, जिसका प्रदर्शन पर नकारात्मक प्रभाव पड़ता है।

  2. आपके द्वारा वापस प्राप्त की जाने वाली जानकारी को वेरिएबल (उदाहरण के लिए एक रिकॉर्ड वेरिएबल) में रखा जाना चाहिए। यह आवश्यकता से अधिक पीजीए मेमोरी लेगा।

  3. select * . का उपयोग करके वांछित जानकारी प्राप्त करने के लिए आप कभी भी अकेले इंडेक्स का उपयोग नहीं करेंगे, आपको हमेशा टेबल पर भी जाना होगा (बशर्ते कोई इंडेक्स मौजूद न हो जिसमें टेबल के सभी कॉलम हों)। फिर से, प्रदर्शन पर नकारात्मक प्रभाव के साथ।

  4. आपके कोड को बनाए रखने वाले लोगों के लिए कम स्पष्ट है कि आपका इरादा क्या है। क्या पुनर्प्राप्त किया जा रहा है, यह जानने के लिए उन्हें आपके रिकॉर्ड चर की सभी घटनाओं को खोजने के लिए कोड में जाने की आवश्यकता है।

  5. आप गणना करने के लिए SQL फ़ंक्शन का उपयोग नहीं करेंगे, लेकिन हमेशा PL/SQL या Java गणनाओं पर निर्भर रहेंगे। आप संभवतः कुछ बेहतरीन SQL सुधारों जैसे विश्लेषणात्मक कार्यों, मॉडल क्लॉज, रिकर्सिव सबक्वेरी फैक्टरिंग और इसी तरह से गायब हैं।

  6. Oracle11 के बाद से, निर्भरता को कॉलम स्तर पर ट्रैक किया जा रहा है, जिसका अर्थ है कि जब आप select * . का उपयोग करते हैं , आपका कोड डेटा डिक्शनरी में उस तालिका के "सभी स्तंभों पर निर्भर" के रूप में चिह्नित किया जा रहा है। जब उन स्तंभों में से किसी एक के साथ कुछ होता है तो आपकी प्रक्रिया अमान्य हो जाएगी। इसलिए चयन * का उपयोग करने का अर्थ है कि आपका कोड आवश्यकता से अधिक बार अमान्य हो जाएगा।

फिर से, बेझिझक अपने अंक जोड़ें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle JDBC थिन क्लाइंट आइडेंटिफ़ायर बदलें

  2. Oracle - मुझे स्टैंडअलोन प्रक्रियाओं या कार्यों के बजाय संकुल का उपयोग क्यों करना चाहिए

  3. Oracle SQL:|| . के साथ CHR() फ़ंक्शन का उपयोग करना CONCATENATE

  4. क्या Oracle का ORA_HASH यादृच्छिक है?

  5. हम कैसे पता लगा सकते हैं कि मेरी ऑरैकल टेबल में एक कॉलम किसी अन्य टेबल के ट्रिगर द्वारा पॉप्युलेट/अपडेट किया जा रहा है?