Медленный поиск в MS SQL 2008: диагностика и исправление

Поиск работает медленно в MS SQL
Андрей Васенин

Андрей Васенин

Автор статьи. Сфера интересов: ИТ-специалист (программирование, администрирование, DBA). Кандидат экономических наук. Подробнее .

Если вы столкнулись с медленным поиском в базе данных MS SQL Server 2008, то для решения этой проблемы есть несколько вариантов. Для поиска проблем будем использовать как продакшен базу, так и ее копию - тестовую базу (решения будут медленнее работать в производственной системе по сравнению с тестовой).

Вариант №1

  1. Используйте профилирование сервера MS SQL (Profile), чтобы проверить, какие sql запросы выполняются медленно (проверьте чтение, запись, продолжительность):
    • запустите фильтр столбцов (column filter) с именем приложения и логином
    • Нажмите Старт
    • Произведите поиск
    • Остановите поиск
    • сохраните в xml и trc на будущее - в xml легче искать
  2. Сравните содержимое таблицы между двумя базами данных (производственной и тестовой)
  3. Проверьте индексы
USE database 
GO 
Select * from sys.indexes where name like ‘indexname%’ 
GO
  1. Сравните индексы между двумя базами данных
  2. Проверить последнее перестроение индексов
USE database;
GO
SELECT name AS Stats,
STATS_DATE(object_id, stats_id) AS LastStatsUpdate
   FROM sys.stats
 WHERE object_id = OBJECT_ID(‘table’)
       and left(name,4)!=’_WA_’;
GO
  1. Перестройте все индексы
  2. Реорганизуйте все индексы

 

Вариант 2:

  1. Используйте профилирование сервера MS SQL (Profile), чтобы проверить, какие sql запросы выполняются медленно (проверьте чтение, запись, продолжительность):
    • запустите фильтр столбцов (column filter) с именем приложения и логином
    • Нажмите Старт
    • Произведите поиск
    • Остановите поиск
    • сохраните в trc
  2. Используйте советник по настройке ядра базы данных (database engine tuning advisor)
    • файл - новая сессия
    • рабочая нагрузка (workload): используйте trc-файл, полученный выше выше для конкретной базы данных
    • выберите базу данных, для которой запустится настройка
    • начать анализ
    • не забудьте сохранить рекомендации
    • примените рекомендации, когда вы их просмотрели и осмыслили
  3. выполните поиск еще раз

Если он все еще медленный, повторяйте Варианты 1-2, пока производительность не станет удовлетворительной

Вас заинтересует / Intresting for you:

Как найти столбец по имени в б...
Как найти столбец по имени в б... 68 просмотров Андрей Васенин Wed, 09 Jun 2021, 18:38:14
MS SQL: поиск ключевого слова ...
MS SQL: поиск ключевого слова ... 101 просмотров Андрей Васенин Wed, 09 Jun 2021, 06:02:30
Что нового в SQL Server 2019? ...
Что нового в SQL Server 2019? ... 585 просмотров Doctor Mon, 15 Feb 2021, 19:46:52
SQL Server 2019: Гибридный пул...
SQL Server 2019: Гибридный пул... 513 просмотров Doctor Sat, 27 Feb 2021, 19:09:38
Войдите чтобы комментировать