एसक्यूएल कर्सर को खोलने के लिए समय की "उचित" लंबाई क्या है?

आपके अनुप्रयोगों में, वापस आने या रोल करने से पहले लेनदेन को खोलने के लिए "लंबा समय" क्या होता है? मिनट? सेकंड? घंटे?

और किस डेटाबेस पर?

0
ro fr bn

5 उत्तर

लेनदेन: मिनट।

कर्सर: 0 सेकेंड अधिकतम, यदि आप एक कर्सर का उपयोग करते हैं तो हम आपको आग लगाते हैं।

यह हास्यास्पद नहीं है जब आप मानते हैं कि हम उच्च उपलब्धता वाले वेब वातावरण में हैं, जिन्हें SQL सर्वर चलाया जाना है, और हम सटीक संस्करण की अक्षमता और उन्हें बनाए रखने की अक्षमता के कारण संग्रहित प्रो को भी अनुमति नहीं देते हैं। अगर हम ऑरैकल का उपयोग कर रहे थे।

0
जोड़ा
आपकी समस्या की तरह लगता है कि आप SQLServer चला रहे हैं।
जोड़ा लेखक Crashworks, स्रोत

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

0
जोड़ा

@ निहित: प्रदर्शन मुद्दों को एक तरफ, यह नौकरी के लिए सही उपकरण का उपयोग करने के बारे में भी है। कोड में अपनी क्वेरी से कर्सर को स्थानांतरित करने के विकल्प को देखते हुए, मुझे लगता है कि 100 में से 99 बार यह लूपिंग लॉजिक को किसी प्रकार के प्रबंधित कोड में रखना बेहतर होगा। ऐसा करने से आप डीबगर का उपयोग करने, समय त्रुटि जांच संकलित करने, सुरक्षित प्रकार आदि का लाभ प्राप्त करने की अनुमति प्राप्त कर सकते हैं।

प्रश्न का मेरा जवाब अभी भी वही है, यदि आप कर्सर का उपयोग कर रहे हैं, तो इसे ASAP में बंद करें, ऑरैकल में मैं स्पष्ट कर्सर का उपयोग करने की भी कोशिश कर रहा हूं।

0
जोड़ा

@lomaxx, @ChanChan: मेरे सर्वोत्तम कर्सर के लिए कर्सर केवल SQL सर्वर और Sybase (टी-एसक्यूएल संस्करण) पर एक समस्या है। यदि आपकी पसंद का डेटाबेस ओरेकल है, तो कर्सर आपका मित्र हैं। मैंने कई मामलों को देखा है जहां कर्सर के उपयोग ने वास्तव में प्रदर्शन में सुधार किया है। कर्सर एक अविश्वसनीय रूप से उपयोगी तंत्र और tbh हैं, कह रहे हैं कि "यदि आप एक कर्सर का उपयोग करते हैं तो हम आपको आग लगते हैं" थोड़ा हास्यास्पद है।

ऐसा कहकर, आप केवल एक न्यूनतम कर्सर को आवश्यक न्यूनतम न्यूनतम के लिए खोलना चाहते हैं। समस्या डोमेन को समझने के बिना अधिकतम समय निर्दिष्ट करना मनमानी और व्यर्थ होगा।

0
जोड़ा

आम तौर पर मैं अन्य उत्तरों से सहमत हूं: जब संभव हो तो कर्सर से बचें (ज्यादातर मामलों में) और जितनी जल्दी हो सके उन्हें बंद करें।

हालांकि: यह सब उस माहौल पर निर्भर करता है जिसमें आप काम कर रहे हैं।

  • यदि यह बहुत से उपयोगकर्ताओं के साथ एक उत्पादन वेबसाइट वातावरण है, तो सुनिश्चित करें कि कर्सर किसी टाइमआउट प्राप्त करने से पहले चला जाता है।
  • यदि आप हैं - उदाहरण के लिए - मालिकाना मशीन पर "संग्रहित प्रक्रिया का विश्लेषण लॉग" (या जो कुछ भी) लिखना जो कुछ भी नहीं करता है: जो भी आप करना चाहते हैं उसे करने के लिए स्वतंत्र महसूस करें। आप अकेले व्यक्ति होंगे जिन्हें प्रतीक्षा करनी है। ऐसा नहीं है कि डेटाबेस सर्वर मरने जा रहा है क्योंकि आप कर्सर का उपयोग करते हैं। आपको इस बात पर विचार करना चाहिए कि शायद समय के साथ उपयोग व्यवहार बदल जाएगा और किसी बिंदु पर उस एप्लिकेशन का उपयोग करने वाले 10 लोग हो सकते हैं। तो एक और तरीका खोजने की कोशिश करें;)
0
जोड़ा