Benutzer mit den meisten Antworten
sql server - asp.net abfragen cachen

Frage
-
Hallo liebe Kommunity,
ich würde mich freuen wenn Ihr mir bei dem folgendem Problem behilflich sein könntet:
Ich habe eine Webanwendung in vb geschrieben.
Dieses führt eine Update Anweisung aus und incrementiert einen Wert einer Tabelle in meinem SQL Server. Auserdem wird eine Select Anweisung auf diese Tabelle ausgeführt.
Ich möchte nun die Select Anweisung Cachen. Der SQL Server soll diese Anweisung ausführen und für 50 min im Cache behalten und sich dann wieder refreshen.
In der Zwischenzeit sollen aber die Update Anweisung weiter ausgeführt werden können. Jedoch sollen die Änderungen erst beim Refresh des Cach von der Select Anweisung erfasst werden.
Ich würde mich über jede Hilfe sehr freuen
Mit Freundlichen Grüßen
Levi :D
Antworten
-
Hi,
warum willst Du die SELECT Anweisung cachen? Ich würde eher denken, dass das Ergebnis dieser Abfrage geacht werden soll, oder?
Für wen soll der Cache gelten? Für die gesamte Anwendung, also sämtliche Requests oder jeweils pro Sitzung/User/...?
Wenn für alle, schau mal hier:
http://msdn.microsoft.com/de-de/library/system.web.caching.cache.add.aspx
Damit sollte genau das machbar sein. Über die Parameter kannst Du auch den Ablaufzeitpunkt des Cacheitems angeben.
Der SQL Server hat damit aber rein gar nichts zu tun. Daher schaue ich mal, dass ein Moderator den Thread ins ASP.NET Forum verschiebt.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 30. April 2014 06:55
- Als Antwort markiert Ionut DumaModerator Dienstag, 6. Mai 2014 09:01
Alle Antworten
-
Hi,
warum willst Du die SELECT Anweisung cachen? Ich würde eher denken, dass das Ergebnis dieser Abfrage geacht werden soll, oder?
Für wen soll der Cache gelten? Für die gesamte Anwendung, also sämtliche Requests oder jeweils pro Sitzung/User/...?
Wenn für alle, schau mal hier:
http://msdn.microsoft.com/de-de/library/system.web.caching.cache.add.aspx
Damit sollte genau das machbar sein. Über die Parameter kannst Du auch den Ablaufzeitpunkt des Cacheitems angeben.
Der SQL Server hat damit aber rein gar nichts zu tun. Daher schaue ich mal, dass ein Moderator den Thread ins ASP.NET Forum verschiebt.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 30. April 2014 06:55
- Als Antwort markiert Ionut DumaModerator Dienstag, 6. Mai 2014 09:01
-
Danke für die schnelle Antwort,
Ja das Ergebniss der Select anweisung soll gecacht werden.
Wenn viele besucher die Seite ausführen, soll das Ergebnis aus dem Cache geladen werden. Sie sollen alle das selbe Ergebnis erhalten.
Wäre es denn nicht besser wenn das Ergebnis vom SQL Server gecacht wird? Dann könnte doch jede Sitzung auf den Inhalt zugreifen als wenn man für jede Sitzung einen neuen Cache erstellt?Grüße Levi
-
...
Wäre es denn nicht besser wenn das Ergebnis vom SQL Server gecacht wird? Dann könnte doch jede Sitzung auf den Inhalt zugreifen als wenn man für jede Sitzung einen neuen Cache erstellt?
...
Wenn das erstellen des Ergebnisses aufwändig ist, kann man das in der Tat tun.
Das umzusetzen gibt es sicherlich viele Ansätze, die meist auf Datenbankschema Einfluss nehmen. (man könnte das sogar als Kennzeichen eines durchdaten DB-Schemas sehen). Also Indizierte Sichten oder spezielle Tabellen z.B.
Wenn die Generierung nicht das Problem ist, sondern eher eine Menge Daten dann noch über Netzwerk übertragen werden müssen, sollte man es möglicherweise auf dem Webserver vorhalten. Stichwort Anwendungsarchitektur.
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Hallo Levi,
das Ergebnis wird bei der von mir genannten Variante anwendungsweit gecacht, nicht pro Sitzung. Es liegt natürlich an dir, auf das Cacheobjekt zuzugreifen und nur, wenn dieses nicht existiert, ein neues mit der entsprechenden Abfrage an den SQL Server zu erstellen.
Der SQL Server cacht zwar auch aber ganz anders als Du das hier brauchst. Du musst es in der Anwendung machen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Levi,
Haben Dir die Antworten geholfen?
Gruss,
Ionut
Ionut Duma, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.