Ahoj, na stroji, kde běží firebird server (nyní WIN 3.0.6, dříve 3.0.4, nemá vliv) nám došla několikrát paměť.
Vyzkoumal jsem, že když mám tabulku:
CREATE TABLE TAB1
(
A1 Varchar(99),
A2 Varchar(199)
);
ALTER TABLE TAB1 ADD A3 COMPUTED BY (coalesce(a1, '')||'-'||coalesce(a2, ''));
a nechám naplnit 350 řádků náhodným textem, potom pokud spustím:
"c:\Program Files\Firebird\Firebird_3_0\isql.exe" -u SYSDBA -p 1 -i c:\1\poc.sql -o c:\1\vysl.txt "localhost/3051:c:\fdb\try.fdb"
kde poc1.sql obsahuje 3000 stejných řádků: SELECT a3 FROM tab1;
Potom pokud pozoruji ve správci úloh firebirdí server, tak postupně konzumuje víc a víc paměti.
Pokud však selektuji sloupec a1 (tedy nepočítaný) místo a3, tak spotřeba paměti nenarůstá. Také pokud v computed by není použito coalesce spotřebovaná paměť nenarůstá (nebo spotřeba narůstá mnohem pomaleji - to si nejsem jist).
Pokud použiji server 2.5.8 také spotřeba paměti nenarůstá.
Pokud úloha doběhne, paměť se uvolní, se serverem není potřeba nic dělat.
Nesetkali jste se s tím někdo? Nemám něco špatně v configu? Díky.