Pas dy vjet e gjysmë zhvillimi, u prezantua lëshimi i bazës së të dhënave relacionale Firebird 5.0. Firebird vazhdon zhvillimin e kodit të bazës së të dhënave InterBase 6.0, e hapur në vitin 2000 nga kompania Borland. Firebird shpërndahet nën licencën e lirë MPL dhe mbështet standardet ANSI SQL, duke përfshirë mundësitë si trigger-at, procedurat e ruajtura dhe replikimin. Ndërtime të binarëve janë përgatitur për Linux, Windows, macOS dhe Android.
Novitetet kryesore:
- ĂshtĂ« realizuar mundĂ«sia e kryerjes sĂ« operacioneve nĂ« modin shumĂ«fizik. Paralelizimi nĂ« disa procese Ă«shtĂ« i aplikueshĂ«m gjatĂ« krijimit tĂ« indekseve, grumbullimit tĂ« plehrave (operacione automatikĂ« dhe manualĂ« sweep), krijimit tĂ« kopjeve rezervĂ« dhe rikuperimit nga to. gfix -sweep -parallel 4 dbname gbak -b -par 4 -user username -pass password dbname backupname
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r indekset e pjesshme, tĂ« cilat pĂ«rfshijnĂ« vetĂ«m regjistrat e zgjedhur qĂ« pĂ«rputhen me kushtet e caktuara nĂ« momentin e krijimit tĂ« indeksit. 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, në mënyrë që të mos pritet shlyerja e bllokimit kur përputhet me një transaksion tjetër).
- ĂshtĂ« shtuar mundĂ«sia pĂ«r tĂ« pĂ«rditĂ«suar DB nĂ« versionin aktual ndĂ«rmjetĂ«s tĂ« strukturĂ«s sĂ« magazinĂ«s (ODS - On-Disk-Structure) nĂ« fluks (inline update) pa krijimin dhe rikuperimin 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Ă« cache i shprehjeve SQL tĂ« kompiluara, e cila administrohet automatikisht (regjistrat e vjetra pastrohen sipas nevojĂ«s). MadhĂ«sia e cache-it pĂ«rcaktohet pĂ«rmes parametrin MaxStatementCacheSize nĂ« firebird.conf.
- ĂshtĂ« shtuar njĂ« ndĂ«rfaqe pĂ«r profilimin e SQL dhe PSQL, e cila lejon vlerĂ«simin e kohĂ«s sĂ« ekzekutimit tĂ« çdo kĂ«rkese, akumulimin e statistikave mbi numrin e kĂ«rkesave dhe identifikimin e problemeve me performancĂ«n.
- Në shprehjen MERGE është shtuar mbështetje për bllokun kushtues "WHEN NOT MATCHED BY SOURCE", i cili aktivizohet kur regjistri origjinal nuk i përputhet asnjë regjistri 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Ă« shumĂ« rreshtave pĂ«rmes shprehjes RETURNING, nĂ«se shprehja DML pĂ«rfshin disa rreshta (mĂ« parĂ«, nĂ« situata tĂ« tilla, shfaqej njĂ« gabim "multiple rows in singleton select").
- Funksione të reja të integruara janë shtuar: UNICODE_CHAR për kthimin e simbolit unicode që përputhet me kodin e caktuar dhe UNICODE_VAL për kthimin e kodit për simbolin e caktuar. Parametri QUARTER për përcaktimin e numrit të tremujorit është shtuar në funksionet EXTRACT, FIRST_DAY dhe LAST_DAY.
- Një paketë e re sistemore RDB$BLOB_UTIL është shtuar me një koleksion operacionesh mbi BLOB-të për modulet PSQL.
- Algoritmi i kompresimit të regjistrimeve është përmirësuar, tani duke aplikuar një numërator me gjatësi variabel për paketimin më efikas të sekuencave të të dhënave të përsëritura. Optimizimi ka lejuar rritjen e ndjeshme të shkallës së kompresimit të fushave VARCHAR me gjatësi të gjatë që nuk janë plotësisht të mbushura me të dhëna në kodimin UTF-8.
- ĂshtĂ« shtuar mundĂ«sia e punĂ«s me pamjet dyanshĂ«m (scrollable) gjatĂ« qasjes nĂ« distancĂ« nĂ« DB.
- Optimizohet performanca e kopjimit të BLOB-eve.
- ĂshtĂ« shtetur plotĂ«sisht sintaksa e pĂ«rkufizimit tĂ« vargjeve, e pĂ«rshkruar nĂ« standartin SQL. P.sh., vargjet tani mund tĂ« ndahen nga komente ose hapĂ«sira: select âabâ /* comment */ âcdâ from RDB$DATABASE; select âabâ âcdâ from RDB$DATABASE;
Burimi: opennet.ru
