Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > Скорость работы с БД |
Автор: Алкоголик 20.3.2014, 02:17 |
Есть текстовый файл(150мб) в нем надо удалить одинаковые вопросы. Сделал так. Выделяем вопрос, проверяем есть ли в он БД, если нет то записываем в БД. БД Access работаю с ней через ADO, но на обработку файла уходит где-то 15 минут, надо сократить до 5 минут, есть какие-нибудь предложения? |
Автор: kami 20.3.2014, 11:17 |
Варианты: 1. Отказаться от БД и использовать (к примеру) TDictionary или TStringList с dupIgnore ? (будет гораздо быстрее) 2. Ввести в БД уникальный ключ по полю "вопрос" и не проверять, а просто записывать, отлавливая исключения, возникающие на дубликатах? |
Автор: Алкоголик 20.3.2014, 11:37 |
2 вариант и использую. А по первому, программу будут использовать на ноутбуке(его ТТХ не знаю), но судя потому что на моем компе программа отрабатывает за 5 минут, а на их за 15, то машинка быстродействием не отличается. Поэтому боюсь если 150Мб грузить в память, то это тоже ничем хорошим не закончится. Прочитал тут про DAO, но не смог найти примеров. |
Автор: Алкоголик 20.3.2014, 15:59 | ||
А фраза да, я намеренно исказил. Считал, что так делать не правильно и было стыдно говорить, но так оказалось быстрее, чем если проверять сначала. Сделал с striglist. Спасибо за совет. |
Автор: kami 21.3.2014, 08:11 |
А какие-нибудь сравнительные характеристики можно опубликовать? С Access мы знаем, что код отрабатывает за 5 минут (а на каком-то ноутбуке - за 15) А как обстоят дела с тем же самым файлом, но на TStringList? |