Avatar billede neoman Novice
14. september 2007 - 13:16 Der er 2 kommentarer og
1 løsning

Caching versus Db-reads - skulle caching ikke være hurtigere ?

Her er en artikel om custom paging: http://aspnet.4guysfromrolla.com/articles/031506-1.aspx

I artiklen diskuteres pagein vs. custom paging vs. caching.

I tabellen ASP.NET Trace Results kanman se nogle sammenligninger.

Det jeg finder slående er, at hentning af data fra cache koster 30% mere tid end at hente dem direkte fra DB'en. Sammenlign rubrikkerne Custom Paging og
Cached SqlDataSource. Efter at datasettet er blevet fyldt og cachet, er tilganstiden til en Page væsentlig mindre for direkte læsning i db'en, i forhold til hentning af tilsvarende records i det 50,000-records store dataset.

Kan man forestille sig at sammenligningen ville falde ud til fordel for caching, hvis datasettet var væsentligt mindre ? Ellers - hvilken mekanisme er det, som gør at caching er mindre effektiv end direkte læsning ?
Avatar billede arne_v Ekspert
15. september 2007 - 02:02 #1
Det er et godt spørgsmål.

Al logik siger at det bør være hurtigere at hente en stor klump data fra cache
end en lille klump data fra databasen.

Men jeg kan se to effekter som muligvis kan forklare det alligevel:
1) databasen er lokal, og da databasen jo cacher, så hentes den lille klump data
  ko reelt også fra en cache på maskinen (det skal bare serialiseres til og
  deserialiseres fra TDS wire formatet)
2) måske bruger GridView koden lidt tid på at tygge sig gennem en stor klump data

Jeg ville forvente et andet resultat med en remote database.

Og undrer mig over at der ikke bruges den efter min mening optimal løsning:
custom paging *og* caching.
Avatar billede neoman Novice
16. september 2007 - 11:41 #2
Jeg synes det er underligt, at forfatteren, i sin begejstring for custom paging, synes selv at have overset en efter min mening ikke uvæsentlig "pudsighed" :)

Jeg kan se en idé i at on-demand hente den ønskede page fra db'en første gang, og så cache den, så hver page caches separat. Det burde vel være det mest effektive, forudsat at den er bedre til at hente en lille page fra cachen, end at finde en lille page i et kæmpestort cachet dataset.

Vi kan vist ikke brygge mere på den historie, så læg et svar.
Avatar billede arne_v Ekspert
16. september 2007 - 16:51 #3
Der eksisterer desværre ikke en guddommelig myndighed som ufejlbarligt stempler
hver eneste (teknisk) web side med en kvalitets vurdering.

:-)

Og et svar.

Med hensyn til artiklen er jeg iøvrigt slet ikke begejstret for hans stil, hvor selv
udførsels logik laves som tags i .aspx fremfor som kode i .aspx.cs/vb !
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester