Это не проблема, на которую нужно ответить, и больше вопрос о том, почему это происходит.JET SQL Performance/SQL Understanding
У меня есть поле в одной таблице, которая заполняется «Y» или «N», и у меня есть запрос, который просто принимает значение этого поля и всплывает в другую таблицу
Таблица имеет около 25000 записи в ней
запрос ниже занимает около 25 секунд, чтобы запустить
UPDATE ObjectivesApproved
INNER JOIN Approved
ON ObjectivesApproved.ID = Approved.ID
SET ObjectivesApproved.Football = [Approved].[Cri Football Related];
Удаление операции JOIN делает запрос еще дольше.
Если же я сделать ниже, вся операция занимает менее 5 секунд, даже если он выполняет 2 запросов
UPDATE ObjectivesApproved
INNER JOIN Approved
ON ObjectivesApproved.ID = Approved.ID
SET ObjectivesApproved.Football = 'Y'
WHERE (([Approved].[Cri Football Related]='Y'));
UPDATE Approved
INNER JOIN ObjectivesApproved
ON Approved.ID = ObjectivesApproved.ID
SET ObjectivesApproved.Football = 'N'
WHERE (([ObjectivesApproved].[Football] Is Null));
Я доволен своим обходного, даже если это немного безвкусный, но для дальнейшего понимания SQL, почему это может произойти?
Каковы ваши основные ключи и индексы на этих двух таблицах? – ktharsis
Первичные ключи - это столбцы идентификаторов в обеих таблицах. Нет индексов. – MrBliz
Сколько строк влияет на каждое из трех утверждений 'UPDATE'? – onedaywhen