|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.06.2014, 11:40 | #1 |
Пользователь
Регистрация: 17.04.2014
Сообщений: 16
|
Скорость работы Access
Проблема переход с Парадокс на Access.
Катастрофическое замедление работы. Ситуация. Таблица парадокс имеет 300 000 записей. Создал ее копию в аксесе. Задача: в одно поле ввести последовательно число от 1 до упора. вот такой код обработки двух кнопок. Код:
1500 тиков. Вторая кнопка Access через ADOTable. После 20 минут ожидания вырубил, посмотрел - изменено чуть более 100 000 записей. Вопрос: это так access работает вообще или есть что то, чего я не знаю. Комп мощный. |
16.06.2014, 11:52 | #2 |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
через SQL попробуй
Тяжело быть бестолковым.....
|
16.06.2014, 11:59 | #3 |
Пользователь
Регистрация: 17.04.2014
Сообщений: 16
|
Как через SQL увеличивать значение вводимое в поле?
|
16.06.2014, 12:03 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Для начала посмотреть какие индексы у таблицы в базе есть. И не понятен смысл нумерации
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.06.2014, 12:07 | #5 |
Пользователь
Регистрация: 17.04.2014
Сообщений: 16
|
Из индексов только ключевое поле.
Задача нумерации - именно проверить быстродействие, т.к. задачи решаемые влет на старой базе, на новой требуют многих минут. Простой тестовый пример привел меня в шок. |
16.06.2014, 12:42 | #6 |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
если у тебя уже есть таблица с определённым колилчеством записей можно попробовать сделать следующее:
Код:
ну а если таблица не заполнена: Код:
Тяжело быть бестолковым.....
|
16.06.2014, 14:29 | #7 |
Пользователь
Регистрация: 17.04.2014
Сообщений: 16
|
Dark_Spirit, спасибо, но не то.
Нет в таблице поля для where, все будет писаться в одну строку. Нужно тупо проставить нумератор. Конечная задача: периодически запоминать местоположение записи в списке, которое будет меняться в соответствии с изменением определенного поля, по местоположению будет строится график. Во время создания одного отчета, местоположение записи может меняться до 20 раз. На парадоксе все это проходит за полторы минуты. В аксесе зависло на часы. |
16.06.2014, 14:34 | #8 |
Пользователь
Регистрация: 17.04.2014
Сообщений: 16
|
Я покопался и выяснил, что ADO при каждой записи изменении переходе и т.д. генерирует туеву хучу различных событий и вызывает несколько методов на каждое событие, поэтому такие тормоза.
Может есть какой-то способ обойти все эти генерации???? |
16.06.2014, 14:46 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Уникальный ключ надеюсь есть в таблице.
1. Запросом создать временную таблицу с этим ключем + автоинкремент от 1. 2. Запросом обновить поле исходной таблицы используя автонкремент из временной 3. Удалить временную По всякому быстрей будет, но в первую очередь отказался бы вообще от перенумерации записей. Нумерацию можно и на весу делать SELECT-ом или на клиенте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.06.2014, 14:49 | #10 |
Пользователь
Регистрация: 17.04.2014
Сообщений: 16
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скорость работы по сети | Dux | Работа с сетью в Delphi | 5 | 09.10.2013 22:39 |
Скорость работы программ в DOS | assume | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 12 | 19.02.2013 13:27 |
Скорость работы с базой данных | Linel | PHP | 3 | 17.06.2011 21:50 |
Скорость работы различных СУБД | _SERGEYX_ | БД в Delphi | 3 | 10.10.2010 11:38 |
Скорость работы программы | Farrel | Общие вопросы C/C++ | 0 | 10.09.2010 23:25 |