Відповіді:
Статистика просто є формою динамічних метаданих, яка допомагає оптимізатору запитів у прийнятті кращих рішень. Наприклад, якщо в таблиці є всього лише десяток рядків, то індекс не має сенсу робити пошук; вам завжди буде краще робити повне сканування таблиці. Але якщо ця сама таблиця виросте до мільйона рядків, то вам, ймовірно, буде краще використовувати індекс. Але якщо ви запитуєте цю таблицю у стовпчику, у якому є лише дуже мало унікальних значень (наприклад, це може бути стовпець "sex", що містить лише "M" або "F"), насправді FTS може бути кращим для цього випадку, тому що ви б Вам потрібно все-таки отримати блок для створення набору результатів. Тепер скажіть, що ваша таблиця становить 99% "M" і лише 1% "F", ми повинні FTS в одному випадку або використовувати індекс в іншому. Та сама таблиця, той самий запит, потенційно чотири різні плани запитів, залежно від вмісту таблиці. Такі речі є "статистикою", і вони індивідуальні для кожної бази даних - навіть дві бази даних з однаковою структурою таблиці та індексу матимуть різні статистичні дані.
Підсумовуючи це, в сучасному двигуні бази даних існує два види оптимізації запитів: перезапис SQL (оптимізація на основі правил, подібно до того, що компілятор переписує свій C, щоб зробити його більш ефективним) та вибір правильного шляху до даних (оптимізація на основі витрат , як компілятор JIT, що визначає точки доступу під час виконання). Про це вам потрібно потурбуватися лише в тому випадку, якщо ви помітили, що оптимізатор запитів робить щось очевидно неправильно (наприклад, вибір FTS, коли ви знаєте, що індекс буде кращим).
Вони використовуються оптимізатором запитів (Whitepaper на MSDN) для відстеження розподілу значень в індексах та / або стовпцях.
Ваша єдина проблема - регулярне оновлення : просто залиште двигун БД, щоб виконувати його роботи