Страница 1 из 1

Подцепки при фильтрации

Добавлено: 16 дек 2003, 09:59
GTHack
хочу сделать анализ продаж с фильтрацией по контрагентам, складам и товарам

нужные организации, склады и товары забиваются в соответствующие таблы памяти
(tkatorg, tkatmc, tkatpodr)

как в таком случае правильнее построить лог.таблицу, чтоб быстрее работала

select *
from
tkatpodr, tkatorg, tkatmc, katsopr, spsopr
where
((
word(201)==katsopr.vidsopr
and dat1<<=katsopr.dsopr
and dat2>>=katsopr.dsopr
and word(2)==katsopr.tipsopr (noindex)
and date(1,1,1900)<<=katsopr.dopr (noindex)
and katsopr.nrec == spsopr.csopr
and katsopr.cpodrfrom == tkatpodr.nrec
and katsopr.corg == tkatorg.nrec

and 1 == spsopr.prmc
and spsopr.cmcusl == tKatMc.nrec
));
и при обращениях контролировать на валидность подцепок .... либо :

либо использовать жестские подцепки ?
или вообще корневую не katsopr делать ?

в общем как правильнее делать чтоб быстрее работало?

Re: Подцепки при фильтрации

Добавлено: 16 дек 2003, 12:45
lada
Я бы сделала так:
((
tkatorg.nrec==katsopr.corg and
date(01,01,1900)<<=katsopr.dopr and
word(201)==katsopr.vidsopr(noindex) and
tkatpodr.nrec==katsopr.cpodrfrom(noindex) and
katsopr.nrec==spsopr.csopr and
1==spsopr.prmc and
tKatmc.nrec==spsopr.cmcusl
)) and
katsopr.dsopr>=dat1 and
katsopr.dsopr<=dat2
;


Практика показывает, что быстрее работает фильтр, чем сцепка по неиндексированному полю.
А зачем вообще katsopr.tipsopr? Он же для накладных на продажу (201)всегда 2 или нет?
Может быть быстрее будет вместо
tkatpodr.nrec==katsopr.cpodrfrom(noindex) поставить в конце
katsopr.cpodrfrom=tkatpodr.nrec. Это пробовать надо.

Re: Подцепки при фильтрации

Добавлено: 16 дек 2003, 13:35
GTHack
если так делать то корневой будет
tkatorg
т.е. потом когда по логич.таблице ходить то сначала
_loop tkatorg
_loop tkatpodr
потом
_loop katsopr
_loop tkatmc
_loop spsopr
не дольше ли это будет крутиться ?
да плюс к тому разве фильтр по не корневой таблице работать будет ? (корневая tkatorg а фильтр по katsopr)

к тому же сцепка идет по индексированому полю
индекс katsopr02 (vidsopr+dsopr)

на счет katsopr.tipsopr - согласен, убрано