SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » Обновление статистики FULLSCAN и без него
Обновление статистики FULLSCAN и без него [сообщение #2074] Sat, 15 April 2023 13:53 Переход к следующему сообщению
StillZero в настоящее время не в онлайне  StillZero
Сообщений: 1
Зарегистрирован: April 2023
Junior Member
Здравствуйте!

Версия 2016 SP 2 (13.0.5026)

Начались тормоза с запросом. Помогло обновление статистики по одной таблице из запроса: план стал строиться совсем другой, тормоза исчезли.
Но раз в неделю происходит реорганизация индексов и за ней обновление статистики (по каждой статистике) с указанием FULLSCAN. После этого тормоза и "плохой" план возвращаются. Снова делаю "простое" обновление по всей таблице (без FULLSCAN) и "правильный" план возвращается.

Понятно, что можно добавить к заданию обслуживания индексов еще один шаг с простым обовлением статистики по нужной таблице.

Хотелось бы дойти до сути. Куда копать?

Спасибо!
Re: Обновление статистики FULLSCAN и без него [сообщение #2083 является ответом на сообщение #2074] Sun, 16 April 2023 14:23 Переход к предыдущему сообщению
shigor в настоящее время не в онлайне  shigor
Сообщений: 26
Зарегистрирован: March 2023
Географическое положение: НиНо
Junior Member
В первую очередь установить SP3.
Статистика - это примерно 200 диапазонов на которые разбиты ваши данные.. естественно статистика fullscan будет разбивать весь объем записей на эти 200 диапазонов, а статистика без fullscan обновляет только ту статистику, которая соответствует значению rowmodctr из sys.sysindexes после последнего обновления статистики. Соответственно если есть перекос в данных (например, каких-то значений значительно больше чем всех остальных) то существует вероятность создания кривой статистики и кривого плана..
грубо, по статистике в каждом диапазоне по 1000 записей, но в одном получилось 100000.. вот и начинаются тормоза..
На самом деле все гораздо сложнее..
Предыдущая тема: Выделить данные из 2-х таблиц
Следующая тема: Как на MS SQL Server 2012 Express очистить базу данных не зная пароля к ней?
Переход к форуму:
  


Текущее время: Thu Dec 19 09:34:02 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00628 секунд