Frage

Ich verwende das L2S -Repository -Muster in meiner ASP.NET 3.5 -Web -App. Aber ich bin nicht ganz zufrieden mit der Aufführung, wie er im Live erlebt wird. Ich habe Google durchsucht und SQL Caching mit der SQLCacheDependency -Klasse gestoßen. Aber ich habe kein Tutorial oder Link, das erklärt, wie man es in meinem Szenario verwendet.

Also hilf mir, Leute ... jede Hilfe oder Anleitung wird sehr geschätzt.

Bitte verwenden Sie einige Beispielcodes oder Online -Referenzen ....

Vielen Dank im Voraus

Update: Mein Repository

public interface IRepository<T> where T : class
{
    T GetById(int id);
    IQueryable<T> GetAll();
    void SaveOrUpdate(T entity);
    void DeleteOnSubmit(T entity);
}
War es hilfreich?

Lösung

Manchmal macht Linq-to-SQL Fragen auf unerwartete Weise. Haben Sie überprüft, wie Ihre Linq -Abfragen in SQL übersetzt werden? Verwenden Sie den SQL Server -Profiler (verfügbar im Tools -Menü in SQL Management Server), um die generierten Abfragen zu überprüfen. Ich habe einige Informationen darüber geschrieben hier.

Sobald Sie wissen, dass Sie gute Abfragen generiert haben, sollten Sie nachsehen, ob die Ausführung von jemandem ein Leistungs Engpass ist. Der Profiler kann auch hier helfen. Wenn einige Abfragen langsam ausgeführt werden, versuchen Sie, geeignete Indizes hinzuzufügen.

Wenn Sie nicht über eine sehr volumige Website verfügen, sollten diese Schritte Ihnen eine gute Leistung ermöglichen, ohne das zwischengespeichert werden zu müssen.

Andere Tipps

Sie haben nicht beschrieben, wie Sie LINQ mit Ihrem Repository SQL verwenden. Verwenden Sie im Grunde genommen denselben DataContext für alle während einer einzelnen Anforderung erstellten Repositories oder erhält jedes Repository eine eigene DataContext -Instanz? Wenn es sich um die letzteren handelt, verlieren Sie die interne Beilage des DataContext.

Ein weiterer Bereich, in dem die Leistung verbessert werden kann, ist, wenn Sie häufig verwendete Abfragen haben, die viele Verbindungsschichten enthalten (nicht nur eine einzelne Tabelle ausgewählt). Verwendung einer Kompilierte Zeit Hier wird die Dinge drastisch beschleunigt. KompilierteQuerien müssen nur zum ersten Mal generiert werden, wenn sie jedes Mal neu kompiliert werden, wenn sie verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top