मुझे Django के ORM का उपयोग करके SQLite डेटाबेस में 8000+ रिकॉर्ड डालना होगा। इस ऑपरेशन को प्रति मिनट एक बार cronjob के रूप में चलाने की जरूरत है।
फिलहाल मैं सभी वस्तुओं के माध्यम से दोहराने के लिए लूप का उपयोग कर रहा हूं और फिर उन्हें एक-एक करके सम्मिलित कर रहा हूं।
उदाहरण:Django का उपयोग कर SQLite तालिका में हजारों रिकॉर्ड डालने का एक प्रभावी तरीका क्या है?
for item in items:
entry = Entry(a1=item.a1, a2=item.a2)
entry.save()
ऐसा करने का एक कारगर तरीका क्या है?
संपादित करें: दो सम्मिलन विधियों के बीच एक छोटी तुलना।
commit_manually डेकोरेटर के बिना (11245 रिकॉर्ड):
[email protected] marinetraffic]$ time python manage.py insrec
real 1m50.288s
user 0m6.710s
sys 0m23.445s
commit_manually डेकोरेटर का उपयोग करना (11245 रिकॉर्ड):
[[email protected] marinetraffic]$ time python manage.py insrec
real 0m18.464s
user 0m5.433s
sys 0m10.163s
नोट:परीक्षण स्क्रिप्ट भी कुछ अन्य कार्यों करता है सम्मिलित करने के अतिरिक्त डेटाबेस में (एक ज़िप फ़ाइल डाउनलोड करता है, ज़िप संग्रह से एक एक्सएमएल फ़ाइल निकालता है, एक्सएमएल फाइल को पार करता है) इसलिए निष्पादन के लिए आवश्यक समय आवश्यक नहीं है रैली रिकॉर्ड डालने के लिए आवश्यक समय का प्रतिनिधित्व करते हैं।
यह उन्हें मॉडल के रूप में तुरंत चालू करेगा, और हजारों व्यक्तिगत आवेषण चलाएगा। मुझे हमेशा एसक्यूएल में जाना पड़ा और इस प्रकार की मात्रा के लिए मैन्युअल बैच आवेषण करना पड़ा; Django इसके लिए बनाया नहीं गया है। लेकिन हाँ, आप निश्चित रूप से एक लेनदेन चाहते हैं यदि आप इसे इस तरह से कर रहे हैं। –
मैं Django ORM को अच्छी तरह से नहीं जानता, लेकिन क्या ओआरएम सिर्फ आपके लिए एसक्यूएल उत्पन्न नहीं करता है? और बिना किसी विदेशी कुंजी के एक साधारण मॉडल में, एक भी उदाहरण एक एकल सम्मिलन कथन में अनुवाद नहीं करता है? – monkut
हाय क्या आप कृपया .NET के संदर्भ में विस्तृत कर सकते हैं? यह एक बड़ी मदद होगी, क्योंकि मुझे एक ही स्थिति का सामना करना पड़ रहा है –