|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Есть запрос, который возвращает некоторую агрегацию по таблице заказов: Код: sql 1. 2. 3. 4. 5.
..и наблюдаю следующий план запроса: я бы хотел избавиться от тяжелого оператора Hash Match с помощью индексированного представления Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Почему при повторном выполнении запроса, план не меняется, и оптимизатор никак не хочет ссылаться на индексированное представление, ведь ему так легче будет? Если напрямую обращаться к представлению, то план, который я хочу увидеть, появляется только после применения хинта (noexpand): Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 18:53 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 18:54 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
с картинками беда какая-то. не знаю как загрузить правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 18:55 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Mikhail__174 Если напрямую обращаться к представлению, то план, который я хочу увидеть, появляется только после применения хинта (noexpand): [SRC sql][/SRC] ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 19:16 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
пробовал тут : 2017 Microsoft Corporation Standard Edition (64-bit) и тут : 2017 Microsoft Corporation Express Edition (64-bit) везде всё одинаково :( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 19:28 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Mikhail__174 пробовал тут : 2017 Microsoft Corporation Standard Edition (64-bit) и тут : 2017 Microsoft Corporation Express Edition (64-bit) везде всё одинаково :( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 20:11 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
alexeyvg Mikhail__174 пробовал тут : 2017 Microsoft Corporation Standard Edition (64-bit) и тут : 2017 Microsoft Corporation Express Edition (64-bit) везде всё одинаково :( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 21:16 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
А если в запросе написать COUNT_BIG вместо COUNT? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 08:46 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Mikhail__174, не пойму, что смущает в использовании with (noexpand)? Насколько я читал, в первую очередь оптимизатор использует исходные таблицы представления. В справке недвусмысленно указано: Чтобы заставить оптимизатор использовать индекс для индексированного представления, следует указать параметр NOEXPAND. Вы ознакомились со справкой по ссылке которая была выше? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 11:38 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
alexeyvg,авторА уровень совместимости БД какой? 130. Но он тут не при чём. То, что я хотел, работает только в enterprise версии ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 12:15 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Владислав Колосов, авторВы ознакомились со справкой по ссылке которая была выше? Ознакомился. авторто смущает в использовании with (noexpand) То, что его можно просто забыть указать. Моя проблема решена, SQL server умеет использовать индексы вьюшки и без хинта (noexpand), правда только в enterprise версии ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 12:20 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
msLex, не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 12:21 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Mikhail__174 То, что его можно просто забыть указать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 12:48 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Mikhail__174 пробовал тут : 2017 Microsoft Corporation Standard Edition (64-bit) и тут : 2017 Microsoft Corporation Express Edition (64-bit) везде всё одинаково :( Возможно, это поменяли в SP1 для 2016, но в 2017 к релизу не успели, и это сделано в каком то CU Mikhail__174 Моя проблема решена, SQL server умеет использовать индексы вьюшки и без хинта (noexpand), правда только в enterprise версии Но непонятно, почему сиквел работает не так, как описано по указанной вами ссылке. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 12:56 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
alexeyvg, авторА полная версия какая? у меня уже три версии, пока я разбираюсь с этим примером :) "Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Express Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 18362: ) " "Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Enterprise Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 18362: ) " "Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Standard Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 18362: ) " авторНо непонятно, почему сиквел работает не так, как описано по указанной вами ссылке Почему, всё работает верно. "Automatic use of indexed view by query optimizer" есть только у Enterprise версии, т.е. в Standart и в Express можно обратиться только к представлению и только с хинтом (noexpand), чтобы задействовать индекс материализованной вьюшки. В Enterprise QO сам "понимает",что при обращении к таблицам, которые участвуют в материализованной вьюшке, и что индекс вьюшки покрывает запрос, и берёт индекс вьюшки, без обращения к самой вьюшке вовсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 13:13 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
alexeyvg Mikhail__174Моя проблема решена, SQL server умеет использовать индексы вьюшки и без хинта (noexpand), правда только в enterprise версии Но непонятно, почему сиквел работает не так, как описано по указанной вами ссылке.А, посмотрел не на ту строку; без хинта действительно только Энтерпрайз. Странно, почему тут написано, что автоматическое раскрытие работало только в энтерпрайзе до 2016 SP1 Возможно, косяк перевода... UPD Mikhail__174 Почему, всё работает верно. "Automatic use of indexed view by query optimizer" есть только у Enterprise версии Вот, и в английской версии доки написано: автор Prior to SQL Server 2016 (13.x) SP1, automatic use of an indexed view by the query optimizer is supported only in specific editions of SQL Server. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 13:16 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
alexeyvg, авторСтранно Ага, как то витиевато написано, "До SQL Server 2016 (13.x); SP1 автоматическое использование индексированного представления оптимизатором запросов поддерживается только в определенных выпусках SQL Server." При этом они не добавляют, что после от 2016 и выше будут поддерживать все версии эту функцию. И отправляют на ссылку, которую я скинул как раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 13:30 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Модератор: invm, Mikhail__174, живите дружно и не кидайтесь какашками друг в друга. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 13:48 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Mikhail__174, энтерпрайз, тем не менее. не гарантирует, что всегда будет использована индексированное представление. Для гарантии необходимо хинт писать, всё-таки. Недавно с этим столкнулся. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 14:58 |
|
почему оптимизатор запросов игнорирует индексированное представление
|
|||
---|---|---|---|
#18+
Владислав Колосов,авторэнтерпрайз, тем не менее. не гарантирует, что всегда будет использована индексированное представление. Для гарантии необходимо хинт писать, всё-таки. Недавно с этим столкнулся. Спасибо, я об этом тоже читал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 17:05 |
|
|
start [/forum/search_topic.php?author=bush321&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 1723ms |
total: | 1972ms |
0 / 0 |