|
|
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
Немного подтормаживает работа с большой CTE. Я думаю, мне бы помогло создание индексов. Можете привести запрос с созданием CTE и индексом? Или есть другие варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 07:58 |
|
||
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
PCContraНемного подтормаживает работа с большой CTE. Я думаю, мне бы помогло создание индексов. Можете привести запрос с созданием CTE и индексом? Или есть другие варианты? какие еще индексы в cte? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 08:37 |
|
||
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
PCContra, CTE, по сути, синтаксический "рафинад", нужный для более удобной, наглядной и понятной формы записи сложных запросов. Если есть проблемы с производительностью, то решать их нужно правильным индексированием базовых таблиц и оптимизацией сложных запросов. P.S. В некоторых СУБД CTE вообще называется SUBQUERY FACTORING CLAUSE, что, как бы, намекает на их предназначение... ;) Хотя, справедливости ради, в этой же СУБД есть возможность управления тем, как поступать с результатом запроса в CTE для более эффективного многократного его использования в последующей части запроса - использовать ли его как встроенное представление (on-line запрос), или же материализовать результат на уровне временной таблицы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 08:56 |
|
||
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
Ivan Durak, справедливости ради -- пж всегда материализует cte (есть исключение - если есть Cte--селект в списке всех cte, и он не используется в результирующем запросе cte--"полистейтмента" -- то он будет опущен оптимизатором за ненадобностью [обламывался с вызовом пишущих ф-й]. В то время как dml--cte--сабстейтменты будут исполнены, даже если их returning нигде ниже не используется. Документировано ли это -- не знаю. ) а раз материализует, то напрашивается Код: sql 1. 2. ну или планировщик должен уметь это сам решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 10:25 |
|
||
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
Щукина АннаPCContra, CTE, по сути, синтаксический "рафинад", нужный для более удобной, наглядной и понятной формы записи сложных запросов. <>это [пока], не верно в пж. т.к. тот всегда материализует cte -- т.е. это не простой алиасинг типа "with temporary view" в тех случаях, когда вам этого не надо (т.е. материализация тормозит и избыточна) -- приходится пользоваться обычными именованными подзапросами, повторяя его столько раз, сколько нужно. что несколько громоздко в записи, но кажется оптимайзер опознаёт дублирующие вхождения (могу тут врать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 10:29 |
|
||
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
qwwqIvan Durak, справедливости ради -- пж всегда материализует cte (есть исключение - если есть Cte--селект в списке всех cte, и он не используется в результирующем запросе cte--"полистейтмента" -- то он будет опущен оптимизатором за ненадобностью [обламывался с вызовом пишущих ф-й]. В то время как dml--cte--сабстейтменты будут исполнены, даже если их returning нигде ниже не используется. Документировано ли это -- не знаю. ) а раз материализует, то напрашивается Код: sql 1. 2. ну или планировщик должен уметь это сам решить. Код: sql 1. 2. так работает? я такого в мануале 9.4 не нашел. Искал где WITH запросы разбираются и где select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 14:38 |
|
||
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
PCContra, нет , так не работает. этой кляузы в предложении "with" не предусмотрено. так "напрашивается" [см. выше], в силу того, что всё равно оно материализовано (пока). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 14:41 |
|
||
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
qwwqPCContra, нет , так не работает. этой кляузы в предложении "with" не предусмотрено. так "напрашивается" [см. выше], в силу того, что всё равно оно материализовано (пока). до такого "напрашивается" даже оракл не додумался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 16:25 |
|
||
|
Можно ли с CTE использовать индексы?
|
|||
|---|---|---|---|
|
#18+
Если "оно материализовано" (т.е. как я понимаю, qwwq иммет ввиду "записано на жесткий диск"), то может его лучше заменить на материализованное представление? Там вроде индексы поддерживаются Как идея? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 16:50 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=109&tid=1997935]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 330ms |

| 0 / 0 |
