यह वास्तव में कॉलम में क्या है इस पर निर्भर करता है। यदि बहुत सारे बड़े VARCHAR कॉलम हैं - और वे अक्सर निकट क्षमता तक भर जाते हैं - तो आप कुछ समस्याओं के लिए हो सकते हैं। यदि यह सभी पूर्णांक डेटा है तो आपको ठीक होना चाहिए।
453 * 4 = 1812 # columns are 4 byte integers, row size is ~1.8k
453 * 255 = 115,515 # columns are VARCHAR(255), theoretical row size is ~112k
अंगूठे का नियम यह है कि पंक्ति का आकार डिस्क ब्लॉक आकार से अधिक नहीं होना चाहिए, जो आमतौर पर 8k होता है। जैसा कि आप देख सकते हैं, आपकी बड़ी तालिका इस संबंध में कोई समस्या नहीं है यदि इसमें पूरी तरह से 4-बाइट पूर्णांक होते हैं लेकिन यदि इसमें 255-चार VARCHAR कॉलम होते हैं तो आप सीमा से अधिक हो सकते हैं। यह 8k सीमा SQL सर्वर में एक कठिन सीमा के रूप में प्रयोग की जाती है, लेकिन मुझे लगता है कि इन दिनों यह केवल एक नरम सीमा और प्रदर्शन दिशानिर्देश है।
ध्यान दें कि VARCHAR कॉलम आवश्यक रूप से आपके द्वारा निर्दिष्ट आकार के अनुरूप स्मृति का उपभोग नहीं करते हैं। यह अधिकतम आकार है, लेकिन वे केवल उतना ही उपभोग करते हैं जितना उन्हें चाहिए। यदि VARCHAR कॉलम में वास्तविक डेटा हमेशा 3-4 वर्ण लंबा होता है तो आकार पूर्णांक स्तंभों के समान होगा चाहे आप उन्हें VARCHAR (4) या VARCHAR (255) के रूप में बनाएंगे।
सामान्य नियम यह है कि आप पंक्ति का आकार छोटा होना चाहते हैं ताकि प्रति डिस्क ब्लॉक में कई पंक्तियां हों, इससे तालिका को स्कैन करने के लिए आवश्यक डिस्क पढ़ने की संख्या कम हो जाती है। एक बार जब आप 8k से ऊपर हो जाते हैं तो आपके पास प्रति पंक्ति दो पढ़ते हैं।
ओरेकल की एक और संभावित समस्या है जो कि एएनएसआई में शामिल होने के सभी तालिकाओं में कॉलम की कुल संख्या पर हार्ड सीमा है। आप ओरेकल एएनएसआई सिंटैक्स में शामिल होने से बचकर इससे बच सकते हैं। (ऐसे समकक्ष हैं जो इस बग से पीड़ित नहीं हैं।) मुझे याद नहीं है कि सीमा क्या है या यह किस संस्करण पर लागू होता है (मुझे नहीं लगता कि यह अभी तक तय किया गया है)।
पंक्तियों की संख्या जिनके बारे में आप बात कर रहे हैं, उन्हें कोई समस्या नहीं होनी चाहिए, मान लें कि आपके पास पर्याप्त हार्डवेयर है।
स्रोत
2009-11-26 16:02:35
पृथ्वी पर आपके पास 453 कॉलम वाली तालिका क्यों है? क्या आपकी टेबल सामान्यीकृत हैं? क्या उन्हें आगे सामान्यीकृत किया जा सकता है? –
@ डोमिनिक - क्योंकि जेफरी का डेटाबेस साइबेस IQ का उपयोग कर रहा है जो "कॉलम उन्मुख डेटाबेस" है। कॉलम उन्मुख डेटाबेस का बिंदु यह है कि वे "सामान्यीकरण" की पूरी धारणा को अस्वीकार करते हैं। कम से कम, सामान्यीकरण के रूप में यह संबंध डेटाबेस में समझा जाता है। – APC
बस स्पष्ट होने के लिए - क्या आप मौजूदा स्कीमा को नए डेटाबेस में पोर्ट करना चाहते हैं? यदि हां, तो क्यों? यदि आपको ओएलटीपी के साथ समस्याएं आ रही हैं तो यह डीबीएमएस उत्पाद की बजाय टेबल डिज़ाइन का मामला होने की संभावना है। यदि आप हमें अधिक पृष्ठभूमि देते हैं तो हम आपको बेहतर सलाह दे सकते हैं। विशेष रूप से, आप क्या समस्याएं अनुभव कर रहे हैं? ओरेकल या एमएसएसक्यूएल में माइग्रेट करने से आपको क्या फायदे मिलेंगे? – APC