powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как быстрее добавить данные в таблицу...
9 сообщений из 9, страница 1 из 1
Как быстрее добавить данные в таблицу...
    #32090201
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой у меня вопрос к специалистам:
Необходимо пробежаться по всем записям таблицы и в соответствии со значением первого поля поставить нужное значение во второе поле этой же записи (вычисления примитивные). Я это делаю так:

Set rst = tdf.OpenRecordset(dbOpenTable)
rst.MoveFirst
Do Until rst.EOF
rst.Edit
' Rashet - делает небольшие вычисления и получает новое значение
rst.Fields("Field2") = Rashet(rst.Fields("Field2"))
rst.Update
rst.MoveNext
Loop

Проблема в том, что таблица содержит около 300 000 записей и на моем рабочем компе (Celeron 466, 128 Mb, Win98) все это действие занимает около 2 часов. Действие надо будет выполнять ежедневно и хотелось бы по максимуму сократить время обработки.
В связис этим подскажите как лучше это сделать, может быстрее будет запрос на изменение данных или еще какие-нибудь хитрости есть, чтобы максимально ускорить процесс.
...
Рейтинг: 0 / 0
Как быстрее добавить данные в таблицу...
    #32090249
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай запросом
...
Рейтинг: 0 / 0
Как быстрее добавить данные в таблицу...
    #32090305
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос update
в конструкторе.... очень простенько
...
Рейтинг: 0 / 0
Как быстрее добавить данные в таблицу...
    #32090321
Suslik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроме того, что это надо делать запросом, ещё надо максимально соптимизировать функцию Rashet.
...
Рейтинг: 0 / 0
Как быстрее добавить данные в таблицу...
    #32090345
Mar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mar
Гость
у меня Access ХР. Сначала был 97, потом 2000. 2000 требовал переделку под свой новый 2000 формат, а ХР с 2000 - нет. Но однажды я засек, что его можно сохранить под 2002 формат. Сделал и ... разница в быстродействии заметная (весьма). Но база пухнет только так (даже если меняешь программный код), часто нужно зажимать (1/день).
...
Рейтинг: 0 / 0
Как быстрее добавить данные в таблицу...
    #32090418
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок. Спасибо за советы, попробую сделать и сравнить, что получится - сообщу (если кому-нибудь будет интересно).

Функция Rashet по сути своей состоит из одного (но большого) Select case, в соответствии с попаданием в определенные интервалы значения поля Field1, выбирается один из 2 вариантов для поля Field2 - ну, вообщем, полный примитив, хоть и здоровый. - Просто я где-то читал, что оператор Select case работает быстрее, чем If Then в таких случаях. Так что, как еще можно оптимизировать функцию Rashet не представляю...... :-)


P.S. В примере была небольшая ошибка, следует читать: rst.Fields("Field2") = Rashet(rst.Fields("Field1"))
...
Рейтинг: 0 / 0
Как быстрее добавить данные в таблицу...
    #32090465
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может, попробовать поместить этот select ... case в запрос через IIF ?
...
Рейтинг: 0 / 0
Как быстрее добавить данные в таблицу...
    #32090575
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, попробую, а ни чего, что SQL запрос будет так в 20-25 строчек.... :-( ?
...
Рейтинг: 0 / 0
Как быстрее добавить данные в таблицу...
    #32090585
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эт ничего, главное ребята это сердцем не стареть:)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как быстрее добавить данные в таблицу...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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