|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
Я заметил что при определенных параметрах запроса (период данных) SQL 2019 (база в режиме совместимости с 2008) дает кривой Live plan См приложенный скрин, такое впечатление что он не знает какое количество записей предстоит обработать. Видимо нужно принудительное обновление статистики хотя флаг Т2371 установлен. Вопрос - кто сталкивался с подобным и какие средства борьбы? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 12:51 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
selis76, не используйте табличные переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 13:28 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
selis76, Судя по фразе "при определенных параметрах запроса" - это больше похоже на Parameter Sniffing Пересчёт статистик поможет, но только тем, что после этого будет построен новый план. Возможно, он будет оптимален для "определённых параметров", но так же возможно, что он будет неоптимален для всех остальных. Я бы посмотрел на то, чем отличаются значения параметров в случаях, когда всё хорошо и всё плохо. Возможно, для "плохих" параметров можно как-то намеренно поменять текст запроса (например, поменять местами порядок колонок), чтобы для них строился другой план запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 13:32 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
0wl selis76, Судя по фразе "при определенных параметрах запроса" - это больше похоже на Parameter Sniffing Пересчёт статистик поможет, но только тем, что после этого будет построен новый план. Возможно, он будет оптимален для "определённых параметров", но так же возможно, что он будет неоптимален для всех остальных. Я бы посмотрел на то, чем отличаются значения параметров в случаях, когда всё хорошо и всё плохо. Возможно, для "плохих" параметров можно как-то намеренно поменять текст запроса (например, поменять местами порядок колонок), чтобы для них строился другой план запроса поддержу версию параметр сниффинга касательно плана - в его свойствах показано для каких параметров он был скомпилирован кроме того, есть такая штука как "temp table statistics reuse" это использование статистики по #-таблице от других запросов/сессий то есть, данные в #-таблице ваши, а статистика по ней - нет кстати, запрос для сервера становится "новым" даже если в нем дополнительный лишний/незначащий пробел ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 13:58 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
komrad, там в источнике, который автор выбросил из контекста, ожидаема одна строка. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 14:36 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
Владислав Колосов komrad, там в источнике, который автор выбросил из контекста, ожидаема одна строка. вероятно полный план помог бы понять причину и в таблице #tt22 тоже ожидание одной строки ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 14:42 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
Статистику пересчитал без параметров просто update statistics, не помогло. На узком периоде таже картина см скрин Если смотреть узлы плана запроса видно что Estimated Number of Rows to Be read =1 а на Number of executions = 104732 т.е. получается SQL не может даже предположить сколько записей у него предполагается для данной операции ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:40 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
selis76, лучше бы приложили весь план в XML Всё ещё не видно, что происходит справа. Моё предположение - временная таблица без индекса, про которую SQL Server думает, что там всего 1 строка ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:43 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
0wl selis76, Судя по фразе "при определенных параметрах запроса" - это больше похоже на Parameter Sniffing Пересчёт статистик поможет, но только тем, что после этого будет построен новый план. Возможно, он будет оптимален для "определённых параметров", но так же возможно, что он будет неоптимален для всех остальных. Я бы посмотрел на то, чем отличаются значения параметров в случаях, когда всё хорошо и всё плохо. Возможно, для "плохих" параметров можно как-то намеренно поменять текст запроса (например, поменять местами порядок колонок), чтобы для них строился другой план запроса Ну как понимаю Paramete sniffing лечится чисткой кэша запросов, но тут она не помогает. Все четко зависит от периода выборки ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:44 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
selis76 Ну как понимаю Paramete sniffing лечится чисткой кэша запросов, но тут она не помогает. Все четко зависит от периода выборки в тестовых целях попробуйте выполнить запрос с разными периодами с опцией recompile - этим вы исключите влияние сниффинга сравните планы выполнения, если они разные ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 16:51 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
selis76, вы не там смотрите, ищите справа, где впервые появляется оценка в одну строку. Там или табличная переменная или временная таблица. А лучше прикрепите план. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 17:33 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
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/ ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 18:35 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 19:57 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
selis76 Проблема в том что за период 1 день план запроса плохой вот с таким мегапроцентами, а за 5 дней план запроса хороший. Это случает на определенных датах. Т.е. меньшая выборка идет по кривому плану с мегапроцентами , мега проценты это уже кривой план MS SQL можно форсировать нужный план - см QueryStore ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 20:55 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
Я могу конечно выложить полный кривой план, но что это даст? К сожалению запрос из 1С а там хинтами не поработаешь. Форсированием нового плана пока не заморачивался. Там ведь названия временных таблиц 1С не фиксированные, так как 1С по сути генератор запросов. Видимо нужно в Microsoft написать в поддержку, мегапроценты вроде как ненормальная ситуация ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 21:59 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
selis76, кликните правой кнопкой по плану и выберите "сохранить как...". Если "ничего не даст", то какой смысл был вообще писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 22:10 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
Владислав Колосов selis76, кликните правой кнопкой по плану и выберите "сохранить как...". Если "ничего не даст", то какой смысл был вообще писать. Я просто думал что возможно это ивестный баг и есть флаги какие нибудь на эту тему. Т2371 микрософт не просто так придумал, хотя при их идеологии статистики он должен быть в базе еще с 2008 SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 22:23 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
selis76, на баз не похоже, особенность запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 10:57 |
|
Live plan в SQL 2019 и большие проценты
|
|||
---|---|---|---|
#18+
Кто интересовался планом прилагаю ДРУГОЙ запрос с похожей проблемой. Т.е. на одном конкретном дне медленно и неэффективно а если задать период шире то все нормально. При этом это один конкретный день где повидимому сломалась статистика или чтото связанное https://cloud.mail.ru/public/t9ur/zAoDf5Vx6 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 11:33 |
|
|
start [/forum/topic.php?fid=46&msg=40114944&tid=1683946]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 297ms |
0 / 0 |