Po delší odmlce, způsobené prázdninami a také vývojem externího chat programu, chci opět přiblížit další postup prací na programu. V nejbližší době vypustím build 333. Tato verze bude mít odstraněný chat a několik "přílepků" z poslední doby, které mohly mít vliv na rychlost programu. Mezi další úpravy patří také implementace další databáze. Více info v článku
Již delší dobu mne trápí rychlost databáze FSSQL. Díky tomu jsem před časem vypustil i verzi s databází Firebird, která ale z neznámých příčin dělala zase jiné problémy, hlavně u síťového připojení více PC.
Poslední 2 týdny jsem věnoval experimentům s rychlostí databází. Ještě před prázdninami jsem uvažoval o MySQL, která se však ukázala jako nevyhovující díky svým pomalým odezvám na jednoduché výběry (typ 300ms). Složité výběry zase oproti Firebirdu byly značně rychlejší (výběr z 500 000 záznamů typ. 500ms).
Mezi testované databáze jsem zařadil pokud možno ty, které nevyžadují žádné DLL (jako u Firebirdu) a jsou přikompilovány k aplikaci.
1. AbsoluteDB - rychlost zápisu dobrá, ale výběr záznamů již značně pokulhává - typ. 4,5sec (WR 65000 QSO - 3m)
2. Accucer - rychlost zápisu vyhovuje, start transakce však nemá vliv na rychlost, špatná podpora čísla záznamu. (WR 65000 QSO - 3m20s)
3. NexusDB - vzhledem k tomu, že vychází ze stejné databáze jako FSSQL tj. FlashFileru - nevyhovuje rychlostí jednotlivých zápisů/čtení. (WR 65000 QSO - 2m30s)
4. ElevateDB - zápis cca 3x rychlejší než Accucer, 2x rychlejší než Firebird, čtení podle aktuálního zjištění také rychlé. Drobnou nevýhodou je, že se nejedná o databázi v jednom souboru. (WR 65000 QSO - 1m10s)
Pro další vývoj jsem tedy v tuto chvíli vybral databázi ElevateDB. Jedná se o komerční typ DB, takže mě tato "sranda" bude něco stát (cca 280USD). Pokud by se tím vyřešilo několik zásadních problémů, stojí mi to za to. Podařilo se mi upravit kód deníku tak, aby nebylo nutné mít pro dva druhy databází také dva samostatné programy. To eliminuje v budoucnu problémy s dvojitými úpravami kódů a případným chybám. V zimních měsících podle možností začnu s kompletním přepisem kódu tak, aby se definitivně daly dokupy veškeré nádstavby. Nejspíš pro tento účel vyberu i vyšší verzi vývoj. prostředí. Databáze je placená pro vývojáře, další použití uživateli je Royalty free.
Množí se různé negativní reakce na rychlost programu, registruju je, pracuju na tom, ale není jednoduché řešit zásadní otázky rychlosti u systému, který je založený na SQL databázi, jehož rychlost nelze téměř nijak ovlivnit. Programy využívající textových souborů a zpracovávající data v paměti budou vždy rychlejší. Já jsem volil spíš bezpečnost dat díky databázovému serveru.
73! Robin OK2UWQ