Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

Оптимизация запроса   Найти похожие ветки 

 
PaulSin ©   (2003-06-03 08:56) [0]

Есть две таблицы. Нужно выбрать записи к примеру из первой таблицы которых нет во второй таблице. Запрос Select a.a,a.b,a.c from a where a.a not in (select f from e) работает долго. Есть соображения по оптимизации ?
в подзапросе таблица меньшая по размеру(2,5 М), в первой части запроса таблица размером 6 М.


 
Dan   (2003-06-03 09:07) [1]

На какой СУБД пишешь ?


 
Dan   (2003-06-03 09:08) [2]

и какие индексы есть ?


 
paulsin ©   (2003-06-03 09:09) [3]

локалка dBaseIV


 
paulsin ©   (2003-06-03 09:10) [4]

По первой таблице по полю которое ищу во второй таблице


 
Dan   (2003-06-03 09:14) [5]

т.е. по а.а ? я не знаю движка dbase, но попробуй сделать индекс по e.f и переписать запрос так:
SELECT a.a, a.b, a.c
FROM a
WHERE NOT EXISTS(
SELECT *
FROM e
WHERE f=a.a)


 
stone ©   (2003-06-03 09:14) [6]

Это классичечкий пример:
Select * from a where not exists(select * from e where a.a = e.a)


 
paulsin ©   (2003-06-03 09:23) [7]

Великолепно !!!!!
> Dan (03.06.03 09:14)
> т.е. по а.а ? я не знаю движка dbase, но попробуй сделать
> индекс по e.f и переписать запрос так:
> SELECT a.a, a.b, a.c
> FROM a
> WHERE NOT EXISTS(
> SELECT *
> FROM e
> WHERE f=a.a)
>
>
> stone © (03.06.03 09:14)
> Это классичечкий пример:
> Select * from a where not exists(select * from e where a.a
> = e.a)



 
Johnmen ©   (2003-06-03 09:26) [8]

>stone © (03.06.03 09:14)

Ничего подобного. Классическая классика вот это :

SELECT ...
FROM a
LEFT JOIN b ON a.id=b.id
WHERE b.id IS NULL


 
Соловьев ©   (2003-06-03 09:27) [9]

А так?

select t1.*
from table1 t1
left join table2 t2 on t1.id=t2.id
where t2.id is NULL


 
Соловьев ©   (2003-06-03 09:28) [10]


> Johnmen © (03.06.03 09:26

:)


 
paulsin ©   (2003-06-03 09:37) [11]

Первый вариант лучше


 
PaulSin ©   (2003-06-03 09:40) [12]

Всем принимавшим участие в оптимизации ПАСИБО!!!!!



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
1-84421
next2
2003-06-09 17:24
2003.06.26
при создании новой компоненты ошибка...


14-84754
Def_E
2003-06-03 14:31
2003.06.26
Кому нужен был хороший бесплатный хостинг???


3-83950
first_aid
2003-06-04 08:56
2003.06.26
Как используя компоненты ADO создать базу данныз Access?


14-84630
Liso
2003-06-10 00:22
2003.06.26
zdrastwuj od padruga z polszy


3-84043
Z_man7777
2003-06-02 06:25
2003.06.26
Вопрос по полю типа Float в InterBase6.x