powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / фока и виндоус 7
12 сообщений из 12, страница 1 из 1
фока и виндоус 7
    #36796942
Agasi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здраствуйте, ест прога написано xp, на xp расшет длится около 10 минут но на win7 это займет 23 часа, кто нибуд можете помоч
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36796996
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так покажите нам алгоритм.

в фокспро есть профайлер

в коммандном окне наберите и прочтите:
help Coverage Profiler Log File

проанализируйте, что происходит и какие команды
долго выполняются.

ждемс.
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797013
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Agasiздраствуйте, ест прога написано xp, на xp расшет длится около 10 минут но на win7 это займет 23 часа, кто нибуд можете помочУ меня все заработало после того, как
1) установил win7 ULTIMATE;
2) оформление перенастроил на классическое.
Если это не поможет, то включи пошаговую отладку и смотри, в каких местах тормоза.
И вообще, может быть сама винда глючная, или комп, или антивирус. И зачем к "семерке" все лепим, если на XP все работало...
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797063
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorbikИ зачем к "семерке" все лепим, если на XP все работало...

попробую вмешаться,
а что, на новую купленную станцию
с ОЗУ более 3-х ГБт нужно ставить харэ?

7-ка нормальная удобная ось, почему-бы с ней не работать?
(гы, для себя открыл, что оказывается вынь7*64неогран - сервер, - акронис, мать его...)
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797446
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимоа что, на новую купленную станцию
с ОЗУ более 3-х ГБт нужно ставить харэ?
7-ка нормальная удобная ось, почему-бы с ней не работать?
Если бы не 23 часа на 1 запрос....
Тут от ситуации надо смотреть.
Если тормоза не ищутся, то
1) попробовать на другом компе с W7 Ultimate и сделать выводы
2) если не тянет и там, а ситуация напряженная, то поставить ХР или 2003 сервер и работать. Тормоза параллельно искать, напрмер, на другом компе с W7
3) если нет напряга, то искать тормоза на этом компе.
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797631
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorbikпрошелмимоа что, на новую купленную станцию
с ОЗУ более 3-х ГБт нужно ставить харэ?
7-ка нормальная удобная ось, почему-бы с ней не работать?
Если бы не 23 часа на 1 запрос....
Тут от ситуации надо смотреть.
Если тормоза не ищутся, то
1) попробовать на другом компе с W7 Ultimate и сделать выводы
2) если не тянет и там, а ситуация напряженная, то поставить ХР или 2003 сервер и работать. Тормоза параллельно искать, напрмер, на другом компе с W7
3) если нет напряга, то искать тормоза на этом компе.

не нужно ничего придумывать,
просто посмотреть лог.

кроме этого пусть нам покажет автор что там вообще в коде.
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797645
Agasi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот код

SET TALK OFF
SELECT gorcakic
DELETE ALL
PACK
t=ALLTRIM(thisform.text5.Value)
SELECT ABONENT
SET ORDER TO abonhamar
SCAN
kod = ABONENT.ABONHAMAR
kk=kod
thisform.text6.Value =kod
SELECT abonkod
k2=0
LOCATE for abonkod.abonhamar=kk.and.abonkod.tari>=t
ff=abonkod.tari
r=RECNO([abonkod])
DO WHILE abonkod.abonhamar=kod
k2=0
qq1=0
xm=abonkod.hunvar
SUM(abonkod.hunvar) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.tari>=t.and.hunvar>0 TO q
COUNT ALL for abonhamar=kk.and.tari>=t TO qq
qq1=r+(qq-1)
xhunvar=s/q
FOR m=r TO qq1
GO RECORD m
xm=abonkod.hunvar
IF xm>0 then
k1=(xm-xhunvar)*(xm-xhunvar)
k2=k2+k1
ENDIF
ENDFOR
IF xhunvar>0 then
khunvar=SQRT(k2/q)/xhunvar
ELSE
khunvar=0
ENDIF
SUM(abonkod.petrvar) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.petrvar>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xpetrvar=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.petrvar
IF xm>0 then
k1=(xm-xpetrvar)*(xm-xpetrvar)
k2=k2+k1
ENDIF
ENDFOR
IF xpetrvar>0 then
kpetrvar=SQRT(k2/q)/xpetrvar
ELSE
kpetrvar=0
ENDIF
SUM(abonkod.mart) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.mart>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xmart=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.mart
IF xm>0 then
k1=(xm-xmart)*(xm-xmart)
k2=k2+k1
ENDIF
ENDFOR
IF xmart>0 then
kmart=SQRT(k2/q)/xmart
ELSE
kmart=0
ENDIF
SUM(abonkod.april) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.april>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xapril=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.april
IF xm>0 then
k1=(xm-xapril)*(xm-xapril)
k2=k2+k1
ENDIF
ENDFOR
IF xapril>0 then
kapril=SQRT(k2/q)/xapril
ELSE
kapril=0
ENDIF
SUM(abonkod.mayis) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.mayis>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xmayis=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.mayis
IF xm>0 then
k1=(xm-xmayis)*(xm-xmayis)
k2=k2+k1
ENDIF
ENDFOR
IF xmayis>0 then
kmayis=SQRT(k2/q)/xmayis
ELSE
kmayis=0
ENDIF
SUM(abonkod.hunis) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.hunis>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xhunis=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.hunis
IF xm>0 then
k1=(xm-xhunis)*(xm-xhunis)
k2=k2+k1
ENDIF
ENDFOR
IF xhunis>0 then
khunis=SQRT(k2/q)/xhunis
ELSE
khunis=0
ENDIF
SUM(abonkod.hulis) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.hulis>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xhulis=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.hulis
IF xm>0 then
k1=(xm-xhulis)*(xm-xhulis)
k2=k2+k1
ENDIF
ENDFOR
IF xhulis>0 then
khulis=SQRT(k2/q)/xhulis
ELSE
khulis=0
ENDIF
SUM(abonkod.ogostos) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.ogostos>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xogostos=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.ogostos
IF xm>0 then
k1=(xm-xogostos)*(xm-xogostos)
k2=k2+k1
ENDIF
ENDFOR
IF xogostos>0 then
kogostos=SQRT(k2/q)/xogostos
ELSE
kogostos=0
ENDIF
SUM(abonkod.september) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.september>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xseptember=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.september
IF xm>0 then
k1=(xm-xseptember)*(xm-xseptember)
k2=k2+k1
ENDIF
ENDFOR
IF xseptember>0 then
kseptember=SQRT(k2/q)/xseptember
ELSE
kseptember=0
ENDIF
SUM(abonkod.hoktember) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.hoktember>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xhoktember=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.hoktember
IF xm>0 then
k1=(xm-xhoktember)*(xm-xhoktember)
k2=k2+k1
ENDIF
ENDFOR
IF xhoktember>0 then
khoktember=SQRT(k2/q)/xhoktember
ELSE
khoktember=0
ENDIF
SUM(abonkod.noyember) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.noyember>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xnoyember=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.noyember
IF xm>0 then
k1=(xm-xnoyember)*(xm-xnoyember)
k2=k2+k1
ENDIF
ENDFOR
IF xnoyember>0 then
knoyember=SQRT(k2/q)/xnoyember
ELSE
knoyember=0
ENDIF
SUM(abonkod.dektember) for abonkod.abonhamar=kk.and.abonkod.tari>=t to s
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t.and.dektember>0 TO q
COUNT ALL for abonhamar=kk.and.abonkod.tari>=t TO qq
qq1=r+(qq-1)
xdektember=s/q
k2=0
FOR m=r TO qq1
GO RECORD m
xm=abonkod.dektember
IF xm>0 then
k1=(xm-xdektember)*(xm-xdektember)
k2=k2+k1
ENDIF
ENDFOR
IF xdektember>0 then
kdektember=SQRT(k2/q)/xdektember
ELSE
kdektember=0
ENDIF
EXIT
ENDDO
*ENDIF

