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

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

Помогите составить правильный SQL запрос. [D6, IB6.x, FireBird]


galexis ©   (2003-04-24 16:29:00) 

Имеется таблица, в которой большинство данных ID на другие таблицы и справочники. Пишу запрос:
SELECT DISTINCT A.Fld1,B.NAME,F.NAME as NAME2
FROM Table1 A
LEFT JOIN Table2 B ON B.ID1=A.ID1
LEFT JOIN Table3 F ON F.ID2=A.ID2
Where (B.Name LIKE ""%"" || "+""""+Name.Text+""""+" || ""%"")
Все работает отлично.
Но если я добавляю связь с еще одной таблицей:
SELECT DISTINCT A.Fld1,B.NAME,F.NAME as NAME2,G.NAME as NAME3
FROM Table1 A
LEFT JOIN Table2 B ON B.ID1=A.ID1
LEFT JOIN Table3 F ON F.ID2=A.ID2
LEFT JOIN Table4 G ON G.ID3=A.ID3
Where (B.Name LIKE ""%"" || "+""""+Name.Text+""""+" || ""%"")

Тогда запрос выполняется очень долго. Где здесь ошибка?


kravchuk   (2003-04-24 18:09:00) [1]

galexis ©
IBExpert самая лучшая (имхо) утилита для работы с ИБ, просто супер прога, для хUSSR на шару
http://www.ibexpert.com/download/ibet_2.5.0.22_full.exe


galexis   (2003-04-24 18:01:00) [2]

kravchuk ©
А что это за IBExpert? Где его взять?


kravchuk   (2003-04-24 17:40:00) [3]

план запроса рекомендую смотреть в IBExpert, так красиво все графически, понятно и наглядно, я всегда в нем оптимизировал запросы


Johnmen   (2003-04-24 17:05:00) [4]

galexis © (24.04.03 16:49)

План запроса - см. закладку в интерактивном SQL из IBConsole

>Может поменять местами связывание каких либо таблиц?

Поменяй, посмотри...:) Никто же не мешает...


NAlexey   (2003-04-24 17:00:00) [5]

>Что значит "Смотри план запроса" ,где то можно посмотреть как выполнялся запрос?
Э-э-э...М-м-м.. Точно! Я не знаю какая у тебя DB. В MSSQL план запроса можно посмотреть в Query Analyzer. Выявить так сказать слабые места и узнать какое именно место из запроса отнимает больше всего времени и ресурсов.


galexis   (2003-04-24 16:49:00) [6]

>NAlexey ©
Что значит "Смотри план запроса" ,где то можно посмотреть как выполнялся запрос?

>Johnmen ©
Записей в Table4 всего около 2000. Вот в Table2 порядка 40 000. Имеет ли значение в каком порядке написаны JOIN? Может поменять местами связывание каких либо таблиц?


Johnmen   (2003-04-24 16:37:00) [7]

Что ты называешь ошибкой ?
А выполняется долго из-за большого количества записей в Table4.


NAlexey   (2003-04-24 16:33:00) [8]

Смотри план запроса и оптимизируй.


Наверх

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