Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Виснет запрос. [D7, IB6.x, MSSQL]


keymaster ©   (2006-03-01 11:36:00) 

Задача - две таблицы, связанные поля.
Выбрать несовпадающие.

Запрос такой:
SELECT  TB1.ID, TB.F1, TB1.F2, TB1.F3
FROM  TB1
INNER JOIN TB2 ON TB1.ID <> TB2.ID

Результат: запрос что-то из базы тащит,
но выполняется бесконечно.

Проблема одинакова и в IB и в MSSQL

Чем лечить?


evvcom   (2006-03-02 09:39:00) [1]

Телепаты, блин :)


ANB   (2006-03-01 17:53:00) [2]

not exists. И проверить наличие индексов по полям связи.


Кщд   (2006-03-01 14:18:00) [3]


> только тогда уж не INNER, а FULL OUTER JOIN


конечно FULL :)


stone   (2006-03-01 14:14:00) [4]


> INNER JOIN TB2 ON TB1.ID = TB2.ID

только тогда уж не INNER, а FULL OUTER JOIN


Johnmen   (2006-03-01 14:14:00) [5]

>Кщд ©   (01.03.06 14:09) [8]

И что будет? Холодное пиво? :)))


Кщд   (2006-03-01 14:09:00) [6]

FROM  TB1
INNER JOIN TB2 ON TB1.ID = TB2.ID
where
 TB1.ID is null
or
 TB2.ID is null


Ega23   (2006-03-01 13:50:00) [7]

(Количество записей в первой таблице) в степени (количество записей в другой таблице) минус (Количество записей в первой таблице) уножить на (количество записей в другой таблице)

Вроде так...


Ega23   (2006-03-01 13:50:00) [8]

Это я про результат запроса


Vlad   (2006-03-01 13:34:00) [9]


> keymaster ©   (01.03.06 11:36)  


что-то я не понял смысл твоего запроса...
Выбрать записи из одной таблицы, которых нету в другой - это я понимаю.
Но ты делаешь join, т.е. фактически, перемножаешь записи из одной и другой таблицы. Результат, естественно будет огромным. А смысл что-то не очень ясен.


> Тестировалось на 10 записях

а во второй таблице сколько?


Johnmen   (2006-03-01 13:30:00) [10]

Тогда "Не верю" (с)


keymaster   (2006-03-01 13:06:00) [11]

Тестировалось на 10 записях


Johnmen   (2006-03-01 11:51:00) [12]

Выполняется не бесконечно, а очень долго. Записей многовато....


keymaster   (2006-03-01 11:49:00) [13]

В селекте опечатка, правильно:
SELECT  TB1.ID, TB2.F1, TB1.F2, TB1.F3


Наверх

Титульная страница Поиск, карта сайта Написать письмо