|
|
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Господа не судите меня строго, на ADO начал писать месяц назад, поэтому пишу в силу своих возможностей. Надо увеличить скорость работы программы, сейчас она равна 6с. Обрабатывает 110 записей, если записей будет больше время увеличится до критических значений. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 15:56:17 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Пожелание (на будующее) Есть такая кнопка при добавлении поста - называется Код: plaintext ИМХО - текс программ будет легче читать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:03:26 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
понял, учту, если надо сделаю прямо сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:05:16 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Вероятно все это можно запросто засунуть в запрос на обновление, который работает во стоко раз быстрее как долго вы крутите свой цикл по recordset'у А так как разбираться с кодом с вынимаем оттуда логики самого алгортима влом (я думаю влом будет не токо мне), то если автор хочет подсказки, то пусть для начала напишет что он имеет и что хочет получить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:06:40 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Как-то все непонятно у тебя А занчения в таблице Period меняются? Или они константами пробиты, раз и навсегда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:07:50 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Progaпонял, учту, если надо сделаю прямо сейчас. Кто-то добрый уже сделал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:11:26 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Чтобы было быстрее - не надо открывать/закрывать в цикле rcd. Открой один раз и пользуйся findnext А лучше запросами пользоваться. Какой смысл у таблицы period? Или это вообще запрос? И, кстати, это MDB или ADP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:12:23 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
в таблице Period может быть сколько угодно столбцов, т.к. изначально не известно сколько длится проект строительства. Количество этих столбцов берётся из 3-ей таблы, которая в свою очередь получается с помощью из 4-ой, а 4-ая образуется путём выимки данных из проекта Project-a. Короче давно код пишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:13:10 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
ЗЫ. А вот это: rcd2!Итого = summa rcd2.MoveNext что делает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:13:11 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Продолжая вопрос GEO - если адп - то ВСЮ логику на сервер в храниммые - и с песней по жизни:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:13:27 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
авторв таблице Period может быть сколько угодно столбцов Это вы заблуждаетесь, батенька. Не больше 250 для мдб или 400 (кажется) для mssql2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:14:12 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
to geo: Это просто 1) записывает в Итого сумму на строке 2) переход на следующую строку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:15:12 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Я сомневаюсь, что 1-й пункт выполняется. rs.update ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:15:56 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Ой господи, это понятно, что не более 255 столбцов, просто имеется ввиду не известно заранее сколько их будет. Всё в mdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:17:08 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
авторпользуйся findnext Т.е. rcd.find "блабла" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:17:12 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
это ничего не даст. Или вы имеете ввиду не открывать и закрывать rcd. А пользоваться find-ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:20:24 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Очень хорошо, а не покажет ли уважаемый джин, каким образом таблица period формируется из "3-й таблицы"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:20:55 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Код: plaintext в принципе можно создавать рекордсет и при объявлении : Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:21:30 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:23:44 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Если кто хочет, могу выкинуть весь код, что я написал, только заранее необходимо установить MS Project(файл пример скину тоже), может так будет понятнее. P.S.Все предложения хорошие, но они не увеличивают скорость. А это ГЛАВНОЕ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:24:46 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Предположу сам: period создается посредством transform некоей Table3, заголовки столбцов - format(ПолеДаты,"yy mm"). Тогда искомую таблицу с итогами можно получить запросом типа Код: plaintext 1. 2. Кстати, зачем создавать столбец и заполнять его данными, если в любой момент времени можно эти данные быстро вычислить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:31:35 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
а если все-таки надо через... код вба, то попробуй вместо Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. написать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:34:27 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
to paparome: Выдаёт ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:35:17 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Progato paparome: Выдаёт ошибку strSQL = strSQL & "Nz( [ " & month & " ] , 0)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:36:48 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Спасибо всем всё работает!!! Особенно paparome Получился код такой: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:41:53 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Я щаc кого-то из модераторов укушу Надо блокировку ставить на редактирование :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:44:55 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
to Тёмный: кто-то письмена трёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:47:55 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:48:55 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:49:56 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
...как то раз проверял на себе советы из одной однотематической статьи: например при "сложении" заведомо string переменных можно склеивать их не & а + Вместо Left() пользоваться Left$() (так же и right$) конечно на мелких циклах разници и не ощущается, но когда попался весьма и весьма длинный, с множеством склеиваний строк и отрезанием букв - разница была очень ощутима.... ...ну это так - к слову :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 16:50:54 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
2 paparome: Забыл спросить, код был сделан для просчёта суммы по горизонтали, а возможно ли сделать с помощью SQL-запроса по вертикали. Вот как я это сделал: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 13:46:10 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. Естественно, SQL строку придется генерить динамически, примерно как я сделал. Справишься? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 14:06:31 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Конечно, было бы желание, а оно как всегда есть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 14:15:39 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
2 paparome: И ещё вопрос: а как часто тебе приходится оптимизировать код, я в смысле начальство требует или самому хочется, ведь иногда записей, с которыми работаешь, бывает не больше 50 и пофигу как написано главное результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 14:21:08 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Proga2 paparome: И ещё вопрос: а как часто тебе приходится оптимизировать код, я в смысле начальство требует или самому хочется, ведь иногда записей, с которыми работаешь, бывает не больше 50 и пофигу как написано главное результат Оптимизацией кода приходится заниматься, когда что-то оч. долго открывается - на глаз (типа пользователь задолбается ждать - и след. задолбает нас) Иногда приходиться все переделывать с нуля, но с другим алгоритмом Если записей 50 и все работает быстро - на газ, то конечно забивам на всю оптимизацию - зачем зря париться :) + Предложенные мною варианты были сделаны исходя из того, что один запрос будет работать быстрее (естественно, это проявиться только на больших объемах данных), чем елозенье в цикле по рекордсету (туда-сюда, туда-сюда, ...) ЗЫ: как там в мультике говорилось: - Нет, не догонишь, у него 2 ноги - он бежит: раз-два, раз-два, а у твоей лошади 4 - она бежит: раз-два-три-четыре, раз-два-три-четыре! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 14:33:43 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1673487]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
196ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 518ms |

| 0 / 0 |
