01 март 2012

Firebird isql (linux)


Firebird-ovi konzolni alati su prilično osetljivi na sintaksu (da li se pišu navodnici, apostrofi kod kreiranja baze, bekapa, konektovanja... da li se kuca -pass, -password ili password bez "minusa" i sl.).

Podsetnik:
/opt/firebird/bin/isql
create database '/home/username/databasefolder/databasename.fdb' user 'SYSDBA' password 'masterkey' page_size 4096 default character set UTF8;

Primetio sam i da Flamerobin-ov "Run a query" ("Execute SQL statement") radi očajno sporo za velike skripte (npr. INSERT više desetina hiljada rekorda). Tu je, recimo IBExpert na Windowsu nenadmašan, a za linux postoji drugo rešenje - izvršavanje skripte pomoću konzolnog isql alata:
/opt/firebird/bin/isql -q -i /home/username/databasefolder/skript.sql

U skript.sql fajlu bi trebalo uneti i konekcioni string na početku skripte:
connect databasealias user SYSDBA password masterkey;

A poželjno je na kraju fajla i (tek da se ne zaboravi):
commit work;


Hint: potrebno je obratiti pažnju i na (ch)ownera (firebird.firebird) database foldera/fajlova i shodno tome konfigurisati flamerobin i ostale alate.

2 коментара:

  1. Анониман02 март, 2012 12:10

    FlameRobin je spor jer parsira svaku naredbu i izvrsava je posebno a usput racuna statistike. Ako hoces brzo izvrsavanje velikog broja INSERT-a kroz FlameRobin, ubaci po 1000-2000 komada u execute block:

    set term !! ;

    execute block as begin
    insert...
    insert...
    insert...
    insert...
    ...
    end


    Pozdrav,

    Milan Babuskov, FlameRobin developer.

    ОдговориИзбриши
    Одговори
    1. Execute block je OK za insert od par hiljada recorda, a za više desetina hiljada je velik posao cepati na manje blokove. Naravno u zavisnosti od potrebe, može i na ovaj i na onaj način.

      Pozdrav!

      Избриши