Embedded firebird database - вопрос по скорости
И как вообще решать проблемму быстродействия?реализовывать то, что нужно от БД самому!
реализовывать то, что нужно от БД самому!ценный совет, Сергей Станиславович!
А вопрос то собстно в том, вообще потенциально какая-нить приблуда типа Embedded Fireberd может потянуть 20-тимиллионнную таблицу?
Ну а что конкретно твоя программа делает с этими 20 млн записей?
Работает нормально с маленькими БД (<100тыщ.записей) и зависает на больших (около 20 млн.записей) таблицах, при размере файла базы данных в 2.5 Гига.да тоже наблюдал такое (мы перешли на другую базу, но по другой причине). Скорее всего это можно исправить настройками Fireberd-а. должен подсказать поконкретнее.
Есть еще Microsoft SQL Server Compact Edition, если у тебя одно-пользовательский режим. Он тоже встраиваемый
http://ru.wikipedia.org/wiki/SQL_Server_Compact_Edition
Обычно Microsoft SQL Server работает вполне сносно с настройками поумолчанию.
Как на счет Berkley DB?
кстати, да. тоже вариант. =)
Ну а что конкретно твоя программа делает с этими 20 млн записей?поиск + вывод на экран, в основном
Всем спасиб за советы - буду пробовать
глупый вопрос: а индекс по полям поиска настроен?
поиск + вывод на экран, в основномчто, и индексы не помогают?
Как на счет Berkley DB?+1 за Berkeley DB
надо только не забыть выяснить, что там с лицензией или сколько она будет стоить
sqlite?
The Sleepycat Public License is an OSI-approved open-source license used by Sleepycat Software for their products Berkeley DB, Berkeley DB Java Edition and Berkeley DB XML.
According to the Free Software Foundation[1], it qualifies as a free software license, and is compatible with the GNU General Public License.
The license is a strong form of copyleft because it mandates that redistributions in any form not only include the source code of Berkeley DB, but also "any accompanying software that uses the DB software." As an alternative to this strict licensing policy, Berkeley DB is also licensed under the Sleepycat Commercial License that does not require redistribution of accompanying software.
я не читал Sleepycat Public License, но у меня сложилось впечатление что Oracle предлагает два варианта: или GPL (я обязан открыть исходники приложения, использующего Berkeley DB или proprietary (придётся заплатить Ораклу)
вот цитата из файла LICENSE в Berkeley DB Java Edition 3.2.44, которая это подтверждает:
* 3. Redistributions in any form must be accompanied by information onимхо это и есть GPL-ность.
* how to obtain complete source code for the DB software and any
* accompanying software that uses the DB software. The source code
* must either be included in the distribution or be available for no
* more than the cost of distribution plus a nominal fee, and must be
* freely redistributable under reasonable conditions. For an
* executable file, complete source code means the source code for all
* modules it contains. It does not include source code for modules or
* files that typically accompany the major components of the operating
* system on which the executable file runs.
а индекс по полям поиска настроен?я ничего дополнительно не настраивал...
тормозит уже в момент подсоединения к БД
минут 5 подключается... поиск тоже тормозной пипец.
в общем, все работает но виси-и-и-и-и-ит.......
а для более конкретных советов надо сначала саму бд увидеть
по фотографии не лечим
индексы должны тебе помочькак это связано с этим:
тормозит уже в момент подсоединения к БД?
А вопрос то собстно в том, вообще потенциально какая-нить приблуда типа Embedded Fireberd может потянуть 20-тимиллионнную таблицу?Если ты спрашиваешь, есть ли такие компактные базы, то ответ да. У нас и 400 миллионов тянет. Только уже за деньги и дорого.
Оставить комментарий
markyzz
Написал программу, работающую с Embedded Fireberd.Работает нормально с маленькими БД (<100тыщ.записей) и зависает на больших (около 20 млн.записей) таблицах, при размере файла базы данных в 2.5 Гига.
В решаемой задаче необходимо пользоваться именно той БД, которая не требует установок, инсталляций итд итп.
Возможно кто-нить сможет пояснить что-нибудь на этот счет... (я бы поэкспериментировал с кол-вом записей, но сервак не у меня на компе) Может FireBird дерьмо и есть шустрый аналог? Может что-то еще? Может в природе таких БД вообще не существует? И как вообще решать проблемму быстродействия?
Возможно кто-нить знает.
Заранее спасибо за советы!