LINUX.ORG.RU

Производительность hsqldb vs firebird, способы миграции

 , , ,


0

1

Приветствую всех.

В бытовых целях несколько лет использовал hsqldb с libreoffice base в качестве фронта. Накопилось почти 15 тыс. записей (основная таблица 1500 строк по 10 столбцов). Недавно прочитал о том, что libreoffice дропает поддержку hsqldb из-за ее устаревания и немасштабируемости, вот и задумался.

Вопросы:

  • Оправдана ли миграция на firebird, если кол-во записей в базе будет расти по 3-5k в год? Будет ли firebird легче на ресурсы, чем hsqldb (последняя при работе через libreoffice подтормаживала уже на 5k записей)?

  • Если оправдана, то как автоматически конвертировать базу в firebird? Не нашел готовых рецептов, только дурная ручная правка всего и вся.

  • Есть ли более удобный и шустрый чем libreoffice фронт для ручного заполнения, составления запросов и создания форм в firebird?

Изначально планировал взять sqlite, но отсутствие нормального формата дат и удобного фронта меня повернуло в сторону hsqldb и libreoffice.



Последнее исправление: Padomay (всего исправлений: 1)

Ответ на: комментарий от SkyMaverick

Погуглил и не нашел каких-либо упоминаний об отмене firebird. Статья на вики ЛО о переходе на firebird размещена, даны рекомендации по изменению, но инструкции по миграции нет.

Padomay
() автор топика
Ответ на: комментарий от SkyMaverick

Это кто-то из разработчиков? Если так, то это печально. Возлагал надежды на работу в firebird через LO.

Padomay
() автор топика
Ответ на: комментарий от Padomay

Ну он человек вовлечённый в проект, насколько я знаю. В тред скастовали, придёт - сам расскажет, если захочет.

SkyMaverick ★★★★★
()

Оправдана ли миграция на firebird, если кол-во записей в базе будет расти по 3-5k в год? Будет ли firebird легче на ресурсы, чем hsqldb (последняя при работе через libreoffice подтормаживала уже на 5k записей)?

оправдана миграция на что угодно, поскольку LO Base неюзабельное

Если оправдана, то как автоматически конвертировать базу в firebird? Не нашел готовых рецептов, только дурная ручная правка всего и вся.

В LO запиливали механизм автоматической миграции БД из hsqldb в embedded firebird, но я не знаю точно, как оно активируется и насколько хорошо работает

Есть ли более удобный и шустрый чем libreoffice фронт для ручного заполнения, составления запросов и создания форм в firebird?

Думается мне, что да, но это ты сам пошукай.

Изначально планировал взять sqlite, но отсутствие нормального формата дат и удобного фронта меня повернуло в сторону hsqldb и libreoffice.

и очень зря. Тот же ЛО можно, как фронт для sqlite юзать. У нас на форуме forumooo.ru есть фанат такой связки, поищи там по нику economist, если тебе интересно

Kompilainenn ★★★★★
()
Ответ на: комментарий от SkyMaverick

в темы , связанные с ЛО, если там проставлены соответствующие тэги, меня можно не кастовать, я подписан на libreoffice, writer, calc, draw и еще там что-то

firebird в ЛО отменили

не отменили, а перестали предлагать по умолчанию для создания новой БД

Kompilainenn ★★★★★
()
Последнее исправление: Kompilainenn (всего исправлений: 1)

На FreeBSD не собирается.

% portmaster -gD databases/firebird40-server
...
...
 /usr/local/include -fno-strict-aliasing   -isystem /usr/local/include -std=c++11  -D_THREAD_SAFE   -c /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/src/burp/main/burpMain.cpp -o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/main/burpMain.o
c++  -O2 -pipe  -DAMD64 -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   -isystem /usr/local/include -std=c++11  -std=c++11 -std=c++11 -std=c++11 -static-libstdc++  -fstack-protector-strong -L/usr/local/lib  -D_THREAD_SAFE   -Wl,-rpath,/usr/local/lib -Wl,-rpath,/usr/local/libexec/firebird/intl -Wl,-rpath,../gen/firebird/lib /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/OdsDetection.o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/backup.o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/burp.o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/canonical.o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/misc.o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/mvol.o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/restore.o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/burp/main/burpMain.o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/common.a -o /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/gen/Release/firebird/bin/gbak -L/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/gen/Release/firebird/lib -lfbclient -ltommath -ltomcrypt -liconv -lm  -lpthread -ldecFloat -lre2 
c++: warning: argument unused during compilation: '-static-libstdc++' [-Wunused-command-line-argument]
ld: error: undefined symbol: re2::RE2::Arg::parse_stringpiece(char const*, unsigned long, void*)
>>> referenced by array.h:0 (/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/src/common/../common/classes/array.h:0)
>>>               SimilarToRegex.o:(Firebird::SimilarToRegex::matches(char const*, unsigned int, Firebird::Array<Firebird::SimilarToRegex::MatchPos, Firebird::EmptyStorage<Firebird::SimilarToRegex::MatchPos> >*)) in archive /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/common.a
>>> referenced by array.h:0 (/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/src/common/../common/classes/array.h:0)
>>>               SimilarToRegex.o:(Firebird::SimilarToRegex::matches(char const*, unsigned int, Firebird::Array<Firebird::SimilarToRegex::MatchPos, Firebird::EmptyStorage<Firebird::SimilarToRegex::MatchPos> >*)) in archive /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/common.a
>>> referenced by re2.h:808 (/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/extern/re2/re2/re2.h:808)
>>>               SimilarToRegex.o:(Firebird::SubstringSimilarRegex::matches(char const*, unsigned int, unsigned int*, unsigned int*)) in archive /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/common.a

ld: error: undefined symbol: re2::RE2::Arg::parse_null(char const*, unsigned long, void*)
>>> referenced by re2.h:869 (/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/extern/re2/re2/re2.h:869)
>>>               SimilarToRegex.o:(Firebird::SubstringSimilarRegex::matches(char const*, unsigned int, unsigned int*, unsigned int*)) in archive /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/temp/Release/common.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[5]: *** [Makefile:516: /tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/gen/Release/firebird/bin/gbak] Error 1
gmake[5]: Leaving directory '/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/gen'
gmake[4]: *** [Makefile:280: master_process] Error 2
gmake[4]: Leaving directory '/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/gen'
gmake[3]: *** [Makefile:86: firebird] Error 2
gmake[3]: Leaving directory '/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0/gen'
gmake[2]: *** [Makefile:6: firebird] Error 2
gmake[2]: Leaving directory '/tmp/ports/usr/ports/databases/firebird40-client/work/Firebird-4.0.0.2496-0'
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/databases/firebird40-client
*** Error code 1

Stop.
make: stopped in /usr/ports/databases/firebird40-client

===>>> make build failed for databases/firebird40-client
===>>> Aborting update

===>>> Update for databases/firebird40-client failed
===>>> Aborting update

===>>> The following actions were performed:
	Installation of math/libtommath (libtommath-1.2.0)
	Installation of security/libtomcrypt (libtomcrypt-1.18.2_1)


===>>> You can restart from the point of failure with this command line:
       portmaster <flags> databases/firebird40-server databases/firebird40-client 

This command has been saved to ~/portmasterfail.txt

Мантейнеру портов пофиг.

iZEN ★★★★★
()

Изначально планировал взять sqlite, но отсутствие нормального формата дат и удобного фронта меня повернуло в сторону hsqldb и libreoffice.

LibreOffice поддерживает PostgreSQL. Эта СУБД собирается влёт в отличие от монстра Firebird.

iZEN ★★★★★
()

Накопилось почти 15 тыс. записей (основная таблица 1500 строк по 10 столбцов).

Для нормальных баз это считай пусто. Много это когда миллионы строк. И никто размер базы в ячейках не считает, считают в строках.

(последняя при работе через libreoffice подтормаживала уже на 5k записей)?

Значит удали эту гадость. Другое предложить не могу т.к. гуи клиентами к базам никогда не пользовался. Если гуи клиент не нужен то установи mysql.

firkax ★★★★★
()
Ответ на: На FreeBSD не собирается. от iZEN

После pkg delete re2-20210801 (это — одна из рантайм-зависимостей chromium) собрал другой парсер re2c-0.14.3 вместо него и оп-ля:

% portmaster -gD databases/firebird40-server
...
===>>> pkg-message for firebird40-server-4.0.0_1
On install:
Firebird 4 was installed.

1) Before start the server ensure that the following line exists in /etc/services:

gds_db          3050/tcp  #InterBase Database Remote Protocol

2) If you use inetd (Classic Server) then add the following line to /etc/inetd.conf

gds_db  stream  tcp     nowait  firebird        /usr/local/sbin/firebird  firebird

And finally restart inetd.

3) If you want to use change firebird modes then you must modify the ServerMode
   variable into /usr/local/etc/firebird/firebird.conf file.

 ServerMode="Super"
 # ServerMode="SuperClassic"
 # ServerMode="Classic"

4) It is STRONGLY recommended that you change the SYSDBA
password with:

===>>> The following actions were performed:
	Installation of databases/firebird40-client (firebird40-client-4.0.0_1)
	Installation of databases/firebird40-server (firebird40-server-4.0.0_1)
% 

— всё собралось.

iZEN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.