| 

.NET C# Java Javascript Exception

1
In meiner Datenbank befindet sich eine Tabelle mit ca. 100000 Zeilen. Auf jedem Seitenaufruf wird aus dieser Tabelle etwa 100 Mal je eine Zeile selected. Das lässt sich auch nicht zusammenfassen weil diese Abfragen über die ganze Codebase verstreut sind. Ich habe um die Last auf die DB zu reduzieren die Tabelle in einer Liste gecacht und mache jetzt einfach Linq 2 Objects statt Linq to Sql. Leider ist das durchsuchen im Ram jetzt unendlich viel ineffizienter als in der Datenbank weil der Index der Datenbank nicht da ist. Wie kann ich dafür sorgen, dass meine Abfragen im Ram auf den gecachten Daten keine extreme CPU-Last produzieren, weil sie pro Request 100 Mal die ganze Tabelle scannen?
08.08.2009
gtech 65 1 4
1 Antwort
2
Erstelle für den lokalen Cache auch einen Index.
Dazu würde ich statt der List<T> ein Dictionary<TKey,TValue> nehmen. Dabei für den Schlüssel die Spalten wählen die indiziert werden sollen.
09.08.2009
gfoidl 9,4k 3 5

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH