यदि आप कभी भी एक प्रश्न है कि एसक्यूएल सर्वर पर अमल नहीं हो सका क्योंकि यह बहुत अधिक तालिकाओं संदर्भित का सामना करना पड़ा है?

वोट
15

क्या तुमने कभी वहाँ त्रुटि संदेशों में से किसी भी देखा है?

- SQL Server 2000

दृश्य या समारोह समाधान के लिए सहायक तालिका का आवंटन नहीं हो सका।
एक प्रश्न (256) में तालिकाओं की अधिकतम संख्या पार हो गया था।

- SQL सर्वर 2005

क्वेरी में बहुत अधिक तालिका नाम। अधिकतम स्वीकार्य 256 है।

हाँ, तो आप क्या किया है?

छोड़ दिया? ग्राहक उनकी मांगों को सरल करने के लिए राजी कर लिया? डेटाबेस Denormalized?


@ (हर किसी क्वेरी पोस्ट करने के लिए मुझे चाहते):

  1. मुझे यकीन है कि अगर मैं इस सवाल का जवाब संपादन विंडो में कोड के 70 किलोबाइट पेस्ट कर सकते हैं नहीं कर रहा हूँ।
  2. यहां तक ​​कि अगर मैं इस इस के बाद से कोड के इस 70 किलोबाइट 20 या 30 बार देखा गया मैं भी के बाद से पोस्ट करने के लिए होता है कि दर्शाएंगे मदद नहीं करेगा कर सकते हैं अन्यथा कोड अर्थहीन हो जाएगा।

मैं जैसे मैं यहाँ पेश कर रहा हूँ ध्वनि करने के लिए नहीं करना चाहते हैं लेकिन समस्या यह है प्रश्नों में नहीं है। प्रश्नों इष्टतम (या कम से कम लगभग इष्टतम) कर रहे हैं। मैं अनगिनत घंटे बिताए हैं उन्हें अनुकूलित करते समय, हर एक स्तंभ और हर एक मेज है कि हटाया जा सकता है की तलाश में। एक रिपोर्ट है कि 200 या 300 कॉलम एक भी SELECT कथन से भरा करने के लिए किया है कि हो (जब यह अभी भी एक छोटे से रिपोर्ट थी कि यह कैसे कुछ साल पहले तैयार किया गया था, क्योंकि उस) है कल्पना कीजिए।

05/08/2008 को 15:54
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


8 जवाब

वोट
8

SQL सर्वर 2005 के लिए, मैं मेज वेरिएबल का उपयोग करके और आंशिक रूप से डेटा के निर्माण के रूप में तुम जाओ सलाह देते हैं।

ऐसा करने के लिए, एक मेज चर कि अपने अंतिम परिणाम सेट आप उपयोगकर्ता के लिए भेजना चाहते हैं का प्रतिनिधित्व करता है बनाएँ।

फिर अपने प्राथमिक तालिका मिलेगी (जैसे कि ऊपर अपने उदाहरण में आदेश तालिका) और उस डेटा, प्लस अनुपूरक डेटा का एक सा है कि केवल एक ही दूर में शामिल होने का कहना है (ग्राहक का नाम, उत्पाद नाम) खींच। आप एक का चयन सीधे अपनी मेज चर में डाल करने के लिए कर सकते हैं।

वहाँ से, तालिका के माध्यम से पुनरावृति और प्रत्येक पंक्ति के लिए, छोटे चयन प्रश्नों का एक समूह है कि सभी पूरक डेटा आप अपने परिणाम सेट के लिए की जरूरत को पुन: प्राप्त करते हैं। के रूप में तुम जाओ प्रत्येक स्तंभ में इन डालें।

ऐसा होने के बाद, आप तो अपने तालिका चर से एक सरल चुनें * करते हैं और इस परिणाम उपयोगकर्ता के लिए सेट लौट सकते हैं।

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

05/08/2008 को 16:19
का स्रोत उपयोगकर्ता

वोट
1

यह सब समय होता है जब एसक्यूएल सर्वर 2000 पर चल रहा है सीआरएम एक अच्छी तरह से सामान्यीकृत डेटा स्कीमा जो एक बहुत की मिलती है में परिणाम है डायनेमिक्स सीआरएम प्रतिष्ठानों के लिए रिपोर्टिंग सेवा रिपोर्ट लिख होगा। : वहाँ वास्तव में है कि इच्छा 256 से सीमा के चारों ओर एक हॉटफिक्स एक whopping 260 करने के लिए http://support.microsoft.com/kb/818406 (हम हमेशा इस एसक्यूएल सर्वर टीम की ओर से एक महान मजाक सोचा)।

Dillie-ओ aludes के रूप में समाधान, करने के लिए, उचित पहचान करने के लिए "उप मिलती है" (अधिमानतः लोगों को कई बार उपयोग किया जाता है कि) और अस्थायी तालिका चर कि आप तो अपने मुख्य मिलती है में उपयोग में उन्हें बाहर कारक है। यह एक बड़ा पिया है और अक्सर प्रदर्शन को मारता है। मुझे आपके लिये खेद है।

@Kevin, प्यार है कि टी - यह सब :-) कहते हैं।

02/11/2008 को 16:50
का स्रोत उपयोगकर्ता

वोट
1

@chopeen आप आंकड़ा तालिका में जिस तरह से आप इन आँकड़ों की गणना कर रहे हैं बदल सकता है, और बदले उत्पादों के माध्यम से सभी प्रति-उत्पाद के आंकड़ों का एक अलग तालिका पाश रखने .. जब एक आदेश दिया है, और अद्यतन उचित रिकॉर्ड। यह बजाय इसके कि एक रिपोर्ट चला कर एक बहुत बड़ा प्रश्न में सब कुछ चलाने की तुलना में चेकआउट पृष्ठ गणना लोड का एक बहुत बदलाव होगा। बेशक वहाँ कुछ आँकड़े है कि रूप में अच्छी तरह इस तरह से काम करने के लिए नहीं जा रहे हैं, एक विशेष उत्पाद खरीदने के बाद ग्राहकों की अगले खरीद पर नज़र रखने उदा।

05/08/2008 को 16:19
का स्रोत उपयोगकर्ता

वोट
1

मैं इस स्थिति में इस तरह भर में कभी नहीं आए हैं, और संदर्भित> 256 तालिकाओं में एक प्रश्न मुझे एक नश्वर भय के साथ फिल्स के विचार ईमानदार होना।

आपका पहला सवाल शायद द्वारा "क्यों इतने सारे?", बारीकी से पीछा करना चाहिए "मैं जानकारी की क्या बिट्स करते नहीं की जरूरत है?" मुझे चिंता है कि डेटा की मात्रा में इस तरह के एक प्रश्न से लौटाए जाने भी आवेदन के प्रदर्शन को प्रभावित करने के लिए काफी गंभीर रूप से, शुरू होगा होगा।

05/08/2008 को 15:57
का स्रोत उपयोगकर्ता

वोट
0

SQL सर्वर 2005 में एक ही मुद्दा था (2008 में काम किया) जब मैं एक दृश्य बनाने के लिए करना चाहता था। मैं एक दृश्य के बजाय एक संग्रहीत प्रक्रिया बनाने के द्वारा इस मुद्दे को हल।

07/03/2012 को 16:59
का स्रोत उपयोगकर्ता

वोट
0

मैं इस एक ही समस्या थी ... मेरे विकास बॉक्स एसक्यूएल सर्वर 2008 (दृश्य ठीक काम किया), लेकिन उत्पादन पर नज़र नहीं डाली (SQL सर्वर 2005 के साथ) चलाता है। मैं दृश्य बनाने इस सीमा से बचने के लिए, का मानना ​​है कि त्रुटि फेंक दिया में क्वेरी में नए विचारों का उपयोग कर समाप्त हो गया।

तरह का मूर्खतापूर्ण तार्किक निष्पादन पर विचार एक ही है ...

19/08/2010 को 18:29
का स्रोत उपयोगकर्ता

वोट
0

क्वेरी पोस्ट करें: डी

इसके अलावा, मैं की तरह संभव समस्याओं में से एक नाम / मान टेबल जो एक लुकअप तालिका में संघनित कर सकता है की एक टन (पढ़ 200) हो सकती है।

05/08/2008 को 16:26
का स्रोत उपयोगकर्ता

वोट
0

मुझे लगता है कि क्वेरी को देखने के लिए चाहते हैं, लेकिन मुझे लगता है यह इटरेटर के कुछ प्रकार के साथ कुछ समस्या है, और जब मैं किसी भी स्थितियों में, जहां इसकी संभव नहीं सोच सकते हैं, मुझे यकीन है कि यह एक बुरा जबकि / मामले / कर्सर या एक टन से है खराब विचारों को लागू किया।

05/08/2008 को 15:58
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more