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

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

Какие индексы создать ?? [D7, IB6.x]


Nazer ©   (2004-05-11 14:49:00) 

Подскажите плиз, как ускорить запрос
в таблице cat_2 всего три поля
id, idc, idp  (id-уникальный номер,idc-тип товара(указывает на id  в таблице CAT), idp-ссылка на свойство в другой таблице)

этот запрос выполняется больше секунды(во всем виноват оператор in в первом selecte): select id,name from cat where id in (
select idc from cat_2
where idp in (1,23) group by idc having count(*) =2)

а нижеследующий меньше чем 1ms (в результирующей выборке всего две цифры integer)
select idc from cat_2
where idp in (1,23) group by idc having count(*) =2


может посоветуете по другому написать запрос ?


Johnmen   (2004-05-11 17:21:00) [1]

Ну разве что Foreign Key на idc из cat_2, ссылающийся на Primary Key id из cat. Если его еще нет...:)
(Индекс создастся автоматически...)


Nazer   (2004-05-11 16:52:00) [2]

при таком запросе IBExpert сообщает:
Plan
PLAN SORT (JOIN (CAT_2 NATURAL,CAT INDEX (RDB$PRIMARY18)))
Adapted Plan
PLAN SORT (JOIN (CAT_2 NATURAL,CAT INDEX (PK_CAT)))

какой индекс надо создать для ускорения работы запроса ?


Nazer   (2004-05-11 16:43:00) [3]

>>Johnmen ©   (11.05.04 15:28) [4]
Здорово !
15ms напротив 1235ms  - благодарю!


Курдль   (2004-05-11 15:34:00) [4]


> может посоветуете по другому написать запрос ?

А условия-то какие? Или нам reverce-enginiring делать из твоего запроса?


Johnmen   (2004-05-11 15:28:00) [5]

Возможно так быстрее
select cat.id,cat.name
from cat
join cat_2 on cat_2.idc=cat.id
where cat_2.idp in (1,23)
group by cat.id,cat.name
having count(*)=2


Соловьев   (2004-05-11 15:11:00) [6]

http://www.codenet.ru/db/ibsql/CREATE_PROCEDURE.php


Nazer   (2004-05-11 15:05:00) [7]

что такое ХП ?


Соловьев   (2004-05-11 14:56:00) [8]

попробуй ХП


Наверх

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