In tutti e 4 i metodi che hai elencato, per gli inserti, sembra che PetaPoco chiama sempre il seguente metodo della classe Database:
public object Insert(string tableName, string primaryKeyName, bool autoIncrement, object poco)
E il Database.Insert(tableName, pkName, poco)
fa la minor quantità di lavoro (è fondamentalmente solo un metodo di passaggio), quindi suppongo che sia quello con le migliori prestazioni.
Qui è il codice per Insert(string, string, object)
:
public object Insert(string tableName, string primaryKeyName, object poco)
{
return Insert(tableName, primaryKeyName, true, poco);
}
Probabilmente sarebbe un po '(e impercettibile) più veloce per chiamare direttamente il Insert(string, string, bool, object)
sovraccarico.
fonte
2011-12-31 22:08:08
Sì, da questa dichiarazione "Uno non è meno conveniente per me rispetto agli altri. .. ", quello che ho fatto per rimediare è stato questo: http://blogs.msmvps.com/bmains/2011/12/31/helpful-petapoco-template-modifications/ Violazione di DRY, sì, ma è meglio per le prestazioni in base a questo: http://www.toptensoftware.com/Articles/94/PetaPoco-More-Speed. Potrei anche provare a fare un passo avanti nella personalizzazione ... –
@BrianMains: hai davvero bisogno di spremere un po 'di velocità in più? Ho lavorato con i modelli SubSonic personalizzati per un po '(li usiamo ancora in un'app che manteniamo) ed è stato un trascinamento. In ogni caso, penso di aver esposto chiaramente i compromessi nella mia risposta. Puoi sicuramente scegliere il percorso più veloce sulla via più facile da mantenere, ma pochi utilizzi ne avrebbero davvero bisogno. I maggiori guadagni saranno da operazioni di dosaggio, istruzioni preparate, indici appropriati, ecc. –
OK, grazie per l'input. –