Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
andrew shalaev Member Откуда: Moscow Сообщений: 610 |
Добрый день! СУБД: 2014 SP2-CU2 Enterprise Периодически съезжает план у процедуры, запрос: IF @tiHasBeenCycleParsed = 1 AND LEN(@strParam) >= 4 AND EXISTS ( SELECT 1 FROM T1 l JOIN T2 c ON c.ID = l.ID WHERE l.ID = @ID AND c.Number LIKE '%' + @strParam ) При плохом плане запрос висит до 30 сек с cmd CONDITIONAL с типом ожидания SOS_SCHEDULER_YIELD, при этом cpu на несколько порядков больше чем при нормальном плане. Лечится проблема сбросом плана выполнения запроса. К сообщению приложен файл. Размер - 72Kb |
19 июн 17, 13:06 [20574394] Ответить | Цитировать Сообщить модератору |
andrew shalaev Member Откуда: Moscow Сообщений: 610 |
Плохой план: К сообщению приложен файл. Размер - 97Kb |
19 июн 17, 13:07 [20574395] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
andrew shalaev, OPTION (OPTIMIZE FOR UNKNOWN(@strParam UNKNOWN)) |
19 июн 17, 13:09 [20574400] Ответить | Цитировать Сообщить модератору |
andrew shalaev Member Откуда: Moscow Сообщений: 610 |
andrew shalaev, Думаю надо вынести подзапрос, есть ли у кого другие идеи как решить проблему съезжающего плана? |
19 июн 17, 13:10 [20574409] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Боюсь показаться банальным, но 1. Перестать маяться херней c.Number LIKE '%' + @strParam 2. Сделать таки индексы на таблицах. |
||
19 июн 17, 13:41 [20574522] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Индекс нужен, |
||
19 июн 17, 17:31 [20575557] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
andrew shalaev, 3 нормальной формы , в данных то нет.. |
19 июн 17, 17:33 [20575565] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Если нет 3 нормальной формы, не требуйте что нибудь быстрого. Надо мужиком. Быть. Или олтп или олап, отчёты. |
19 июн 17, 17:37 [20575585] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
мужик, а как ты определил отсутствие этой самой формы? |
||
19 июн 17, 17:39 [20575594] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
По плану заноса. |
||||
19 июн 17, 18:37 [20575777] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
И запросу. |
19 июн 17, 18:38 [20575781] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Если есть лайк , все, даже 1 нормальной формы нет. В одной колонке , много значений... |
19 июн 17, 18:44 [20575797] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Надо курить 3 нормальную форму а лучьше пятую. Разленивили, вас ораклы |
19 июн 17, 18:50 [20575812] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37138 |
Сообщение было отредактировано: 19 июн 17, 19:03 |
||
19 июн 17, 19:02 [20575836] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
С уважением,да ,не всегда, но не в этом конкретном случае. |
||||
19 июн 17, 19:08 [20575852] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37138 |
|
||||
19 июн 17, 19:10 [20575857] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Гавриленко Сергей Алексеевич, Но тогда это сисемма ответная, или олап. От таких и ждут запросы типач что было вчера. |
19 июн 17, 19:13 [20575869] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Научите меня соеденить олтп и олап.? |
19 июн 17, 19:15 [20575875] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37138 |
|
|||
19 июн 17, 19:18 [20575883] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Но все равно. Не надо ждать хорошего от , лайка никогда. Надо всех чётко индексировать! |
19 июн 17, 19:32 [20575907] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Гавриленко Сергей Алексеевич, Технически, если поле индексированно, по фулл индексу, я бы заточил, inner join или Даже whre с лаком, но это по любому конец оптимизатору. Лайки только , когда все в хинтах. Это и не sql |
19 июн 17, 20:56 [20575997] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37138 |
|
||||
19 июн 17, 20:59 [20576001] Ответить | Цитировать Сообщить модератору |
sparrow Member Откуда: Россия, Красноярск. Сообщений: 21759 |
Завязал! но все равно интересно. Топик стартер дал бы воспроизводимый тест , все встало бы на свои места. |
||||||
19 июн 17, 21:44 [20576056] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9632 |
В этом случае, в первом плане, в отличии от второго, до T2 дело не доходит. Отсюда и быстрое выполнение. Зафиксировать план можно, написав from T1 l inner loop join T2 on ... Еще способ - прикрутить plan guide. |
||
19 июн 17, 22:56 [20576122] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |