powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Live plan в SQL 2019 и большие проценты
19 сообщений из 19, страница 1 из 1
Live plan в SQL 2019 и большие проценты
    #40114823
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я заметил что при определенных параметрах запроса (период данных) SQL 2019 (база в режиме совместимости с 2008) дает кривой Live plan
См приложенный скрин, такое впечатление что он не знает какое количество записей предстоит обработать.
Видимо нужно принудительное обновление статистики хотя флаг Т2371 установлен.
Вопрос - кто сталкивался с подобным и какие средства борьбы?
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114842
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76,

не используйте табличные переменные.
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114843
0wl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
0wl
Гость
selis76,

Судя по фразе "при определенных параметрах запроса" - это больше похоже на Parameter Sniffing

Пересчёт статистик поможет, но только тем, что после этого будет построен новый план. Возможно, он будет оптимален для "определённых параметров", но так же возможно, что он будет неоптимален для всех остальных.

Я бы посмотрел на то, чем отличаются значения параметров в случаях, когда всё хорошо и всё плохо. Возможно, для "плохих" параметров можно как-то намеренно поменять текст запроса (например, поменять местами порядок колонок), чтобы для них строился другой план запроса
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114853
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0wl
selis76,

Судя по фразе "при определенных параметрах запроса" - это больше похоже на Parameter Sniffing

Пересчёт статистик поможет, но только тем, что после этого будет построен новый план. Возможно, он будет оптимален для "определённых параметров", но так же возможно, что он будет неоптимален для всех остальных.

Я бы посмотрел на то, чем отличаются значения параметров в случаях, когда всё хорошо и всё плохо. Возможно, для "плохих" параметров можно как-то намеренно поменять текст запроса (например, поменять местами порядок колонок), чтобы для них строился другой план запроса


поддержу версию параметр сниффинга

касательно плана - в его свойствах показано для каких параметров он был скомпилирован

кроме того, есть такая штука как "temp table statistics reuse"
это использование статистики по #-таблице от других запросов/сессий
то есть, данные в #-таблице ваши, а статистика по ней - нет

кстати, запрос для сервера становится "новым" даже если в нем дополнительный лишний/незначащий пробел
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114881
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

там в источнике, который автор выбросил из контекста, ожидаема одна строка.
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114884
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
komrad,

там в источнике, который автор выбросил из контекста, ожидаема одна строка.

вероятно
полный план помог бы понять причину

и в таблице #tt22 тоже ожидание одной строки
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114941
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Статистику пересчитал без параметров просто update statistics, не помогло. На узком периоде таже картина см скрин
Если смотреть узлы плана запроса видно что Estimated Number of Rows to Be read =1 а на Number of executions = 104732
т.е. получается SQL не может даже предположить сколько записей у него предполагается для данной операции
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114943
0wl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
0wl
Гость
selis76,

лучше бы приложили весь план в XML

Всё ещё не видно, что происходит справа. Моё предположение - временная таблица без индекса, про которую SQL Server думает, что там всего 1 строка
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114944
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0wl
selis76,

Судя по фразе "при определенных параметрах запроса" - это больше похоже на Parameter Sniffing

Пересчёт статистик поможет, но только тем, что после этого будет построен новый план. Возможно, он будет оптимален для "определённых параметров", но так же возможно, что он будет неоптимален для всех остальных.

Я бы посмотрел на то, чем отличаются значения параметров в случаях, когда всё хорошо и всё плохо. Возможно, для "плохих" параметров можно как-то намеренно поменять текст запроса (например, поменять местами порядок колонок), чтобы для них строился другой план запроса


Ну как понимаю Paramete sniffing лечится чисткой кэша запросов, но тут она не помогает. Все четко зависит от периода выборки
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114947
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76

Ну как понимаю Paramete sniffing лечится чисткой кэша запросов, но тут она не помогает. Все четко зависит от периода выборки

в тестовых целях попробуйте выполнить запрос с разными периодами с опцией recompile - этим вы исключите влияние сниффинга
сравните планы выполнения, если они разные
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114966
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76,

вы не там смотрите, ищите справа, где впервые появляется оценка в одну строку. Там или табличная переменная или временная таблица. А лучше прикрепите план.
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40114977
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76Вопрос - кто сталкивался с подобным и какие средства борьбы?В чем собственно проблема?
Запрос плохо работает, плохой план.
Запрос работает хорошо, не работает Live plan aka SSMS’s Live Query Statistics?
Если последнее то вот статья Brent Ozar на эту тему https://www.brentozar.com/archive/2021/05/whats-the-buggiest-feature-in-sql-server/
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40115003
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257
selis76Вопрос - кто сталкивался с подобным и какие средства борьбы?
В чем собственно проблема?
Запрос плохо работает, плохой план.
Запрос работает хорошо, не работает Live plan aka SSMS’s Live Query Statistics?
Если последнее то вот статья Brent Ozar на эту тему https://www.brentozar.com/archive/2021/05/whats-the-buggiest-feature-in-sql-server/
Проблема в том что за период 1 день план запроса плохой вот с таким мегапроцентами, а за 5 дней план запроса хороший.
Это случает на определенных датах. Т.е. меньшая выборка идет по кривому плану с мегапроцентами , мега проценты это уже кривой план MS SQL
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40115017
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76

Проблема в том что за период 1 день план запроса плохой вот с таким мегапроцентами, а за 5 дней план запроса хороший.
Это случает на определенных датах. Т.е. меньшая выборка идет по кривому плану с мегапроцентами , мега проценты это уже кривой план MS SQL

можно форсировать нужный план - см QueryStore
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40115024
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я могу конечно выложить полный кривой план, но что это даст? К сожалению запрос из 1С а там хинтами не поработаешь. Форсированием нового плана пока не заморачивался. Там ведь названия временных таблиц 1С не фиксированные, так как 1С по сути генератор запросов.
Видимо нужно в Microsoft написать в поддержку, мегапроценты вроде как ненормальная ситуация
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40115028
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76,

кликните правой кнопкой по плану и выберите "сохранить как...".
Если "ничего не даст", то какой смысл был вообще писать.
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40115034
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
selis76,

кликните правой кнопкой по плану и выберите "сохранить как...".
Если "ничего не даст", то какой смысл был вообще писать.


Я просто думал что возможно это ивестный баг и есть флаги какие нибудь на эту тему. Т2371 микрософт не просто так придумал, хотя при их идеологии статистики он должен быть в базе еще с 2008 SQL
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40115154
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76,

на баз не похоже, особенность запроса.
...
Рейтинг: 0 / 0
Live plan в SQL 2019 и большие проценты
    #40125694
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто интересовался планом прилагаю ДРУГОЙ запрос с похожей проблемой. Т.е. на одном конкретном дне медленно и неэффективно а если задать период шире то все нормально. При этом это один конкретный день где повидимому сломалась статистика или чтото связанное
https://cloud.mail.ru/public/t9ur/zAoDf5Vx6
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Live plan в SQL 2019 и большие проценты
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]