Після того, як обсяг даних у таблиці SQL SERVER досягне певної кількості (понад мільйон), швидкість виконання запитів і оновлення операторів стає досить повільною, і я часто стикаюся з такими проблемами в цей період.
Один зі способів збільшити швидкість — це використання індексів. Зокрема, існує два способи, які пояснюються так:
Перший метод: Змініть оператор WHERE запиту або оновлення та спробуйте включити стовпці, включені в індекс, до оператора WHERE。 Зокрема, включення стовпців у агрегований індекс корисне для швидшого виконання.
Другий метод: встановити відповідний індекс на основі запиту або оновлення。 Для цього потрібно використовувати майстер оптимізації індексів, який надає SQL SERVER Query Analyzer, який аналізує SQL-оператори для отримання відповідного індексу.
Слід також зазначити, що при вирішенні таких проблем необхідно враховувати спільні та побічні питання. Якщо збережена процедура виконується повільно, окрім оптимізації операторів у збереженій процедурі, необхідно також враховувати, чи потрібно оптимізувати процес, започаткований оператором у збереженій процедурі, наприклад, чи потрібно оптимізувати оператори відповідних тригерів, що запускаються оновленням або вставкою таблиць.
Третій метод: поставити дані в таблиці у тимчасову таблицю перед обробкою.Такий підхід може значно підвищити швидкість виконання, але не вирішує проблему паралелізму. Формулювання таке:
ВИБЕРІТЬ * У #临时表 З офіційної таблиці
Четвертий метод: використовуйте курсор лише для швидкого введення.Якщо модифікації не потрібні, можна використовувати курсор лише для швидкого входу замість звичайного, щоб збільшити швидкість.
Знайдіть точки оптимізації та оптимізуйте:
1. Використання планів виконання: меню аналізатора запитів «Запит -> Відобразити плани очікуваного виконання»
2. У процесі зберігання знайдіть оператор, який потрібно оптимізувати
3. Створіть індекс за допомогою майстра оптимізації індексу: увійдіть у аналізатор запитів за допомогою SA та перейдіть до меню "Query -> Index Optimization Wizard"
|