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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
GTHack
Местный житель
Сообщения: 517
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск Новосибирск
Контактная информация:

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

Сообщение 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 делать ?

в общем как правильнее делать чтоб быстрее работало?
[url=http://blog.gtalex.ru]Блог GTAlex[/url]
lada
Посетитель
Сообщения: 44
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва ЗАО "Март-Консалтинг"

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

Сообщение 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. Это пробовать надо.
GTHack
Местный житель
Сообщения: 517
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск Новосибирск
Контактная информация:

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

Сообщение GTHack »

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

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

на счет katsopr.tipsopr - согласен, убрано
[url=http://blog.gtalex.ru]Блог GTAlex[/url]
Ответить