IF abonkod.abonhamar=kk.and.abonkod.tari>=t THEN
SELECT gorcakic
APPEND BLANK
REPLACE tari WITH t
GO BOTTOM
REPLACE abonhamar WITH kod
REPLACE hunvar WITH khunvar
REPLACE petrvar WITH kpetrvar
REPLACE mart WITH kmart
REPLACE april WITH kapril
REPLACE mayis WITH kmayis
REPLACE hunis WITH khunis
REPLACE hulis WITH khulis
REPLACE ogostos WITH kogostos
REPLACE september WITH kseptember
REPLACE hoktember WITH khoktember
REPLACE noyember WITH knoyember
REPLACE dektember WITH kdektember
ENDIF
ENDSCAN
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797707
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Agasiвот код


версия фокспро?
нужно по-человечьи запросы писать
аля :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Select 
     ....
     sum()
     sum()
  into curs gorcakic 
  from ABONENT a
          left join abonkod b .....
  ....

само собой с проверкой оптим-ти оных


пока, чтобы было меньше трудозатрат
пробуйте оптимизировать то что есть
частично заменяя куски
с проверкой оптим-ти выполнения

в вашем коде много скачек, пробуйте


авторDo While abonkod.abonhamar=kod

вот это совсем жесть, не понятно зачем.

танцы аля:
Код: plaintext
1.
2.
3.
Sum(abonkod.hunvar) For abonkod.abonhamar=kk.And.abonkod.tari>=T To s
Count All For abonhamar=kk.And.tari>=T.And.hunvar> 0  To q
Count All For abonhamar=kk.And.tari>=T To qq

можно переписать на один селект с сумимированием и подсчетом кол-ва
для оптим-и создать на таблицы нужные индексы - на все поля, которые есть в усл-ях огр-я
и бинарные на уд-е записи.

ну и жесть поубирайте
автор
Append Blank
Replace tari With T
Go Bottom

Go Bottom - это суперкостыль?

вместо аппенда и реплейса
в фокспро есть команда скл- инсерт
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797715
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кроме этого анализируйте лог, полученный Coverage Profiler

наверное проще там понять чем Ваш код занимается сутки
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797744
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DO WHILE abonkod.abonhamar=kod
....
enddo


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

еще лучше одновременно с отбором и посчитать что-то, сгруппировать и т.д.

автор, Вы обладаете знаниями по поводу написания скл-запросов и
оптимизации этих запросов?
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36797751
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ вот это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
For m=r To qq1
   Go Record m
   xm=abonkod.mart
   If xm> 0  Then
	k1=(xm-xmart)*(xm-xmart)
	k2=k2+k1
  Endif
Endfor

ну хз как оно работает и что это такое
...
Рейтинг: 0 / 0
фока и виндоус 7
    #36798900
Agasi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спосибо всем дело било в msvcx71.dll, ставил его в папку и все ок, я навичок и не обладаю много знаниями
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / фока и виндоус 7
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]