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

Скорость запроса в интерфейсе

Добавлено: 15 окт 2008, 15:12
sim
Запрос в Support выполняется 2 секунды, а при запуске интерфейса очень долго.
Может кто подскажет - почему?

select
p.tabnmb,p.fio,f.tabn
from otpusk o,factotpusk f, persons p
where ((
o.cfactotpusk==f.nrec and (f.tabn<10000)
and f.person==p.nrec
))
And year(datan)=2008 and month(datan)=6 and f.tabn<>p.tabnmb
;

Interface TestHol 'Тестирование отпусков' EscClose,Gray;
Show At (,,50,25);
Create view
var
YearI :Integer;
MonthI :Integer;
select
p.tabnmb,p.fio,f.tabn
from otpusk o,factotpusk f, persons p
where ((
o.cfactotpusk==f.nrec and (f.tabn<10000)
and f.person==p.nrec
))
condition cAll = (year(datan)=YearI and month(datan)=MonthI and f.tabn<>p.tabnmb)
;
panel Ot
table o
Browse B2 'Разные табельные';
show at(,,,16);
Fields
Tabnmb 'Таб № ' : [10], Protect ;
Fio ' Ф И О ' : [30], Protect ;
Tabn 'Таб № *** ' : [10], Protect ;
End;
end;
//-----------------------------------------------
HANDLEEVENT
cmInit: {
YearI:=integer(Year(Cur_Date)); MonthI:=Month(Cur_Date);
If Rundialog('TestHolD',monthI,yeari) = cmok pushcondition(tccall);
else CloseInterFace(cmDefault); }
cmcancel:
{ CloseInterFace(cmDefault); }
end; //HANDLEEVENT
end.
//-----------------------------------------------
TestHolD DIALOG
fields
IMonth :Integer[2];
IYear :integer [5];
Buttons
cmOk,default;
cmCancel;
<<

Месяц: .@@ Год: .@@@@@

<. ~В~вод .> <.~О~тмена.>
>>
//----------------------------------------------------------------------------

Добавлено: 15 окт 2008, 23:43
edward_K
1.condition вообще медленно работают - лучше bounds подымать.
проиcходит несколько другое, чем через выполнение запроса в sql
2.зависает до диалога или после?
3.а так обязательно- and (f.tabn<10000), почему нельзя 10000>>o.tabn(noindex) ( если индекса нет)
3.к полям лучше не ленится и указывать таблы
4.по otpusk.datan вроде был индекс

Добавлено: 30 окт 2008, 10:18
sim
edward_K писал(а):1.condition вообще медленно работают - лучше bounds подымать.
Подняли. Стало получше
edward_K писал(а):2.зависает до диалога или после?
После
edward_K писал(а):3.а так обязательно- and (f.tabn<10000), почему нельзя 10000>>o.tabn(noindex) ( если индекса нет)
3.к полям лучше не ленится и указывать таблы
4.по otpusk.datan вроде был индекс
Тоже применили. Тоже помогло.
В-общем, спасибо!