powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / посоветуйте нормальный драйер для работы с DBF файлами
12 сообщений из 12, страница 1 из 1
посоветуйте нормальный драйер для работы с DBF файлами
    #35439016
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
программа работает с огромным файлом (>2млн. записей)
проблема в том что запросы выполняются невероятно долго

проверял некоторые драйвера на относительно небольшом файлике (около 100тыс. записей)
простым запросом "SELECT * FROM test_tb WHERE field1>100;"
результат:
ODBC (вроде как стандартный драйвер) - время: 14 - 15 сек.
Microsoft.Jet.OLEDB.4.0 - время: 12 - 13 сек.
VisualFoxProOLEDB driver - время: 4.5 - 5 сек.
BDE - 12.5 сек., (но над сказать иногда приятно радует и некоторые запросы выполняет быстрее предыдущего)
PS: такие результаты пол-ны на машине:AMDathlon 1000, 256mbRAM;

вообщем такие тормоза не приемлимы(+ у некоторых пользователей машины послабее будут),
посоветуйте пожалуйста нормальный дравер для dbf файлов
как ещё можно оптимизировать работу с такими огромными файлами?
(советы разбить на несколько мелких не предлагать)

PSS: пишу на Borland'e6м использую для проверки исп-л АДО;
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35439029
another-anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Научиться использовать современные СУБД вроде Firebird?
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35439069
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как насчет индексов?
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35439146
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немогу использовать индексы в запросах,
они(индексы) есть, но созданы в foxPro2.0, и как их использовать не представляю

тока компоненты TTable могут это вытворять,
а мне нужно выполнять запросы.
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35439302
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloyGamerнемогу использовать индексы в запросах,
они(индексы) есть, но созданы в foxPro2.0, и как их использовать не представляю

тока компоненты TTable могут это вытворять,
а мне нужно выполнять запросы.
перенеси все в СУБД или хотябы пересоздай этот файл с индексами которые поддерживаются (или чего там нужно, я DBF не использую, поэтому не в курсе)
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35439423
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
another-anonymousНаучиться использовать современные СУБД вроде Firebird? barrabasперенеси все в СУБД переносить все в СУБД нельзя т.к. основная работа(о которой я пока ничего не знаю) с данными идет в другой программе(которую я тоже не знаю), все что есть это данные в DBF формате, из которых иногда нужно составить отчеты.

каждый раз перебрасывать данные из DBF в СУБД для нескольких отчетов, очень сомнительная идея.

barrabasпересоздай этот файл с индексами которые поддерживаются
не знаю как создать индекс, и не знаю как его использовать
ведь только в компоненте TTable в билдере - можно явно его указать.
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35440192
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloyGamerкаждый раз перебрасывать данные из DBF в СУБД для нескольких отчетов, очень сомнительная идея. Вовсе не сомнительная. У меня несколько лет так базы жили. Филиалы работали в старой программе, присылали ежевечерне свои гигабайтные dbf, за ночь мой робот загонял их в СУБД. Днем офисный персонал делал отчеты на основе СУБД. Все жило просто замечательно.

zloyGamerне знаю как создать индекс, и не знаю как его использовать
ведь только в компоненте TTable в билдере - можно явно его указать.Пиши на FoxPro. Или копируй данные в СУБД.
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35440519
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по результатам тестов, запрос выполняется в среднем 12-13 секунд. Возможно всё это время пожирает fullscan таблицы. Я-бы посоветовал немножко изменить постановку.

Если из 2 млн записей выбирается небольшой процент записей (до 7%) то можно индексировать и выполнить поиск стандартными средствами.

Если их гораздо больше, то лучше создать некую иллюзию секционирования или разделения таблицы на подтаблицы. Как вариант, во время формирования DBF-ника генерить две таблицы. Одну - полную, вторую по предикату WHERE field1>100.

Можно использовать особенности физической организации DBF-ника. Тоесть при выгрузке сделать ORDER BY field1 и получить монотонную таблицу. Парсить её надо будет низкоуровневыми библиотеками с условием выхода из цикла.

Резкое повышение производительности на драйвере FoxPro я не могу объяснить. Возможно тут действует какой-то хитрый индекс. Ну в этом случае вы можете его смело брать и не парится сравнением с другими.
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35440593
Гы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Резкое повышение производительности на драйвере FoxPro я не могу объяснить. Возможно тут действует какой-то хитрый индекс. Ну в этом случае вы можете его смело брать и не парится сравнением с другими.

Rushmore
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35440627
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГыRushmore
Ага. Верно.
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35448446
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если критична скорость, то придется разработать проект в Фоксе.
Я думаю, для пользователей внешний вид приложения практически не изменится.
А уж Рашмор-оптимизация для DBF в ФоксПро тебе поможет...
Вот только с запросами там (при оптимизации) есть ограничения.

Если же так делать нет ни возможности, ни желания - то только перегонять
базы в другой формат. Впрочем, как известно, standalone-приложение на
Borland'e для работы с БД - не лучший по эффективности вариант...
...
Рейтинг: 0 / 0
посоветуйте нормальный драйер для работы с DBF файлами
    #35455534
usc.urich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zloyGamer another-anonymousНаучиться использовать современные СУБД вроде Firebird? barrabasперенеси все в СУБД переносить все в СУБД нельзя т.к. основная работа(о которой я пока ничего не знаю) с данными идет в другой программе(которую я тоже не знаю), все что есть это данные в DBF формате, из которых иногда нужно составить отчеты.

каждый раз перебрасывать данные из DBF в СУБД для нескольких отчетов, очень сомнительная идея.

barrabasпересоздай этот файл с индексами которые поддерживаются
не знаю как создать индекс, и не знаю как его использовать
ведь только в компоненте TTable в билдере - можно явно его указать.

Проблема почти аналогична, мучаюсь давно, выход так и нет:(
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / посоветуйте нормальный драйер для работы с DBF файлами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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