Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Замена JOIN OR на аналог
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Существует запрос (в укороченном виде): Код: plsql 1. 2. Хотелось бы переписать имеющийся JOIN на два, дающих аналогичный результат. Какая из таблиц меньше t или tj неизвестно. Есть вариант с union, но посколько цельный запрос довольно не маленький, придется его еще увеличивать. Может есть решение с ипользованием нескольких join, но чтобы не было OR (в производительности проседает очень сильно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 13:48 |
|
||
|
Замена JOIN OR на аналог
|
|||
|---|---|---|---|
|
#18+
Скорее даже такой запрос, чтобы было понятно, что загвоздка в том, что данные кроме joina будут использоваться в другихместах Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 14:00 |
|
||
|
Замена JOIN OR на аналог
|
|||
|---|---|---|---|
|
#18+
execa, Сделайте два соединения с table_join по своим условиям, оберните в подзапрос и используйте дальше как угодно. Правда еще тот изврат, с OR хоть читабельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2016, 20:46 |
|
||
|
Замена JOIN OR на аналог
|
|||
|---|---|---|---|
|
#18+
Alexander Titkin, да, спасибо. Другого варианта как сделать два подзапроса по условиям и склеить их через union all, я не нашел. Если есть or в условии, то планер не использует индексы, а в подзапросах использует, выигрыш получается колоссальный - в десятки раз. Самое интересное, что по тестам, даже если выбирать почти все данные из таблиц (индекс бесполезен), то такой вариант все равно выигрывает в скорости, думаю за счет того, что я выдернул и отдал только параметры нужные в других местах, а это быстрее, чем склеивать целые таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2016, 14:29 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=1996791]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 246ms |

| 0 / 0 |
