प्रदर्शन कारणों से मुझे किस का उपयोग करना चाहिए?
Database.Save
तरीकों GetValue
का उपयोग कर प्राथमिक कुंजी फ़ील्ड का मान पुनः प्राप्त है, तो कॉल Database.Insert
या Database.Update
तदनुसार।
इसलिए, आपको केवल Database.Save
का उपयोग करना चाहिए जब आपके कोड को वास्तव में किसी ऑब्जेक्ट पर परिवर्तनों को सहेजने की आवश्यकता होती है जो कि नई या पूर्ववर्ती हो सकती है। साथ ही, ध्यान दें कि आपकी तालिका में Database.Save
के लिए काम करने के लिए स्वत: वृद्धिशील प्राथमिक कुंजी कॉलम होना चाहिए।
मामूली प्रदर्शन अंतर के बावजूद, मैं सही अर्थशास्त्र पसंद करता हूं - सहेजें पर सम्मिलित या अद्यतन का उपयोग कर।
एक अन्य की तुलना में मेरे लिए कम सुविधाजनक
यह वास्तव में सच नहीं है नहीं है ...।
Database.Insert(poco)
आपके पोको वर्ग की परिभाषा पर कस्टम विशेषताओं में tableName
और pkName
के लिए मूल्यों की तलाश करेगा। यदि आप टी 4 टेम्पलेट्स का उपयोग करते हैं, तो इन मानों को स्वचालित रूप से आपके डेटाबेस के साथ सिंक में रखा जाएगा, और उन्हें केवल एक ही स्थान पर निर्दिष्ट किया जाएगा। दूसरी तरफ, यदि आप उन्हें प्रत्येक विधि कॉल में पास करते हैं तो उन्हें आपके कोड बेस में अनगिनत बार दोहराया जाएगा। सूखी। क्या होगा यदि आपको बाद में मूल्यों में से किसी एक को बदलने की आवश्यकता है?
अब, Database.Insert(poco)
उस लुकअप के कारण थोड़ा कम प्रदर्शन करेगा।हालांकि, PetaPoco एक स्थिर शब्दकोश में है कि देखने का परिणाम कैश, इसलिए प्रदर्शन प्रभाव पहले देखने के बाद बहुत छोटा हो जाएगा:
RWLock.EnterReadLock();
PocoData pd;
try
{
if (m_PocoDatas.TryGetValue(t, out pd))
return pd;
}
finally
{
RWLock.ExitReadLock();
}
स्रोत
2012-01-01 02:27:10
हाँ, इस बयान "एक अन्य की तुलना में मेरे लिए कम सुविधाजनक नहीं है द्वारा। .. ", मैंने इसका इलाज करने के लिए क्या किया था: http://blogs.msmvps.com/bmains/2011/12/31/helpful-petapoco-template-modifications/ DRY का उल्लंघन, हाँ, लेकिन यह प्रदर्शन के लिए बेहतर है इसके अनुसार: http://www.toptensoftware.com/Articles/94/PetaPoco- अधिक- स्पीड। मैं अनुकूलन को एक कदम आगे भी लेने का प्रयास कर सकता हूं ... –
@ ब्रायनमेन: क्या आपको वास्तव में उस अतिरिक्त छोटी गति को निचोड़ने की आवश्यकता है? मैंने थोड़ी देर के लिए अनुकूलित सबसोनिक टेम्पलेट्स के साथ काम किया (हम अभी भी उन्हें एक ऐप में इस्तेमाल करते हैं), और यह एक ड्रैग था। किसी भी मामले में, मुझे लगता है कि मैंने अपने जवाब में ट्रेडऑफ स्पष्ट रूप से निर्धारित किए हैं। आप निश्चित रूप से मार्ग बनाए रखने के लिए आसान मार्ग पर तेजी से मार्ग चुन सकते हैं, लेकिन कुछ उपयोगों को वास्तव में इसकी आवश्यकता होगी। सबसे बड़ा लाभ बैचिंग ऑपरेशंस, तैयार बयान, उचित सूचकांक इत्यादि से होगा –
ठीक है, इनपुट के लिए धन्यवाद। –