|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Почему ФБ игнорирует абсолютно все планы запросов - не только для <main-query>, но и для <cte-defs>? ИМХО, игнорировать план запроса для <cte-defs>, это неправильно, так как запросы в <cte-defs> довольно "стабильны" даже внутри представления. Если я не прав, хотелось бы увидеть пример применения обратного. Еще смежный вопрос - как при выборке из представления на базе рекурсивного cte принудительно задать план запроса не только для инициирующего рекурсию запроса, но и для последующих, указанных после UNION ALL? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 11:06 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
rdb_dev, 1. явное задание планов зло 2. CTE не есть отдельный запрос, поэтому и план только для CTE задать нельзя. Надо задавать план для запроса целиком. Частичное задание планов запретили ещё в 2.0. rdb_devЕсли я не прав, хотелось бы увидеть пример применения обратного. Да запросто Код: sql 1. 2. 3. 4.
На MyField2 есть индекс. Как ты думаешь какой будет общий план? А какой бы ты план смог задать для запроса в CTE? авторЕще смежный вопрос - как при выборке из представления на базе рекурсивного cte принудительно задать план запроса не только для инициирующего рекурсию запроса, но и для последующих, указанных после UNION ALL? никак. План вообще конструкция устаревшая и многие методы доступа с помощью него не запишешь. Уже давно идёт обсуждение в пользу хинтов. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 11:28 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Симонов Денис, спасибо! Про подобное использование "дереватива" я, как-то, сразу не смекнул. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 11:43 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Симонов Денисникак. План вообще конструкция устаревшая и многие методы доступа с помощью него не запишешь. Уже давно идёт обсуждение в пользу хинтов.Как будут обстоять дела с этим в "четверке"? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 11:49 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
rdb_dev, это не у меня надо спрашивать. Пока для хинтов ничего не сделано. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 12:03 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Ну а в чём разница между хинтами и планом? Принцип один - директивное указание порядка сканирования записей. Проблема на самом деле в том, что разработчик не вполне может гарантировать правильный директивный план. По-хорошему нужно анализировать данные. При одних данных нужен такой путь, при других другой. И, наверно, лучше полагаться на внутренний механизм сервера выбора плана. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 13:55 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Hello, Kreatorxxi! You wrote on 27 января 2017 г. 13:59:21: Kreatorxxi> Ну а в чём разница между хинтами и планом?не знаешь - сиди кури в сторонке. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 14:00 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Мимопроходящий, Знаешь - расскажи. Мне будет интересно. Может и другим тоже. Хоть ссылку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 14:19 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Гусары, молчать! KreatorXXI, воспользуйся поиском, для начала. Прямого сравнения я не припоминаю, но материалов по обоим темам достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 14:25 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
KreatorXXIИ, наверно, лучше полагаться на внутренний механизм сервера выбора плана.Это теоретически, при идеальном алгоритме выбора плана, корректно учитывающего все аспекты - параметры выборки, их количество, селективность индексов, количество строк таблиц и т.д. На практике же, проектировщику БД, порой, виднее, какой план запроса оптимальнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 14:27 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
rdb_devНа практике же, проектировщику БД, порой, виднее, какой план запроса оптимальнее.На самом деле это не на практике, а в какой-то мере тоже, теоретически. Для абстрактного идеального проектировщика. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 14:29 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
WildSery, ключевое слово "порой". Естественно, что идеальный и безошибочный план запроса для всех выборок из БД может сформировать только "идеальный автомат", каковым человек не является, но это именно в теории... У нас же - чёрные будни практики. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 14:35 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Hello, Rdb Dev! You wrote on 27 января 2017 г. 14:36:09: Rdb Dev> У нас же - чёрные будни практики.у вас - розовые сопли всеобщей теории Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 14:36 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Мимопроходящий, как же без них? Всегда чего-то не хватает... И вот опять! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 14:41 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 15:07 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
rdb_dev, Сейчас тенденция - не полагаться на человека, человек слабое звено. Алгоритм должен быть такой, чтобы система работала без сбоев и проблем. А рассчитывать на сидящего рядом человека, который будет в зависимости от меняющихся условий изменять план - неправильно. Возьмите "Автопилот". Сейчас всё сыровато. Но через лет десять все поедут без руля. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 15:36 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
KreatorXXI, да, да. Вот только все топовые СУБД всё равно прикручивают хинты. А казалось бы у них оптимизатор крутой. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 15:53 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
KreatorXXI, Если на твою аналогию полагаться, то машина с автопилотом никогда не свернёт в лес на полянку для шашлыка. Придётся жрать только в оборудованных местах. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 16:13 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
Симонов ДенисKreatorXXI, да, да. Вот только все топовые СУБД всё равно прикручивают хинты. А казалось бы у них оптимизатор крутой. Прикручивают, чтобы было. И вот с такими предупреждениями: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 16:19 |
|
Вопрос про планы выполнения запросов в представлениях на базе рекурсивных CTE
|
|||
---|---|---|---|
#18+
WildSery, Ну если сразу едешь на полянку, то свернёт. А если в дороге пос.ать захотелось? Любую ситуацию можно довести до абсурда. Что касается "автопилота", то, скорее всего, его в первую очередь внедрят для грузовых перевозок. Логистический Центр -> Склад-Магазин. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 16:24 |
|
|
start [/forum/topic.php?fid=40&msg=39392852&tid=1561745]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 174ms |
0 / 0 |