Witam.
Mam mały dylemacik z tym, czy wydajniejsze (w bazie SQL Server 2008 R2) są widoki do łączenia tabel (z tego co mnie uczono, widok generuje jakby statycznie osobną tabele, a nie dynamicznie jak join, nie wiem ile w tym prawdy) czy standardowy join, aby połączyć dane (join niby robi to w locie). W moim przypadku byłyby to 3-4 tabele podczas selectowania. Obecnie tabela (do której będę "doklejał" odpowiednie kawałki) ma 10 rekordów, ale docelowo powiększy się do ok. 10-12 tys. Zależy na wydajności, niż na przejrzystości zapytania.
Jak to w końcu jest? A może ktoś zna jakieś fajne źródło opisujące oba mechanizmy? Będę wdzięczny za pomoc.

- Rejestracja:ponad 14 lat
- Ostatnio:ponad 4 lata
- Postów:98
0

- Rejestracja:ponad 18 lat
- Ostatnio:około 8 lat
- Lokalizacja:Poznań
- Postów:295
0
W jaki sposob pojawiaja sie dane?
Czy jest to np baza do ktorej materializowane sa wartosci na potrzeby raportow np codziennie o 23.
Jesli tak to po przejsciu na SQL 2012 masz do dyspozycji cos co sie nazywa columnstore index
.
Minus rozwiazania - przed materializacja trzeba takie indexy usunac.
Wszystko zalezy od tego jak to zapytanie napiszesz.
Poczytaj o inline table valued function , inline scalar function oraz o technikach index covering.
PS dane mozna wyrzucic do innej filegroupy. Mozne tez zaklasac indexy ograniczajace np WHERE COLUMN_1 = 1024
edytowany 1x, ostatnio: crowa
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.