оптимизация
Добавлено: 02 апр 2010, 15:21
Добрый день!
При выполнении select-а
такой план
Как-то не нравится время 343мс. Можно ли как-нибудь улучшить?
(в sc, scf, p4 по 8-10 тыс записей, в р6 по-меньше.
При выполнении select-а
Код: Выделить всё
select count(*) from
sс inner join scf on sc.id=scf.sc_id
inner join p4 on sc.id=p4.sc_id
inner join p6 on sc.id=p6.sc_id
where sc_id!=-1 and sc.mode in (0,1,4) and (cg = 513 or cg = 514 or cg = 714) and (pe = 3 or pe = 4 ) and ((( scf.re=1 or scf.re=2) and ( scf.fr=2 or scf.fr=3 or scf.fr=4
or scf.fr=5 ) and ((( p6.tm=1) and ( p6.km=12 or p6.km=5 or p6.km=2 or p6.km=1 or p6.km or p6.km=3 or p6.km=6 or p6.km=9 or p6.km=7 or p6.km=8 ) ))
and (( scf.re=1 or scf.re=2) and ( scf.fr=2 or scf.fr=3 or scf.fr=4 or scf.fr=5 ) )) or (( scf.re=1 or scf.re=2) and scf.BASE_FREE_M_MEA=0 and p6.tm=1 and p6.km=13))
and (p4.ta=1 and p4.ar=11102)
Код: Выделить всё
Plan
PLAN JOIN (SCF NATURAL,SC INDEX (RDB$PRIMARY51),P6 INDEX (FK_P6_SC),P4 INDEX (FK_P4_SC))
Adapted Plan
PLAN JOIN (SCF NATURAL,SC INDEX (PK_SC),P6 INDEX (FK_P6_SC),P4 INDEX (FK_P4_SC))
------ Performance info ------
Prepare time = 63ms
Execute time = 343ms
Avg fetch time = 343,00 ms
Current memory = 1 143 544
(в sc, scf, p4 по 8-10 тыс записей, в р6 по-меньше.