Алгоритм статистики автоматичного оновлення:
Таким чином, статистику автоматичного оновлення розпочнеться за кожну 500 + 20% зміну рядків таблиці. Звичайно, у нас вдосконалений алгоритм у SQL 2012, який є SQRT (1000 * рядків таблиці), що набагато краще.
Коли він запускається, він буде використовувати коефіцієнт вибірки за замовчуванням, і ось алгоритм, як він обчислює частоту вибірки.
1) Якщо таблиця <8MB, то вона оновлює статистику на повний скан.
2) Якщо таблиця> 8MB, це слід алгоритму. Це зменшує частоту вибірки, оскільки кількість рядків у таблиці збільшується, щоб переконатися, що ми не скануємо занадто багато даних. Це не фіксоване значення, але знаходиться під контролем оптимізатора. Це теж не лінійний алгоритм.
Приклад: якщо у нас є 1 000 000 рядків, він використовував би коефіцієнт вибірки 30%, але коли кількість рядків збільшиться до 8 000 000, це знизить частоту вибірки до 10%. Ці показники вибірки не знаходяться під контролем DBA, але оптимізатор вирішує це.