Ich habe eine Adressdatenbank (ca. 10.000 Datensätze). Primär blättern mehrere Benutzer durch diese Datensätze bzw. können darin suchen. Insert/Updates sind eher selten.
Derzeit läuft jeder Request über die Datenbank, d.h. das Suchen wird durch ein Where eingegrenzt bzw. es werden immer nur die Datensätze der aktuellen Seite (Von/Bis) geliefert.
Wäre es nun sinnvoller, diese Tabelle (ca. 10k Datensätze) direkt in den ASP.NET Cache zu packen? Sodass die Benutzer nur mehr mit dem Cache sprechen und nicht mehr immer mit der Datenbank? Wenn ja, bis wie viele Datensätze würdet ihr das machen?
Lg Savage
Nein.
Im Gegenteil dadurch würde deine Anweung nur langsamer denn durch das konzept von
ASP.NET würdest Du haufenweise Speicher vergeuden.
Ein Sql-Server ist schon genau für diese Arbeit ausgelegt.
Also da muss ich FZelle widersprechen.
Es gibt schon Szenarien wo es sinnvoll ist Entitäten in den Cache zu legen.
Solange du aber kein Performance Problem hast, solltest du den 0815 Stil verfolgen und den SQL Server abfragen.
Man muss halt die Vor- und die Nachteile abwägen. Caching heisst das die Daten sehr schnell zur Verfügung stehen. Das geht aber auch zu lasten des Anwendungsservers.
Ferner musst du dich auch noch um die Datensynchronität zwischen dem Anwendungs- und Datenbankservers kümmern.
Aber bei flachen, gut indizierten Tabellen wirst du kaum einen Performanceschub erleben.
Gruß,
Tom
Danke für eure Anregungen!
Und ich muss Tom widersprechen!
Es macht überhaupt keinen Sinn 10000 Datensätze irgendwo zu cachen wenn nur 20-50 angezeigt werden, je nach Fall/Option, mal von der Aktualität abgesehen.