Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
V baze neskolko tablitsa , v kajdom tablitse bolshe 500 000 zapisey.Proqramma ochen dolqo rabotaet.Chasto ispolzuyu 'set filt to' Skorost vipolnenie proqrammi ot etovo mojet zavisit? Kak to mojno po druqomu? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 15:36 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
рой SQL-SELECT, представления локальные, индексы, и типа того ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 15:43 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
Posmotrite , kod pojalusta. Kak mojno optimizirovat etot kod chtobi skorost bilo bolshe? sql-om vrode bi ispolzuval. No, zdes napirmer kak sql ispolzuvat mesto set filt to neznayu: SET FILT TO n=nn1 repl UD4 with val(zer) all Ya sql moqu ispolzivat tolko dlya viborku, a kak tam 'repl' delat neznayu. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 17:06 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
*case TUR=4 *****...... CLOS DATA set talk off sele 5 use UD_NOMRE sele 4 use UD_FOND sele 8 use dren inde on n to i1 sele 9 ERASE A3.IDX use tur_4u inde on n to i2 say1=reccount() go top sele 3 ERASE i3.IDX use dren_ud inDE on n to i3 go top sele 8 set filt to ud4=0.and.ud3=0 copy to dren4 use dren4 REPL ALL CEM_A WITH A1+A2+A3+A4+A5+A6 REPL ALL CEM_B WITH B1+B2+B3+B4+B5+B6 SELECT dren4.N,dren4.L,SUM(dren4.CEM_A),SUM(dren4.CEM_B),dren4.UD4 ; FROM dren4 ; GROUP BY dren4.N; INTO TABLE TUR_4 USE TUR_4 SET FILTER TO SUM_CEM_A=0.or.SUM_CEM_B=0 copy to tur_4u GO top IF NOT EOF().AND. NOT BOF() cMessageTitle = 'drenT' nDialogType = 256 DO WHILE .t. sele 9 if eof() exit endif nn1=n skip sele 3 SET FILT TO n=nn1 repl UD4 with val(zer) all SELE 4 GO TOP loca for GEDISH=I ENDD SET FILT TO CLOS DATA use dren_ud udan4=say1 cMessageText2=ALLTRIM(str(udan4)) cMessageText3 = ' BILET UDDU' cMessageText4= cMessageText2+cMessageText3 nAnswer = MESSAGEBOX(cMessageText4, nDialogType, cMessageTitle) use ud_fond if ud_son=1 wait 'OYUN BASA CATDI' EXIT DO FORM1 ENDIF loca for gedish=i repl ud_say with udan4 FORM1.SHOW() ENDI FORM1.SHOW() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 17:11 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
авторSET FILT TO n=nn1 repl UD4 with val(zer) all нужен тег по полю n INDEX ON n TAG n тогда Код: plaintext 1. 2. ЗЫ если zer - не поле, то присвой сначала VAL переменной и ее пользуй в REPLACE'е - иначе ф-ция каждый раз пересчитываеца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 17:38 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
1. Komanda 'seek' tak toje rabotaet: SEEK N=NN1 ? yesli ya ne oshibayus, tak doljna bit: SEEK NN1 2. A Yesli po 2 pole nado iskat ,toqda kak, napirmer: seek n=nn1.and.ud4=0 toje budet rabotat? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 09:35 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
1. SEEK ищет по индексу, а без индекса LOCATE. 2. SET FILT TO n=nn1 и repl UD4 with val(zer) all => REPLACE UD4 WITH VAL(zer) FOR n=nn1 3. REPL ALL CEM_A WITH A1+A2+A3+A4+A5+A6 и REPL ALL CEM_B WITH B1+B2+B3+B4+B5+B6 => REPLACE ALL CEM_A WITH A1+A2+A3+A4+A5+A6, CEM_B WITH B1+B2+B3+B4+B5+B6 4. SET FILTER TO SUM_CEM_A=0.or.SUM_CEM_B=0 и copy to tur_4u => COPY TO tur_4u FOR SUM_CEM_A=0.or.SUM_CEM_B=0 5. Ну и еще по мелочи глянь сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2004, 10:08 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
Yeshyo ot chevo mojet zavisit skorost? Ya vsyo chto moq delal ,izmenil kod : no, vseravno proqramma ochen dolqo rabotaet. *case TUR=4 USE NERD REPL ALL CEM_A WITH A1+A2+A3+A4+A5+A6, CEM_B WITH B1+B2+B3+B4+B5+B6 SELECT NERD.N,NERD.L,SUM(NERD.CEM_A),SUM(NERD.CEM_B),NERD.UD4 ; FROM NERD ; where nerd.ud4=0.and.nerd.ud3=0; GROUP BY NERD.N; INTO TABLE TUR_4 USE TUR_4 COPY TO tur_4u FOR SUM_CEM_A=0.or.SUM_CEM_B=0 use tur_4u inde on n to i2 say1=reccount() IF NOT EOF().AND. NOT BOF() cMessageTitle = 'NERDT' nDialogType = 256 CLOS DATA set talk off sele 5 use UD_NOMRE sele 4 use UD_FOND sele 8 use NERD sele 9 use tur_4u go top sele 3 use NERD_ud go top DO WHILE .t. sele 9 if eof() exit endif nn1=n skip sele 3 go top REPLACE UD4 WITH zer1 FOR n=nn1.and.ud4=0 loca for GEDISH=I ENDD SET FILT TO CLOS DATA use nerd_ud count to udan4 for ud4=zer1 udan4=udan4/5 use ud_fond loca for gedish=i mebleg1=mebleg Repl ud_say with udan4,cixan_n with zer1 &&,ud_son with say1 say1=0 if udan4>0 cMessageText2=ALLTRIM(str(udan4)) cMessageText3 = ' WWWWWWWWW:' CMT1=STR(MEBLEG1) cMessageText4= cMessageText2+cMessageText3+CMT1 else cMessageText4='DDDDDD' ENDI nAnswer = MESSAGEBOX(cMessageText4, nDialogType, cMessageTitle) FORM1.SHOW() ENDI FORM1.SHOW() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2004, 10:29 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял твой код, то попробуй так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2004, 11:26 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
Pomoqite pojalusta, a to u menya ochen malo vremya ostalas.Kod yeshyo raz menyal. no skoroost vsye taki malo (chut bolshe chem ranshe) Vot seychas kod: *case TUR=4 &&sonvar set filt to USE NERD REPL ALL CEM_A WITH A1+A2+A3+A4+A5+A6, CEM_B WITH B1+B2+B3+B4+B5+B6 SELECT NERD.N,NERD.L,SUM(NERD.CEM_A),SUM(NERD.CEM_B),NERD.UD4_a,NERD.UD4_b,NERD.UD3 ; FROM NERD ; GROUP BY NERD.N; INTO TABLE TUR_4 USE TUR_4 COPY TO tur_4ua FOR SUM_CEM_A=0.and.ud4_a=0 use tur_4ua use tur_4 COPY TO tur_4ub FOR SUM_CEM_b=0.and.ud4_B=0 use tur_4ub use tur_4ua appe from tur_4ub inde on n to i2 udan4=0 udan4=reccount() IF NOT EOF().AND. NOT BOF() CLOS DATA set talk off sele 4 use UD_FOND sele 8 use NERD sele 9 use tur_4ua go top DO WHILE .t. sele 9 if eof() exit endif nn1=n s_a=sum_cem_a s_b=sum_cem_b skip sele 8 go top if s_a=0 REPLACE UD4_a WITH zer1 all FOR n=nn1.and.ud4_a=0 * UPDATE nerd SET ud4_a = zer1 where n=nn1.and.ud4_a=0 endi if s_b=0 REPLACE UD4_b WITH zer1 all FOR n=nn1.and.ud4_b=0 * UPDATE nerd SET ud4_b = zer1 where n=nn1.and.ud4_b=0 endi ENDD SET FILT TO CLOS DATA use ud_fond loca for gedish=i mebleg1=mebleg repl ud_say with udan4,cixan_n with zer1 &&,ud_son with say1 FORM1.SHOW() ENDI cMessageTitle = 'NERDT' nDialogType = 256 if udan4>0 cMessageText2=ALLTRIM(str(udan4)) cMessageText3 = ' BILET UDDU ! UDUS MEBLEGI:' CMT1=STR(MEBLEG1) cMessageText4= cMessageText2+cMessageText3+CMT1 else cMessageText4='UDUS YOXDUR' ENDI nAnswer = MESSAGEBOX(cMessageText4, nDialogType, cMessageTitle) FORM1.SHOW() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 14:09 |
|
||
|
Skorost vipolnenie proqrammi
|
|||
|---|---|---|---|
|
#18+
VOT ETOT KOD KAK MOJNO 'USKORIT'? DO WHILE .t. sele 9 if eof() exit endif nn1=n s_a=sum_cem_a s_b=sum_cem_b skip sele 8 go top if s_a=0 REPLACE UD4_a WITH zer1 all FOR n=nn1.and.ud4_a=0 * UPDATE nerd SET ud4_a = zer1 where n=nn1.and.ud4_a=0 endi if s_b=0 REPLACE UD4_b WITH zer1 all FOR n=nn1.and.ud4_b=0 * UPDATE nerd SET ud4_b = zer1 where n=nn1.and.ud4_b=0 endi ENDD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 11:27 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32820017&tid=1595238]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 437ms |

| 0 / 0 |
