Я знайшов багато інформації про те STATISTICS
, що таке : як вони підтримуються, як їх можна створити вручну або автоматично з запитів чи індексів тощо. Але я не зміг знайти жодних вказівок чи "найкращих практик" щодо того, колидля їх створення: які ситуації отримують більше вигоди від створеного вручну об’єкта STATISTICS, ніж від індексу. Я бачив створену вручну відфільтровану статистику, яка допомагає запитам на розділених таблицях (адже статистика, створена для індексів, охоплює всю таблицю і не є розділом - brillaint!), Але, безумовно, повинні бути інші сценарії, які мали б користь від об'єкта статистики, тоді як не потребує деталізації індексу, не варто витрачати на підтримку індексу або збільшувати шанси на блокування / глухий замок.
@JonathanFite у коментарі згадав про різницю між індексами та статистикою:
Індекси допоможуть SQL швидше знаходити дані, створюючи підходи, які сортуються інакше, ніж сама таблиця. Статистика допомагає SQL визначити, скільки пам'яті / зусиль буде потрібно для задоволення запиту.
Це чудова інформація, головним чином тому, що вона допомагає мені уточнити моє питання:
Як знання цього (або будь-яка інша технічна інформація на те , що S і як и , пов'язане з поведінкою і характером STATISTICS
) допоможе визначити , коли вибрати CREATE STATISTICS
більш CREATE INDEX
, особливо при створенні індексу буде створити відповідний STATISTICS
об'єкт? Який сценарій краще використовувати, якщо мати лише інформацію про СТАТИСТИКУ та не мати Індекс?
Було б дуже корисно, якщо можливо, мати робочий приклад сценарію, коли STATISTICS
об'єкт краще підходить, ніж an INDEX
.
Оскільки я є візуальним учнем / мислителем, я вважав, що це може допомогти побачити відмінності між собою STATISTICS
та INDEX
es, поруч, як можливий засіб допомогти визначити, коли STATISTICS
кращий вибір.
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.
Нижче наведено декілька ресурсів, які я знайшов, шукаючи цей, який навіть задає це саме запитання, але на нього не було відповіді:
Індекс SQL Server проти статистики
Запитання щодо статистики SQL Server, ми були занадто сором'язливими для запитання
Статистика. Чи можливі багатоколінні гістограми?
** Щоб було зрозуміло, у мене немає відповіді на це, і я насправді шукаю отримати зворотній зв'язок від кількох людей, щоб надати інформацію, яка, як видається, дивно відсутня тут, в інтерв'ю.