Pēc divarpus gadu attīstības ir prezentēta relāciju datubāzes vadības sistēmas Firebird 5.0 izlaišana. Firebird turpina InterBase 6.0 datubāzes vadības sistēmas koda attīstību, kuru 2000. gadā izlaida uzņēmums Borland. Firebird tiek izplatīts zem brīvās MPL licences un atbalsta ANSI SQL standartus, tostarp tādas funkcijas kā triggeri, uzglabātās procedūras un replikāciju. Binārās versijas ir sagatavotas Linux, Windows, macOS un Android sistēmām.
Galvenās jaunās funkcijas:
- Ieviešta iespēja veikt operācijas daudzvērtīgā režīmā. Paralelizācija vairākās straumēs ir piemērojama indeksu izveidei, atkritumu savākšanai (automātiskas un manuālas operācijas sweep), rezerves kopiju izveidei un atjaunošanai no tām. gfix -sweep -parallel 4 dbname gbak -b -par 4 -user username -pass password dbname backupname
- Ievesta daļējā indeksu atbalsts, kas iekļauj tikai atlases ierakstus, kas atbilst noteiktajiem nosacījumiem indeksu izveides laikā. CREATE INDEX IT1_COL ON T1 (COL) WHERE COL < 100;
- SELECT WITH LOCK, UPDATE un DELETE izteikumos ir ieviests sintakse „SKIP LOCKED”, kas ļauj izslēgt ierakstus, kuriem ir uzlikta bloķēšana pieteikuma nosūtīšanas brīdī (piemēram, lai nevajadzētu gaidīt bloķēšanas atbrīvošanu, ja notiek krustojums ar citu darījumu).
- Ievesta iespēja atjaunināt datubāzi uz aktuālo starpslāņa versiju (ODS — On-Disk-Structure) uz vietas (inline update) bez rezerves kopijas izveides un atjaunošanas. Piemēram, tagad var uz vietas pārvērst datubāzi, kas ir Firebird 4.0 formātā (ODS 13.0), Firebird 5.0 formātā (ODS 13.1).
- Ieviesa automātiski apkalpotu kompilēto SQL izteiksmju kešu (novecojuši ieraksti tiek dzēsti pēc vajadzības). Keša lielumu var noteikt, izmantojot parametru MaxStatementCacheSize failā firebird.conf.
- Ievesta SQL un PSQL profilēšanas saskarne, kas ļauj novērtēt katra pieprasījuma izpildes laiku, uzkrāt statistiku par pieprasījumu skaitu un noteikt veiktspējas problēmas.
- MERGE izteikumam pievienots atbalsts nosacītajam blokam „WHEN NOT MATCHED BY SOURCE”, kas tiek aktivizēts, kad sākotnējais ieraksts neatbilst nevienam mērķa kopas ierakstam. 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
- Tiek nodrošināta iespēja atgriezt vairākas rindas ar izteiksmi RETURNING, ja norādītais DML izteikums aptver vairākas rindas (iepriekš šādās situācijās tika parādīta kļūda „multiple rows in singleton select”).
- Pievienotas jaunas iebūvētas funkcijas: UNICODE_CHAR, kas atgriež Unicode simbolu, kas atbilst dotajam kodam, un UNICODE_VAL, lai atgrieztu kodu dotajam simbolam. Funkcijās EXTRACT, FIRST_DAY un LAST_DAY pievienots parametrs QUARTER, lai noteiktu ceturkšņa numuru.
- Pievienots jauns sistēmas pakotne RDB$BLOB_UTIL ar operāciju kopumu BLOB datu apstrādei PSQL moduļiem.
- Uzlabota ierakstu saspiešanas algoritma darbība, kas tagad izmanto mainīga garuma skaitītāju efektīvākai atkārtotu datu secību iepakošanai. Optimizācija ievērojami palielināja saspiešanas pakāpi nepilnībā aizpildītu garo VARCHAR lauku, kuros ir UTF-8 kodējuma dati.
- Pievienota iespēja strādāt ar divvirzienu kursoru (scrollable) piekļūstot datubāzei attālināti.
- Veikta veiktspējas optimizācija BLOB datu kopēšanā.
- Pievienota pilnīga virkņu definēšanas sintakses atbalsta atbalsts, kas aprakstīts SQL standartā. Piemēram, virknes tagad var būt pārtraukta ar komentāriem vai atstarpēm: select ‘ab’ comment ‘cd’ from RDB$DATABASE; select ‘ab’ ‘cd’ from RDB$DATABASE;
Avots: opennet.lv
