/ / Linq do SQL: Optymalizacja zapytań za pomocą Sql Server Compact Edition - wydajność, linq-sql, optymalizacja, pamięć, sql-server-ce

Linq do SQL: Optymalizacja zapytań za pomocą Sql Server Compact Edition - wydajność, linq-sql, optymalizacja, pamięć, sql-server-ce

Używam Linq do SQL przeciwko Sql Server CE.

Baza danych jest tylko do odczytu, więc mogę mieć kilka założeń.

W celu powstrzymania się od dostępu do systemu plików, moje początkowe podejście polegało na buforowaniu potrzebnych jednostek do pamięci aplikacji i użyciu linq do obiektów przeciwko nim.

Chociaż działa dobrze w przypadku ograniczonych zapytań, bezpośrednie użycie Linq do SQL jest lepsze niż Linq to Objects, gdy dołącza się w razie potrzeby.

Wracając do punktu wyjścia, chcę zoptymalizować moje występy, teraz myślę o wymuszeniu załadowania całego pliku do pamięci RAM i użyciu Linq do SQL przeciwko niemu.

Jakieś myśli o tym, jak to zrobić? Więcej pomysłów?

Ariel

Odpowiedzi:

1 dla odpowiedzi № 1

Wygląda na to, że twój problem to wskaźnik SQL / wydajność klucza obcego a wydajność iteratora kolekcji.

Linq to Datasets oferuje sposób na zachowanierelacje (w szczególności ADO.net Zbiory danych mają kolekcję relacji) i mogą wymuszać klucz podstawowy, klucz obcy i unikalne ograniczenia. Ich wydajność łączenia powinna być podobna do Linq do SQL, ale będzie działać w pamięci.

Z mojego rozumienia implementacji Lite sql, transakcje mogą mieć duży wpływ na wydajność, więc po prostu rozpoczynanie połączenia z

BEGIN TRANSACTION

może mieć znaczący wpływ, jeśli możesz pozostawić połączenie otwarte dla wszystkich zapytań. Benchmarking to chyba jedyny pewny sposób, aby odpowiedzieć na to pytanie.


0 dla odpowiedzi nr 2

Próbowałeś Linq do DataSet?

możesz załadować wszystko w pamięci i możesz użyć zapytania Linq

Nie mam pojęcia, czy join będzie działał tak, jak chcesz