2011-10-12 7 views
9

मुझे बजट ऑब्जेक्ट के लिए SQL सर्वर डेटाबेस के विरुद्ध व्यावसायिक ऑब्जेक्ट्स वेब इंटेलिजेंस द्वारा उत्पन्न हास्यास्पद रूप से भारी क्वेरी मिली है। एक रिपोर्ट डेवलपर ने इस क्वेरी को जीयूआई में बनाया है और पाया है कि यह कभी पूरा नहीं होता है। मैंने इसे कल रात चलाने दिया और विंडोज सर्वर अपडेट के लिए हमारे सर्वर रीबूट होने से 7 घंटों तक दौड़ गया।'नो जॉइन प्रीडिकेट' के स्रोत को कैसे ढूंढें

मैंने एसक्यूएल में व्याख्या योजना पर एक नज़र डाली और कुछ 'नेस्टेड लूप्स (इनर जॉइन) चरणों पर कुछ चेतावनी पाई - इनमें से दो चेतावनी शुल्क तीसरे से अंतिम चरण में। चेतावनी 'कोई शामिल नहीं है'।

अन्य टिप्पणी मैं इस पर है कि क्वेरी जहां खंड में इस होता है: - तो किसी भी तरह जोड़ने दूसरा कोड है

BF_FUND.CD IN ('0105','0101') 

यदि आप केवल वहाँ में एक निधि कोड डाल दिया, यह ठीक चलाता है चीजों को हमारे ऊपर कार्टेशियन बनाते हैं (शायद, यह भविष्य में शामिल होने के साथ क्या होगा)।

इसे ट्रैक करने के तरीके पर कोई भी सिफारिशें? अद्भुत एसक्यूएल की 7 9 0 लाइनों के माध्यम से घूमने के लिए कुछ भी नहीं, लेकिन शामिल होने के बाद शामिल हों।

व्याख्या योजना एक विशिष्ट क्षेत्र को इंगित कर सकती है?

आपकी सहायता के लिए धन्यवाद।


संपादन:

क्वेरी, सुरक्षा बात पोस्ट नहीं कर सकते और यह बड़े के लिए बहुत अंधेरा करना है। और मैं इसे किसी को भी देखना नहीं चाहता हूं।

+1

1 - ** पोस्ट क्वेरी ** – JNK

+5

2 -। आप स्पष्ट 'JOIN' वाक्य रचना (' LEFT JOIN xy = zy' पर एक्स) का उपयोग सुनिश्चित करें, नहीं अंतर्निहित synax ('से एक्स, z') – JNK

+1

निष्पादन योजना आपको संबंधित तालिकाओं को बताती है ताकि यह पता लगाना मुश्किल हो? क्या यह अंतर्निहित 'जॉइन' वाक्यविन्यास के साथ लिखा गया है? –

उत्तर

4

अपने एसक्यूएल जुड़ने पर स्पष्टता प्राप्त करने के लिए ऑनलाइन एसक्यूएल फॉर्मेटर का उपयोग करें; फिर समस्या को डीबग करने के लिए ब्लॉक द्वारा अपने क्वेरी ब्लॉक को विभाजित करें।

http://www.dpriver.com/pp/sqlformat.htm

तो फिर तुम MSSQL सर्वर में योजना की चित्रमय दृश्य का उपयोग कर सकते हैं; जो सब कुछ समझाएगा।

पीएस: यदि आपके पास घोंसला वाले लूप के कारण खराब प्रदर्शन करने वाली क्वेरी है, तो भविष्य में शामिल होने के साथ जुड़ने में शामिल नहीं है, यह आपके मामले में मापदंडों में शामिल होने के मामले में अनिवार्य रूप से मामला नहीं है। चेक http://sqlserverselect.blogspot.com/2010/10/nested-loops-join-no-join-predicate.html

+1

उस दूसरे लिंक के लिए धन्यवाद - यह हो रहा है कि क्या हो रहा है। – Sam

संबंधित मुद्दे