Znalazłem wiele informacji na temat STATISTICS
: jak są one utrzymywane, jak można je tworzyć ręcznie lub automatycznie na podstawie zapytań lub indeksów i tak dalej. Ale nie byłem w stanie znaleźć żadnych wskazówek ani informacji o „najlepszych praktykach” dotyczących tego, kiedyaby je utworzyć: jakie sytuacje odnoszą większe korzyści z ręcznie utworzonego obiektu STATISTICS niż z indeksu. Widziałem ręcznie tworzone filtrowane statystyki pomagające w zapytaniach dotyczących tabel podzielonych na partycje (ponieważ statystyki utworzone dla indeksów obejmują całą tabelę i nie dotyczą poszczególnych partycji - brillaint!), Ale z pewnością muszą istnieć inne scenariusze, które skorzystałyby z obiektu statystycznego podczas gdy nie potrzebuje szczegółów indeksu, ani nie jest wart kosztów utrzymania indeksu lub zwiększenia szans na blokowanie / martwe blokady.
@JathanathanFite w komentarzu wspomniał o rozróżnieniu między indeksami a statystykami:
Indeksy pomogą SQL w szybszym znajdowaniu danych, tworząc odnośniki sortowane inaczej niż sama tabela. Statystyki pomagają SQL określić, ile pamięci / wysiłku będzie wymagało wypełnienie zapytania.
To świetna informacja, głównie dlatego, że pomaga mi wyjaśnić moje pytanie:
Jak wiedząc o tym (lub innego informacji technicznych na co S i jak y związane z zachowaniami i charakteru STATISTICS
) pomagają określić , kiedy wybrać CREATE STATISTICS
się CREATE INDEX
, zwłaszcza podczas tworzenia indeksu stworzy powiązany STATISTICS
obiekt? Który scenariusz byłby lepszy, gdyby posiadał tylko dane STATYSTYCZNE, a nie posiadał Indeksu?
Byłoby superduper, jeśli to możliwe, mieć działający przykład scenariusza, w którym STATISTICS
obiekt jest lepiej dopasowany niż INDEX
.
Ponieważ jestem wzrokowcem / myśliciel, myślałem, że to może pomóc, aby zobaczyć różnice między STATISTICS
i INDEX
ES, side-by-side, jako możliwych sposobów pomaga określić, kiedy STATISTICS
są lepszym wyborem.
Thingy PROs CONs
------- ---------- -------------------
INDEX * Can help sorts. * Takes up space.
* Contains data (can * Needs to be maintained (extra I/O).
"cover" a query). * More chances for blocking / dead-locks.
STATISTICS * Takes up very little space. * Cannot help sorts.
* Lighter maintenance / won't * Cannot "cover" queries.
slow down DML operations.
* Does not increase chances
of blocking / dead-locks.
Oto niektóre zasoby, które znalazłem, szukając tego, takie, które nawet zadają to samo pytanie, ale na które nie udzielono odpowiedzi:
Indeks programu SQL Server a statystyki
Pytania dotyczące statystyk programu SQL Server Byliśmy zbyt nieśmiali, by zadawać pytania
Statystyka. Czy możliwe są histogramy wielokolumnowe?
** Żeby było jasne, nie mam na to odpowiedzi i naprawdę szukam informacji zwrotnych od, mam nadzieję, kilku osób, które dostarczą dziwnie brakujących informacji tutaj w interwebach.