01. februar 2008 - 08:28Der er
4 kommentarer og 1 løsning
performance ved SQL og .NET
Jeg skal snart igang med et større redesign og kunne godt tænke mig at vide hvilken metode/teknologi der er bedst når kravet er performance. Der bliver en hel del objekter hvor data skal overføres til database (kunde fakturering, optil 100.000 kunder)
Hvordan skal programmet bygges op(SQL struktur), er det bedst at lave alle sine SQL kald direkte i koden?
eller er performance bedre når man laver stored procedure?
Eller er der andre teknologier/algoritmer man kan bruge for at få den bedste/hurtigste performance
Foerst skal du goere dig klart om du vil have den bedst mulige performance eller den paeneste loesning som er nemmest at vedligeholde.
Det er sjaeldent at hardware omkostningerne opvejer udviklings omkostningerne.
Det vigtigste for database performance er nok din database struktur. Start med at faa lavet den rigtige database struktur: tabeller, indexes og views.
Så skal du vælge data access code model. Oplagte muligheder er: A) fuldt DAL med SQL saetninger B) fuldt DAL med SP kald C) tyndt DAL omkring typed data set D) O/R mapper (NHibernate, LLBLGen eller LINQ for SQL hvis du er paa 3.5)
Hvis du skal vaelge efter performance vil jeg sige: B, A, D, C.
Hvis du skal vaelge efter portabilitet vil jeg sige: D, C, A, B.
Hvis du skal vaelge efter mindst kode der skal skrives: C, D, A, B.
Kun du ved hvordan dine prioriteringer er.
Performance fordelen ved SP varierer meget (fra praktisk taget ingenting til faktor 2-3) afhaengig af hvilke operationer du skal have lavet.
Jeg lavede for nogle maaneder siden nogle tests. Jeg kan poste resultatet her.
Performance overheadet ved en O/R mapper afhaenger meget af programmoeren. Det kraever lidt erfaring at faa en O/R mapper til vaere effektiv.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.