ЗАПРОС:
Код: Выделить всё
select
t."Wdate",t."Trata_id",kf."Name",kt."Name",
ts."Sum1",v."ValName",ts."Subd",ts."Subk",
c."InOut",c."Name",t."DocNum",t."DocDate",
ts."Remark",t."Remark",eql."Name",eql."Model",t."Sum1",
(select summa from getsummaval(ts."Val_id1",ts."Sum1",2,t."Wdate")),
ts."Kol"
from trataspec ts
join trata t on (t."Trata_id"=ts."Trata_id")
left outer join classif c on t."Classif_id"=c."Classif_id"
left outer join equplist eql on ts."Equpment_id" =eql."Equpment_id"
left outer join pipl kt on (t."KorrToId"=kt."Pipl_id")
left outer join pipl kf on (t."KorrFromId"=kf."Pipl_id")
left outer join val v on(ts."Val_id1"=v."Val_id")
where (ts."Subd"=:Sub or ts."Subk"=:sub) and
((ts."Subk"=:Sub and (t."KorrFromId"=:Pipl_id or :pipl_id =0))
or (ts."Subd"=:Sub and (t."KorrToId"=:Pipl_id or :Pipl_id =0)))
and (eql."Equpment_id"=:Equpment_id or :Equpment_id =0)
and (t."Order_id"=:order_id or :order_id =0)
and t."Wdate">=:dt1 and t."Wdate"<=:dt2
order by 1,2
PLAN (VK ORDER VALKURS_IDDATE)(KV INDEX (VALKURS_IDVAL))(VK ORDER VALKURS_IDDATE)(KV INDEX (VALKURS_IDVAL))
PLAN SORT (JOIN (JOIN (JOIN (JOIN (JOIN (JOIN (TS INDEX (TRATASPEC_Subd,TRATASPEC_Subk),T INDEX (PK_TRATA)),C INDEX (PK_CLASSIF)),EQL INDEX (PK_EQUPLIST)),KT INDEX (PK_PIPL)),KF INDEX (PK_PIPL)),V INDEX (PK_VAL)))
план после restore
PLAN (VK ORDER VALKURS_IDDATE)(KV INDEX (VALKURS_IDVAL))(VK ORDER VALKURS_IDDATE)(KV INDEX (VALKURS_IDVAL))
PLAN SORT (JOIN (JOIN (JOIN (JOIN (JOIN (JOIN (T INDEX (TRATA_IDX1),TS INDEX (FK_TRATASPECHID,TRATASPEC_Subk,TRATASPEC_Subd,TRATASPEC_Subd,TRATASPEC_Subk)),C INDEX (PK_CLASSIF)),EQL INDEX (PK_EQUPLIST)),KT INDEX (PK_PIPL)),KF INDEX (PK_PIPL)),V INDEX (PK_VAL)))
причем удалял индех TRATA_IDX1, он пишет NATURAL, как-будто PK_TRATA вообще не видит
[Модератор: пост отформатирован]