मेरे विभाग को हाल ही में हमारे आईटी विभाग द्वारा इस आधार पर बहुत अधिक लागत के साथ पूछताछ के लिए झुका हुआ (अच्छी तरह से) हमारे प्रश्नों के डेटाबेस को अस्थिर करने और/या क्रैश करने की वास्तविक संभावना है। हम में से कोई भी डीबीए नहीं है; केवल शोधकर्ता थे जो डेटाबेस के खिलाफ प्रश्न लिखते और निष्पादित करते थे, और शायद मैं अकेला हूं जिसने कभी भी झगड़ा से पहले एक समझाया गया योजना देखा।क्वेरी लागत बनाम निष्पादन गति + समांतरता
हमें बताया गया था कि 100 से अधिक पूछताछ लागत बहुत दुर्लभ होनी चाहिए, और 1000 से अधिक लागत वाले प्रश्न कभी नहीं चलना चाहिए। जिन समस्याओं में मैं दौड़ रहा हूं वे हैं कि लागत निष्पादन समय के साथ कोई सहसंबंध नहीं है, और मैं अपने प्रश्नों को अनुकूलित करने की कोशिश करते समय उत्पादकता खो रहा हूं।
उदाहरण के तौर पर, मेरे पास एक प्रश्न है जो 10844 की लागत के साथ 5 सेकंड के भीतर निष्पादित करता है। मैं उस दृश्य का उपयोग करने के लिए क्वेरी को फिर से लिखता हूं जिसमें मुझे आवश्यक अधिकांश जानकारी शामिल है, और लागत को 109 तक घटा दिया गया है, लेकिन नई क्वेरी, जो एक ही परिणाम प्राप्त करती है, चलाने के लिए 40 सेकंड लगती है। मैं एक संभावित व्याख्या के साथ यहां एक सवाल पाया:
Measuring Query Performance : "Execution Plan Query Cost" vs "Time Taken"
यही सवाल मुझे समानांतरवाद संकेत का नेतृत्व किया। मैंने लागत 10884 क्वेरी में /*+ no_parallel*/
का उपयोग करने की कोशिश की, लेकिन लागत में बदलाव नहीं हुआ, न ही निष्पादन का समय था, इसलिए मुझे यकीन नहीं है कि समांतरता तेजी से निष्पादन समय के लिए स्पष्टीकरण है लेकिन उच्च लागत। फिर, मैंने /*+ parallel(n)*/
संकेत का उपयोग करने का प्रयास किया, और पाया कि n
का मूल्य जितना अधिक होगा, क्वेरी की लागत कम होगी। लागत 10844 क्वेरी के मामले में, मैंने पाया कि /*+ parallel(140)*/
ने निष्पादन समय में बहुत मामूली वृद्धि के साथ लागत को 9 7 कर दिया।
यह लग रहा था जैसे एक आदर्श "धोखा" आवश्यकताओं कि उल्लिखित हमारे आईटी विभाग से मिलने के लिए, लेकिन फिर मैं इस पढ़ें:
समानांतर:
लेख इस वाक्य में शामिल है निष्पादन सभी सिस्टम संसाधनों का उपयोग करने के लिए एक एकल ऑपरेशन को सक्षम कर सकता है।
तो, मेरे सवाल कर रहे हैं:
मैं वास्तव में अधिक तनाव सर्वर संसाधनों पर समानांतरवाद की एक बहुत ही उच्च स्तर के साथ /*+ parallel(n)*/
संकेत का उपयोग करके, रखकर कर रहा हूँ, भले ही मैं लागत को कम कर रहा हूँ?
कोई समांतरता मानते हुए, निष्पादन गति लागत से उपयोग किए जाने वाले संसाधनों का एक बेहतर उपाय है?
आईटी प्रतिबंधों के आसपास होने के लिए व्यावसायिक इकाइयां अक्सर अपने डेटाबेस क्यों स्थापित करती हैं, यह एक अच्छी व्याख्या है। –