powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / В чем может быть причина задержки?
6 сообщений из 6, страница 1 из 1
В чем может быть причина задержки?
    #32121055
NightSpider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть выборка
insert into temp (ID,megalloido) select min(id),megalloido from itog group by megalloido
работет примерно 1 сек
Еще одна
delete from itog where id not in (1,37,2347)
тоже бытро
А !!!!!!!

delete from itog where id not in (select id from temp)
Ну, очень долго. Жду минут 5, потом обрываю задачу.
В зе всего 57677 записей
...
Рейтинг: 0 / 0
В чем может быть причина задержки?
    #32123955
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подчиненные запросы вообще медленно в аксессе работают,
кроме того запускаются столько раз сколько вызываются ..

в твоем случае 57677 раз
попробуй вместо подчиненного запроса формировать программно список значений перед запуском запроса на удаление.
...
Рейтинг: 0 / 0
В чем может быть причина задержки?
    #32124131
NightSpider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо. Ты мне многое объяснил. Я то думал, что как в дельфи один раз.
...
Рейтинг: 0 / 0
В чем может быть причина задержки?
    #32124915
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с конструкцией "not in(select ...)" оно завсегда так. попробуй left/right join .... where [поле связи] is Null; для объединения набор вложенного запроса придется сохранить (как вью).
...
Рейтинг: 0 / 0
В чем может быть причина задержки?
    #32125011
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно всегда? Тогда сколько раз будет напечатано "test" в этом случае (при количестве записей в t1 равном N) и как это можно объяснить?:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Option Compare Database
Option Explicit

Public Function f(v As Long) As Boolean
 Debug.Print  "test" 
 f = True
End Function

DELETE t1.* FROM t1
WHERE t1.testfield Not In (select testfield from t2 where f( 1 ) = true)
...
Рейтинг: 0 / 0
В чем может быть причина задержки?
    #32125014
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос снимается, я стормозил, все не так просто. :)

Автору исходного вопроса можно еще посоветовать проиндексировать (если это еще не сделано) itog и temp по id, это должно ускорить выполнение запроса.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / В чем может быть причина задержки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]