select basedoc.nodoc,basedoc.ddoc
from basedoc,stepdoc,katsopr,katpodr,pick,ttndoc,marpunkt,katnotes
where
((
basedoc.nrec /== stepdoc.cbasedoc
and stepdoc.nrec /== katsopr.cstepdoc
and katsopr.cpodrfrom == katpodr.nrec
and word(11) == pick.wlist
and katpodr.nrec == pick.crec
and 201 == katsopr.vidsopr
and katsopr.nrec /== ttndoc.cdoc
and cokatsopr == ttndoc.wtable
and ttndoc.cpunktr == marpunkt.nrec
and basedoc.cnote /== katnotes.nrec
and (2 = katnotes.status)
))
;
необходимо ограничить выборку по
DocDateFrom <= TTNDOC.DPUNPBEG
and DocDateTo >= TTNDOC.DPUNPBEG
select basedoc.nodoc,basedoc.ddoc
from basedoc,stepdoc,katsopr,katpodr,pick,ttndoc,marpunkt,katnotes
where
((
basedoc.nrec /== stepdoc.cbasedoc
and stepdoc.nrec /== katsopr.cstepdoc
and katsopr.cpodrfrom == katpodr.nrec
and word(11) == pick.wlist
and katpodr.nrec == pick.crec
and 201 == katsopr.vidsopr
and katsopr.nrec /== ttndoc.cdoc
and cokatsopr == ttndoc.wtable
and ttndoc.cpunktr == marpunkt.nrec
and basedoc.cnote /== katnotes.nrec
and (2 = katnotes.status)
))
and date(01,01,2009)<= TTNDOC.DPUNPBEG
and date(01,02,2009) >= TTNDOC.DPUNPBEG
;
запустил у себя .. отработал без проблем .. ... попробуйте поставить все патчи и на uгалтику и на саппорт... проверте версию vip
весь вопрос в кол-ве.
((
and word(11) == pick.wlist
and pick.crec == katpodr.nrec
and pick.crec == katsopr.cpodrfrom(noindex)
and 201 == katsopr.vidsopr
and katsopr.cstepdoc == stepdoc.nrec
and stepdoc.cbasedoc ==basedoc.nrec
and katsopr.nrec /== ttndoc.cdoc
and cokatsopr == ttndoc.wtable
and date(01,01,2009)<<= TTNDOC.DPUNPBEG (noindex)
and date(01,02,2009) >>= TTNDOC.DPUNPBEG(noindex)
and ttndoc.cpunktr == marpunkt.nrec
and basedoc.cnote /== katnotes.nrec
and (2 = katnotes.status) // - в basedoc вроде есть свое поле - лучше по нему.
))
;
вообще такие условия ниже 3 уровня лучше не спускать
в идеале надо фильтровать по датам по табле 1 уровня - в данном случае по katsopr. Ну хотя бы помочь - явно доставка не может намного отставать от даты отгрузки в накладной.
))
and date(01,01,2009)<= TTNDOC.DPUNPBEG
and date(01,02,2009) >= TTNDOC.DPUNPBEG
там же все равно без индекса?? и кто муже кто знает как интерпретатор переводит этот запрос очень может быть что все условия noindex обрабатываются последними ???
мой опыт показывает, что разница есть. Когада имеешь под рукой базюку в 60 гигов на дохлом сервере приходится подкручивать каждую запятую. Да и вроде обсуждалось уже на форуме. У меня ощущение, что когда внизу пишешь, то данные все топают на локал, а потом уже фильтруются, а когда с noindex они все таки фильтруются на сервере. Да и дело не в этом главное - надо поднять фильтруемую таблу хотя бы на 2 уровень, а таблу на 1 существенно ограничить - тогда и на больших объемах будет работать.