|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
Всем привет, практике в оптимизации запросов практически не имею, помогите советом. Вот сам запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Подскажите, с чего начать на конкретном примере, на что в первую очередь стоит обратить внимание в текущем плане? Благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2020, 15:42 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
teCa, '06.07.2020' - так даты нельзя записывать, надо '20200706'. Это общее замечание. А какие хотите получить рекомендации - как научиться составлять индексы? Сомневаюсь, что это тема для форумного обсуждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2020, 16:22 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
Владислав Колосов, Скорее, рекомендации по чтению плана запроса. Если даже, в моем случае, эта тема про индексы, то как вы сделали этот вывод из текущего плана? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2020, 16:27 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
teCa, у вас в плане запроса применяется оператор соединения NL без предиката соединения, это плохо. при этом правом входе у него ветка из ClusteredIndexScan => TableSpool все из-за предиката соедениния: Код: sql 1.
постарайтесь переписать запрос без условного предиката соединения ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2020, 16:45 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
Код: sql 1.
название колонки не отражает формат фильтрации по ней, и поэтому хочется уточнить, нет ли там времени в колонке и если есть, то в данном запросе какой интервал имеется ввиду. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2020, 17:15 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
teCa, Вам сейчас будут советовать, как переписать запрос, а я вот вам дам иной совет. Сделайте параллельно вашим таблицам, некую таблицу, ориентированную на поиск. Денормализованную (с уже выполненными JOIN), возможно колоночную. Там такие вещи, предрассчитайте [Data].value('(/article/fields/field[@name="Date"])[1]', 'nvarchar(64)') Сделайте схему звезда, если надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 07:13 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
a_voronin teCa, Вам сейчас будут советовать, как переписать запрос, а я вот вам дам иной совет. Сделайте параллельно вашим таблицам, некую таблицу, ориентированную на поиск. Денормализованную (с уже выполненными JOIN), возможно колоночную. Там такие вещи, предрассчитайте [Data].value('(/article/fields/field[@name="Date"])[1]', 'nvarchar(64)') Сделайте схему звезда, если надо. Вроде ТС хочет научиться оптимизации запросов, понимать план выполнения. Денормализация - это отдельная тема. И при чём тут схема звезда? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 08:01 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
Почитал все комментарии, но пока все равно не понятно. Методом манипуляций, понял только, что 2 JOIN отрабатывают быстро, 3 JOIN - медленно, причем всё равно, какие таблицы подключаю, любые 2 - быстро, стоит подключить 3ю - начинаются тормоза. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Например в таком виде, запрос отрабатывает бысто. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 13:18 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
teCa, Не понятно, почему третий джойн "ломает" запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 13:19 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
Код: sql 1.
Есть версия, что это не самая удачная конструкция ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 13:32 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
teCa teCa, Не понятно, почему третий джойн "ломает" запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 13:38 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
teCa Не понятно, почему третий джойн "ломает" запрос. Из-за ошибочных оценок кардинальности оптимизатор выбирает cross join для [dbo].[Site] с последующей фильтрацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 14:09 |
|
Помогите разобраться с оптимизацией запроса.
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
ежели индексы наличествуют - будет быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 15:04 |
|
|
start [/forum/topic.php?fid=46&msg=39978136&tid=1685894]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 142ms |
0 / 0 |