Текущий архив: 2004.05.30;
Скачать: CL | DM;
ВнизКакие индексы создать ?? Найти похожие ветки
← →
Nazer (2004-05-11 14:49) [0]Подскажите плиз, как ускорить запрос
в таблице 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
может посоветуете по другому написать запрос ?
← →
Соловьев © (2004-05-11 14:56) [1]попробуй ХП
← →
Nazer (2004-05-11 15:05) [2]что такое ХП ?
← →
Соловьев © (2004-05-11 15:11) [3]http://www.codenet.ru/db/ibsql/CREATE_PROCEDURE.php
← →
Johnmen © (2004-05-11 15:28) [4]Возможно так быстрее
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:34) [5]
> может посоветуете по другому написать запрос ?
А условия-то какие? Или нам reverce-enginiring делать из твоего запроса?
← →
Nazer (2004-05-11 16:43) [6]>>Johnmen © (11.05.04 15:28) [4]
Здорово !
15ms напротив 1235ms - благодарю!
← →
Nazer (2004-05-11 16:52) [7]при таком запросе IBExpert сообщает:
Plan
PLAN SORT (JOIN (CAT_2 NATURAL,CAT INDEX (RDB$PRIMARY18)))
Adapted Plan
PLAN SORT (JOIN (CAT_2 NATURAL,CAT INDEX (PK_CAT)))
какой индекс надо создать для ускорения работы запроса ?
← →
Johnmen © (2004-05-11 17:21) [8]Ну разве что Foreign Key на idc из cat_2, ссылающийся на Primary Key id из cat. Если его еще нет...:)
(Индекс создастся автоматически...)
Страницы: 1 вся ветка
Текущий архив: 2004.05.30;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.041 c