|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
invm pavifed, Повторюсь - ваши картинки неинформативны. Не хотите сами разбираться с ожиданиями (предположительно) - тогда запустите запрос еще раз и покажите актуальный план выполнения в формате sqlplan, а не картинкой. Приложил файл. Посмотрите, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 16:45 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
Yasha123 видите же, что другие thread ждут работающего, которому досталось больше. вам предлагали при maxdop = 1 запускать, попробуйте снова и посмотрим, что там за ожидания, исключим CXPACKET за минуту до вашего комментария успел ответить другому участнику: При использовании OPTION (MAXDOP 1) представление sys.dm_os_waiting_tasks возвращает пустой набор. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 16:47 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
ну и где тут "актуальных строк столько же, сколько оценочных"? кривая оценка числа строк, криво же распределил работу между threads. все ждали одного. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 17:05 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
a вообще планы какие-то урезанные QueryTimeStats напрочь отсутствует. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 17:28 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
pavifed Приложил файл. Планы не соответствуют опубликованным картинкам. И какие-то урезанные. QueryTimeStats может и не быть, ибо появилось в 2017 CU3, а у вас почти что RTM. Но WaitStats появилось в 2016 SP1, а нету. Откуда планы брали? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 18:20 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
Yasha123, я прислал выше куцый план, к сожалению. Вот план после выполнения запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 18:31 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
вот в некуцем плане есть и нехилый индекс спул ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 18:56 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
Yasha123, Как это лечится? (смущённый смайл) Есть типовые пути решения? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 18:58 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
pavifed, попробуйте, там спулирование вроде не для HP добавляется, по сути он должен убрать его из плана. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 19:04 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
felix_ff, Кажется, не помогло. В Live сразу отображается (при option (no_performance_spool)) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 19:06 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
pavifed, кароче ему не хватает индекса на VSheduleItem вида Код: sql 1.
но делать это на такой большой таблице возможно не камильфо. у Вас в плане изначальный предикат правого входа это IndexSeek на VScheduleItem по предикату ServicePointId = Scalar Operator((5)) оценка такого предиката возвращает оценочное кол-во строк в 87832. поскольку потом дополнительно нужно фильтроваться по предикатам неравенства сервер решает построить индекс. но вот только он считает вполне нормальным что левый вход ему дает набор в 376852 строки и можно столько раз посоздавать индекс. Можете попробовать заскриптовать оценочный план который не содержит IndexSpool и применить его в виде PlanGuide ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 19:21 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
felix_ff кароче ему не хватает индекса на VSheduleItem вида Код: sql 1.
но делать это на такой большой таблице возможно не камильфо. да ладно, там девелопер, можно онлайново создать и с компрессией Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 19:39 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
Yasha123 да ладно, там девелопер, можно онлайново создать и с компрессией Код: sql 1. 2.
Добавил такой индекс. Выполняю запрос, вижу, что по-прежнему используется кластерный индекс pr_id, а не новый ix. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 19:52 |
|
Проблема соединения двух таблиц (26 и 4 млн строк)
|
|||
---|---|---|---|
#18+
pavifed, Перепишите так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Спул уйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 19:56 |
|
|
start [/forum/topic.php?fid=46&msg=40019074&tid=1685404]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 20ms |
total: | 181ms |
0 / 0 |