Pärast kahe ja poole aasta arendust on välja antud relatsioonilise andmebaasi Firebird 5.0 versioon. Firebird jätkab InterBase 6.0 andmebaasi arendust, mille Borland avas 2000. aastal. Firebird levitatakse vabade litsentside MPL all ning toetab ANSI SQL standardeid, sealhulgas selliseid võimalusi nagu triggereid, salvestatud protseduure ja replikatsiooni. Binaarsed kogumikud on valmistatud Linuxi, Windowsi, macOS-i ja Androidi jaoks.
Peamised uuendused:
- On ellu viidud võimalus teostada operatsioone mitme ka线程模式. Mitmerealised protsessid on rakendatavad indeksite loomisel, prahtimise (automaatsete ja käsitsi sweep-operatsioonide), varukoopiate loomisel ja nende taastamisel. gfix -sweep -parallel 4 dbname gbak -b -par 4 -user username -pass password dbname backupname
- Lisatud on osaliste indeksite tugi, mis sisaldavad ainult valitud kirjeid, mis vastavad indeksite loomisel antud tingimustele. CREATE INDEX IT1_COL ON T1 (COL) WHERE COL < 100;
- SELECT WITH LOCK, UPDATE ja DELETE väljendites on rakendatud süntaks «SKIP LOCKED», mis võimaldab vahele jätta kirjed, millele on hetkeseisuga tehtud päringu esitamise hetkel lukustus (näiteks et ei peaks ootama lukustuse vabastamist, kui see kattub teise tehinguga).
- Lisatud võimalus värskendada andmebaasi ajakohasele vaheversioonile (ODS — On-Disk-Structure) reaalajas (inline update) ilma varukoopia loomise ja taastamiseta. Näiteks saab nüüd reaalajas muuta Firebird 4.0 (ODS 13.0) formaadis andmebaasi Firebird 5.0 (ODS 13.1) formaati.
- Rakendatud on automaatselt hallatav kompileeritud SQL-väljendite vahemälu (aegunud kirjed puhastatakse vajaduse korral). Vahemälu suurus määratakse parameetriga MaxStatementCacheSize failis firebird.conf.
- Lisatud liides SQL ja PSQL profiilimiseks, mis võimaldab hinnata iga päringu täitmiseks kuluvat aega, koguda statistikat päringute arvu kohta ja tuvastada jõudlusprobleeme.
- MERGE lausesse on lisatud tingimuslik blokk "WHEN NOT MATCHED BY SOURCE", mis aktiveerub, kui lähteandmed ei vasta ühelegi kirjele sihtrühmas. MERGE INTO customers c USING new_customers nc ON (c.id = nc.id) WHEN MATCHED THEN UPDATE SET name = nc.name WHEN NOT MATCHED BY SOURCE THEN DELETE
- Tagatud on võimalus tagastada mitu rida RETURNING-lausega, kui esitatud DML-lause katab mitu rida (varem taolistes olukordades ilmus viga "multiple rows in singleton select").
- Uued sisseehitatud funktsioonid: UNICODE_CHAR, mis tagastab unicode-sümboli vastavalt määratud koodile, ja UNICODE_VAL, mis tagastab koodi määratud sümboli jaoks. Funktsioonidesse EXTRACT, FIRST_DAY ja LAST_DAY on lisatud parameeter QUARTER kvartaali numbri määramiseks.
- Lisatud uus süsteempakett RDB$BLOB_UTIL, mis sisaldab hulga operatsioone BLOB-ide jaoks PSQL moodulitele.
- Parandatud on rekordite tihendamise algoritmi, mis rakendab nüüd muutuva pikkusega loenduri, et tõhusamalt pakkida korduvaid andmepause. Optimeerimine on võimaldanud oluliselt suurendada defekteeritud pikkade VARCHAR-failide väärtuste tihendamise määra, mis sisaldavad UTF-8 kodeeringut.
- Lisatud on kahe suunaga kerimisseansid (scrollable), kui pääsete andmebaasile kaugühenduse kaudu.
- Blobi kopeerimise jõudluse optimeerimine on lõpule viidud.
- Lisa täielik toetus SQL-i standardis määratletud ridade süntaksile. Näiteks võivad read nüüd katkeid sisaldada kommentaaride või tühikute tõttu: select ‘ab’ /* comment */ ‘cd’ from RDB$DATABASE; select ‘ab’ ‘cd’ from RDB$DATABASE;
Allikas: opennet.ru
