я немного вопроса о выполнении подзапроса/присоединении другой таблицыПроизводительность: подзапросы или присоединение
INSERT
INTO Original.Person
(
PID, Name, Surname, SID
)
(
SELECT ma.PID_new , TBL.Name , ma.Surname, TBL.SID
FROM Copy.Person TBL , original.MATabelle MA
WHERE TBL.PID = p_PID_old
AND TBL.PID = MA.PID_old
);
Это мой SQL, теперь эта вещь работает около 1 миллиона или более раз. Мой вопрос в том, что было бы быстрее?
- Если изменить
TBL.SID
к (Select new from helptable where old = tbl.sid
)
ИЛИ
- Если я добавляю 'HelpTable' в
from
и сделать вступление вwhere
?
edit1
Ну, этот скрипт работает только столько, сколько там г лиц.
В моей программе есть 2 модуля, которые заполняют MaTabelle
и передают данные. Эта программа объединяет 2 базы данных вместе и, следовательно, используется один и тот же ключ.
Теперь я работаю над решением, в котором нет дублирующих ключей.
Мое решение состоит в том, чтобы сделать «HelpTable». Владелец ключа (SID
) генерирует новый ключ и записывает его в «HelpTable». Все остальные таблицы, которые используют этот ключ, могут читать его из «HelpTable».
edit2
Только что-то в моей голове:
если таблица как ключ, который может быть нулевым (ForeignKey, что не связано) то это не будет работать с с или?
Хорошо, чтобы обеспечить мою схему db, невозможно залить его круглыми 100 столами или более, и его трудно понять. Теперь я посмотрю, что я буду делать. – domiSchenk
Нам не нужна вся ваша схема, только таблицы, указанные в запросе. –
Хорошо, используя теперь подзапрос, его проще сделать thx для вашей помощи. – domiSchenk