Текущий архив: 2003.11.13;
Скачать: CL | DM;
ВнизdBase antifreeze Найти похожие ветки
← →
Hyboid (2003-10-20 19:04) [0]Привет, всем!
Исходные данные:
<Таблица 1> - dBase ~20Mb
<Таблица 2> - dBase ~3Mb
Запрос типа:
DELETE FROM <Имя таблицы 1> AS Table1
WHERE EXIST(
SELECT <Поле 1>
FROM <Имя таблицы 2> AS Table2
WHERE Table1.<Поле 1> = Table2.<Поле 1>
)
Работает достаточно долго. Использование CPU 100%.
И все такое.
1) Предполагаю, что лучше использовать цикл FOR (есть ли он),
меняя вложенность SELECT c DELETE, но не знаю как.
Документация по dBase нулевая.
2) Что делать с загрузкой CPU ?
3) Можно ли как нибудь оценить примерное время выполнение
запроса.
Заранее спасибо.
← →
Vlad (2003-10-20 19:10) [1]Индекс по полю Table2.<Поле 1> спасет.
Если нет, переделай запрос
DELETE FROM <Имя таблицы 1> AS Table1
WHERE (SELECT count(*)
FROM <Имя таблицы 2> AS Table2
WHERE Table1.<Поле 1> = Table2.<Поле 1>) > 0
Тоже необходим индекс.
Страницы: 1 вся ветка
Текущий архив: 2003.11.13;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.037 c