Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Wat sorteert sneller, database of List<T> ?

Wiep Corbier
6 antwoorden
  • Ik heb een tabel in een database staan met diverse kolommen.

    Die laad ik in een List<T> object.

    Maar ik wil eigenlijk deze reeks ook wel eens sorteren.
    Wat sorteert sneller, een database of een List-object.

    Ik gok de laatste want dat speelt zich volgens mij af in het interne geheugen van de computer en sneller is er volgens mij niet.

    Uw idee hierover?
  • De list zal misschien wel sneller sorteren, maar een database is ook ontworpen om lijsten bijzonder snel te sorteren, eventueel met een aantal LIMIT parameters en de juiste indexen.

    Volgens mij is er voor de eindgebruiker weinig verschil.

    Alles hangt af van de applicatie, en in mijn applicaties laat ik altijd de database sorteren.
  • Uiteraard laat ik normaal gesproken ook de database sorteren.

    Maar nu wilde ik eens iets anders. Maar dan moet het wel sneller zijn :D
  • Dan is het simpel: een benchmark doen en zien wat de uitkomst is.
  • Ja, dat kan, maar daarom vroeg ik het ook aan iemand die dit ooit al eens gedaan had. :D
    Dan hoef ik het wiel niet opnieuw uit te vinden.
  • Het hangt allemaal af van wat je wilt sorteren, als je bijvoorbeeld op een index gaat sorteren in de database, zal dat ongetwijfeld sneller zijn dan op random kolommen.
    Maar op zich is het heel simpel te berekenen, de documentatie van List<T>.Sort zegt namelijk: [quote:5400bb0ba7]On average, this method is an O(n log n) operation, where n is Count; in the worst case it is an O(n ^ 2) operation.[/quote:5400bb0ba7] Zoiets is vast ook te vinden voor de database en dan is het een kwestie van vergelijken…

    Ik gebruik beiden, in haal data in de goede volgorde uit de database, stop het in de cache en als ik dan data nodig heb die anders gesorteerd moet worden, gebruik ik List<T>.Sort. Dat performed prima.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.