|
WITH AS стоит ли использовать?
|
|||
---|---|---|---|
#18+
Использую СУБД Postgresql, есть запрос Код: sql 1. 2. 3.
Нужно его оптимизировать, таблицы большие, забирает большие ресурсы, хочу его переписать, используя WITH AS, таким образом Код: sql 1. 2. 3. 4. 5. 6.
есть ли смысл это делать, есть ли какой - нибудь профит в этом? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2018, 17:14 |
|
WITH AS стоит ли использовать?
|
|||
---|---|---|---|
#18+
polin11, Сделаете хуже. CTE материализуется - будет плохо если в выражении будет много данных. explain (analyze,buffers) смотрите. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2018, 17:38 |
|
WITH AS стоит ли использовать?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6.
in на join переделайте. Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2018, 07:37 |
|
WITH AS стоит ли использовать?
|
|||
---|---|---|---|
#18+
так в пж надо только если в виз попадает мало записей. т.е. если вы наперед это знаете angel_zar in на join переделайте. как правило вот так , если нужен нестед луп. но с переходом в хеш-джойн от статистики Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2018, 10:34 |
|
WITH AS стоит ли использовать?
|
|||
---|---|---|---|
#18+
qwwq, вариант с экзистс при обратных пропорциях кардинальностей не охвачен ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2018, 10:35 |
|
WITH AS стоит ли использовать?
|
|||
---|---|---|---|
#18+
А если подойти к этому вопросу по другому и поддержать соединение таблиц индексами? Если очень часто этот запросы выполняется - можно свернуть SELECT Fileld1 FROM Table2 WHERE Fileld2='A' AND Fileld3 IS NULL до index_only_scan. Cte в Postgresql материализуется, и, в случае если указанная выше выборка поднимает большое количество данных, то памяти, выделенной для процесса может не хватить. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2018, 13:17 |
|
|
start [/forum/topic.php?fid=53&msg=39646288&tid=1995770]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 149ms |
0 / 0 |