Ihre Kommentare
Да с этим надо что-то делать.
ADO тоже ведь с базой напрямую работает, надо будет подумать о переносе части работы в Native код.
p.s. Второго пункта в старом Библиотекаре нет, Fb2Library умет обновлять списки авторов/серий/книг во время импорта.
p.p.s Возможно скорость можно увеличить обрабатывая книги пачками (хотя бы по 10 штук) в одной транзакции, а не по одной как сейчас.
"Продвинутый" алгоритм сравнения дает не более 3% ошибок, а не 70% как ты пытаешься меня уверить. 70% означало бы, что из твоей тысячи были не правильно распознаны минимум 700 книг, в тестах я этого не наблюдаю и близко.
- Катастрофическая деградация производительности Firebird базы с увеличением объема
- Обновление UI
- Маршалинг из Manged в Unmanaged в FirebirdSql драйвере.
1. О производительности Firebird я уже писал:
https://plus.google.com/u/0/117645144499921711425/posts/NLce8cFRfTf
https://plus.google.com/u/0/117645144499921711425/posts/AoRCbSXfcyH
и тут:
https://plus.google.com/u/0/117645144499921711425/posts/Bz8xyoWqu5N
2. Отключение динамического обновления UI возможно даст увеличение производительности на пару процентов.
3. Протокол обмена данными между ADO .NET драйвером и Firebird сервером построен на использовании достаточно больших структур. При каждом запросе к БД происходит заполнение структуры данными в Managed памяти, затем эта структура копируется runtime'ом .NET в Unmanaged память (происходит так называемый маршалинг) и указатель на неё передается дальше в код Firebird'a.
Всё это, в конечном итоге, сказывается на производительности операции импорта.
По поводу базы данных.
- Размер странницы рекомендуется выбирать равным размеру кластера в файловой системе. Для NTFS стандартный размер кластера равен 4к (4096)
- Флаг "Force Write" заставляет Firebird после каждого изменения в БД скидывать файловые буфера на диск. При этом повышается надёжность, но понижается производительность.
Доступно обновление, исправляющее данную проблему.
Gut, значит проблема в другом.
Диск на котором расположен каталог для временных файлов, часом не FAT32?
Не воспроизводится. Проблемы возможны, т. к. в этот модуль вносились изменения, но у меня всё запускается. Посмотрим, может у кого ещё такая проблема возникнет...
UPD: Ошибка исправлена в версии 1.2.474.1
Customer support service by UserEcho
Это пока единственный существенный недостаток алгоритма. У тебя все книги такие?