|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Симонов Денис, Чуть исправил, в exists вместо on поставил where. План: авторПлан PLAN (C INDEX (DEFECT_IDX1)) PLAN JOIN (B NATURAL, A INDEX (PK_MODUL)) Может как-то не через select? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:12 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Кстати, какие объёмы данных (сейчас и ожидаемые) ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:12 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
KreatorXXI, ошибся мальца. На план не смотри если не понимаешь скорость по сравнению с другими вариантами устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:16 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
KreatorXXI, тьфу. Этот запрос тоже не правильный. Короче либо вариант с DISTINCT либо изначальный EXISTS ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:18 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Симонов Денис> скорость по сравнению с другими вариантами устраивает? Так он и скорость щас оценить не может, если у него самая большая (в будущем) таблица пока пустая. Надо на количество фетчей смотреть, если он умеет. P.S. Нет никаких вариантов без DISTINCTа, равносильных первоначальному по результату - ни рабоче-крестьянских, ни дворянско-аристократических. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:32 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, есть, но я сомневаюсь что они будут лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:34 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Симонов Денис> есть ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:51 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
А, ты про всякие переборы вручную. Несерьёзно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:51 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Симонов ДенисГаджимурадов Рустам, есть, но я сомневаюсь что они будут лучшеCount(), HEAVING ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:53 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
HEAVING звучит замечательно, но это тот же дистинкт, только в профиль. И ничем не лучше. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 12:58 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамP.S. Нет никаких вариантов без DISTINCTа, равносильных первоначальному по результату - ни рабоче-крестьянских, ни дворянско-аристократических. Ну как нет? Попробуйте мне объяснить. Есть таблица modul, у каждой записи таблицы modul может быть до 30 дочерних записей в umass. У каждой записи umass может быть до 100 записей в defect. В modul записей почти миллион, в umass хорошо за два миллиона, в дефект пока чуть меньше ста тысяч. Мне нужны записи в modul, где есть дочерние записи в defect. Записи в таблице defect более-менее равномерно размазаны по umass. Т.е. по моей человеческой логике вероятность нарваться на запись в defect велика, и сканирование по umass большого числа записей не должно быть. Вот как мне получить результат? Вообще мне кажется и схема данных нормальная, и хотелка тоже нужная. Я вообще хотел ещё верхний уровень приклеить. Но пока нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:00 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, ну например Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:04 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
KreatorXXI, можно пойти от обратного - если записи в defect существуют только для modul через umass, то тебе надо лишь выбрать из defect единичные (DISTINCT) id_ums и по натуралу привязать к выборке сначала umass, а затем modul. Как-то так: Код: sql 1. 2. 3. 4. 5.
Попробуй, вдруг повезет! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:37 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
KreatorXXI> в дефект пока чуть меньше ста тысяч А будет сколько и когда? Сколько из modul должно выбраться в итоге (в процентах)? И какие есть (если есть) доп.фильтры по каждой из таблиц. Из того, что ты пока рассказал - оставь изначальный вариант. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:40 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Симонов Денис> group by b.id_mdl Я ж говорю, профиль Фаберже. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:41 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
KreatorXXIПланPLAN (C INDEX (DEFECT_IDX1)) PLAN JOIN (B NATURAL, A INDEX (PK_MODUL)) Может как-то не через select? При соотношении modul и umass 1:3 вполне нормальный вариант. Или всё же планируешь до 1:20 довести? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:41 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
rdb_dev> Iiigiaoe, aagoa iiaacao! :) Замечательный подход к разработке. Ламером был - ламером и помрёшь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:42 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
WildSery> При соотношении modul и umass 1:3 вполне нормальный вариант. > Или всё же планируешь до 1:20 довести? Там 1-30-100. Не вариант справа налево. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:43 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
rdb_devПопробуй, вдруг повезет! :)Хороший совет, собирать дистинкт по всей таблице с планируемым объёмом более 100 миллионов записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:43 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
KreatorXXIГаджимурадов РустамP.S. Нет никаких вариантов без DISTINCTа, равносильных первоначальному по результату - ни рабоче-крестьянских, ни дворянско-аристократических. Ну как нет? Попробуйте мне объяснить. Есть таблица modul, у каждой записи таблицы modul может быть до 30 дочерних записей в umass. У каждой записи umass может быть до 100 записей в defect. В modul записей почти миллион, в umass хорошо за два миллиона, в дефект пока чуть меньше ста тысяч. Мне нужны записи в modul, где есть дочерние записи в defect. Записи в таблице defect более-менее равномерно размазаны по umass. Т.е. по моей человеческой логике вероятность нарваться на запись в defect велика, и сканирование по umass большого числа записей не должно быть. Вот как мне получить результат? Вообще мне кажется и схема данных нормальная, и хотелка тоже нужная. Я вообще хотел ещё верхний уровень приклеить. Но пока нет. Ну так разверни джойн при помощи заклинаний +0 так, чтобы перебор начинался с дефектов. Но когда/если их таблица распухнет до безобразия, это встанет колом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:43 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамТам 1-30-100. Не вариант справа налево.Рустам, пусть автор ответит. Это максимально плохое соотношение. Но пока из его речи следует, что только таблица дефектов не наполнена, остальные, значит, в более-менее рабочем состоянии, и текущее соотношение 1:3 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:45 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
WildSery> и текущее соотношение 1:3 Гм... Ты предлагаешь переписывать запрос позже или что? P.S. Повторюсь в третий раз - надо танцевать от доп.фильтров. Наверняка они есть, не может быть регулярная выборка ляма записей мастера с мульти-лямами деталей без доп.фильтров. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 13:51 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамrdb_dev> Iiigiaoe, aagoa iiaacao! :) Замечательный подход к разработке. Ламером был - ламером и помрёшь. И это вещает человек, не знакомый с теорией множеств и откуда взялся JOIN в SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 14:00 |
|
Exists по двум или более таблицам
|
|||
---|---|---|---|
#18+
WildSeryrdb_devПопробуй, вдруг повезет! :)Хороший совет, собирать дистинкт по всей таблице с планируемым объёмом более 100 миллионов записей.Хочешь сказать, что DISTINCT не способен к отбору по индексу, в частности по FK к umass? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2017, 14:03 |
|
|
start [/forum/topic.php?fid=40&msg=39521862&tid=1561418]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 526ms |
0 / 0 |