Zastanawiamy się, czy użyć opcji SORT_IN_TEMPDB dla naszych tabel DW. Rozumiem, że przy tej opcji jest więcej zapisów, chociaż są one bardziej sekwencyjne. Mamy SAN (który czasami był bardzo wolny), więc w naszym przypadku chcemy ograniczyć liczbę zapisów tak bardzo, jak to możliwe. Wierzę, że tempdb znajduje się na osobnej jednostce LUN (zestaw dysków).
Mamy dużo miejsca na dysku w naszym pliku danych i pliku tempdb. Czy w takim przypadku skorzystalibyśmy z SORT_IN_TEMPDB?
Jedną rzeczą, która mnie uderzyła, był ten komentarz do tej odpowiedzi
Podczas przebudowywania indeksu potrzeba dwa razy więcej miejsca niż indeks + 20% do sortowania. Ogólnie rzecz biorąc, aby odbudować każdy indeks w bazie danych, potrzebujesz tylko 120% swojego największego indeksu w bazie danych. Jeśli używasz SORT_IN_TEMPDB, wygrywasz tylko 20%, nadal potrzebujesz dodatkowych 100% w pliku danych. Co więcej, użycie sortowania w tempdb drastycznie zwiększa obciążenie IO, ponieważ zamiast jednokrotnego zapisu indeksu do pliku danych, teraz zapisujesz go raz w tempdb, a następnie zapisujesz w pliku danych. To nie zawsze jest idealne.
Zdecydowanie nie chcemy zwiększać obciążenia IO dzięki naszej wolnej / prawdopodobnie źle skonfigurowanej sieci SAN.
Jaki byłby najlepszy sposób na przetestowanie tego? Po prostu odbudowując tabelę z opcją i bez opcji i rejestrując czasy?
Edycja : Mamy 8 plików tempdb, każde 15 GB. Mamy ustawione flagi TF 1117/1118 i IFI jest włączony. Obecnie wykonujemy mieszankę przebudowy z opcją sort_in_tempdb i bez niej.
Dzięki!
SQL Server 2012 Enterprise