Pas dy vjet e gjysmë zhvillimi, është publikuar lëshimi i sistemit të menaxhimit të të dhënave të marrëveshjes Firebird 5.0. Firebird vazhdon zhvillimin e kodit të sistemit të menaxhimit të të dhënave InterBase 6.0, i hapur në vitin 2000 nga Borland. Firebird shpërndahet nën licencën e lirë MPL dhe mbështet standardet ANSI SQL, duke përfshirë mundësi si triggerat, procedurat e ruajtura dhe replikimin. Ndërtesat binarë janë përgatitur për Linux, Windows, macOS dhe Android.
Novitet kryesore:
- ĂshtĂ« realizuar mundĂ«sia pĂ«r tĂ« kryer operacione nĂ« modin shumĂ«-fushor. Paralelizimi nĂ« disa fije Ă«shtĂ« i aplikueshĂ«m gjatĂ« krijimit tĂ« indekseve, grumbullimit tĂ« mbetjeve (operacione automatike dhe manuale tĂ« sweep), krijimit tĂ« kopjeve rezervĂ« dhe rikthimit prej tyre. gfix -sweep -parallel 4 dbname gbak -b -par 4 -user username -pass password dbname backupname
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r indekset e pjesshme, qĂ« pĂ«rfshijnĂ« vetĂ«m regjistrat pĂ«rkatĂ«s, tĂ« cilĂ«t i pĂ«rkasin kushteve tĂ« shĂ«nuara gjatĂ« krijimit tĂ« indekseve. CREATE INDEX IT1_COL ON T1 (COL) WHERE COL < 100;
- Në shprehjet SELECT WITH LOCK, UPDATE dhe DELETE është realizuar sintaksa «SKIP LOCKED», e cila lejon përjashtimin e regjistrave për të cilët në momentin e dërgimit të kërkesës është vendosur një bllokim (për shembull, për të mos pritur heqjen e bllokimit kur ka ndërhyrje me një transaksion tjetër).
- ĂshtĂ« shtuar mundĂ«sia pĂ«r tĂ« pĂ«rditĂ«suar DB nĂ« versionin e saj tĂ« fundit tĂ« strukturĂ«s nĂ« disk (ODS â On-Disk-Structure) nĂ« fluks (inline update) pa krijuar dhe rikthyer nga njĂ« kopje rezervĂ«. PĂ«r shembull, tani Ă«shtĂ« e mundur tĂ« konvertohet nĂ« fluks DB nĂ« formatin Firebird 4.0 (ODS 13.0) nĂ« formatin Firebird 5.0 (ODS 13.1).
- ĂshtĂ« realizuar njĂ« kĂ«nd tĂ« automatikisht administruar pĂ«r shprehjet SQL tĂ« kompiluar (regjistrat nĂ« skedarin cache pĂ«rditĂ«sohen sipas nevojĂ«s). MadhĂ«sia e caches caktohet pĂ«rmes parametrit MaxStatementCacheSize nĂ« firebird.conf.
- ĂshtĂ« shtuar ndĂ«rfaqja pĂ«r profilizimin e SQL dhe PSQL, e cila lejon vlerĂ«simin e kohĂ«s sĂ« ekzekutimit tĂ« çdo kĂ«rkese, grumbullimin e statistikave mbi numrin e kĂ«rkesave dhe identifikimin e problemeve me performancĂ«n.
- Në shprehjen MERGE është shtuar mbështetje për bllokun kushtor «WHEN NOT MATCHED BY SOURCE», që aktivizohet kur regjistri origjinal nuk përputhet me asnjë regjistrë në grupin e synuar. 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
- ĂshtĂ« siguruar mundĂ«sia e kthimit tĂ« disa rreshtave me shprehjen RETURNING, nĂ«se shprehja e DML e dhĂ«nĂ« pĂ«rfshin disa rreshta (mĂ« herĂ«t, nĂ« raste tĂ« tilla jepeshin gabime «multiple rows in singleton select»).
- Janë shtuar funksione të reja të ndërtuara: UNICODE_CHAR për kthimin e simbolit unicode që përputhet me kodin e dhënë, dhe UNICODE_VAL për kthimin e kodit për simbolin e dhënë. Në funksionet EXTRACT, FIRST_DAY dhe LAST_DAY është shtuar parametri QUARTER për përcaktimin e numrit të tremujorit.
- ĂshtĂ« shtuar paketa e sistemit RDB$BLOB_UTIL me njĂ« grumbull funksionesh pĂ«r BLOB-et pĂ«r modulin PSQL.
- ĂshtĂ« pĂ«rmirĂ«suar algoritmi i kompresimit tĂ« regjistrave, i cili tani aplikon njĂ« numĂ«rues me gjatĂ«si tĂ« ndryshueshme pĂ«r njĂ« paketim mĂ« efikas tĂ« sekuencave tĂ« pĂ«rsĂ«ritura tĂ« tĂ« dhĂ«nave. Optimizimi ka lejuar njĂ« rritje tĂ« dukshme tĂ« shkallĂ«s sĂ« kompresimit tĂ« fushave tĂ« gjatĂ« VARCHAR qĂ« nuk janĂ« plotĂ«sisht tĂ« mbushura me tĂ« dhĂ«na nĂ« kodimin UTF-8.
- ĂshtĂ« shtuar mundĂ«sia e punĂ«s me kursore tĂ« dyanshme (scrollable) gjatĂ« qasjes rrjete nĂ« DB.
- ĂshtĂ« optimizuar performanca e kopjimit tĂ« blobĂ«ve.
- ĂshtĂ« siguruar mbĂ«shtetje e plotĂ« pĂ«r sintaksĂ«n e pĂ«rcaktimit tĂ« rreshtave, e cila pĂ«rshkruhet nĂ« standardin SQL. PĂ«r shembull, tani rreshtat mund tĂ« ndahen me komente ose hapĂ«sira: select âabâ /* comment */ âcdâ from RDB$DATABASE; select âabâ âcdâ from RDB$DATABASE;
Burimi: opennet.ru
