dBeaver vs SquirrelSQL

SQLDevelopert cseréltem le (a munka 99%-ban) egy portable SQL Editorra. A prioritások a következőek voltak:

  • gyorsan induljon és a lehetőségekhez képest egyszerűen kapcsolódjon az Oracle adatbázishoz
  • könnyen és gyorsan lehessen SQL parancsokat kiadni
  • opcionális: egyszerre több SELECT eredménytábláját is mutassa
  • opcionális: a Stored Procedure-öket könnyen lehessen változtatni benne
  • opcionális: adott tábla kapcsolatait is mutassa meg

[blackbirdpie url=”https://twitter.com/butcher__51/status/428202551776129025″]

Saját kútfőmből a régebben is használt fapados Java alapú SquirrelSQL-t szedtem elő, valamint Twitteren érkezett tippként a dBeaver-t is kipróbáltam.

Az összehasonlítás koránt sem teljes, mert egész biztosan nem használtam ki egy csomó feature-t. Ha úgy gondoljátok, hogy egyes általam negatívumként említett dolgot egy apró mozdulattal meg lehet változtatni, ne habozzatok erről engem is értesíteni 🙂

Az első próbafutamok után egyébként nagyrészt mindkét programmal elégedett voltam, és teljes mértékben egy sokkal kellemesebb munkafelületet adtak, mint amit az SQLDeveloper kínált.

SquirrelSQL

Már régebb óta is használtam, elég tűrhető, default installban fapados design-ú SQL Editor. JAR file-ban lehet letölteni a “telepítőjét”, ami nem csinál mást, mint hogy kicsomagolja magát és pár beállítást elvégez nekünk (például elvileg elhelyez egy Oracle drivert, gyakorlatilag azonban nem találta meg, amikor tiszta lappal újratelepítettem, hanem nekem kellett bemásolnom a ojdbc6.jar-t ).

Ha az ember első indítás után nem lesz rosszul a klasszikus Java Swing kinézettől, és hajlandó átállítani pl. a “TinyLookAndFeel”-re a kinézetet, akkor egy egész kulturált kinézetű editort kap. Ugyanakkor vannak vicces designok is, pl. a “szalvéta” elég meglepő eredményt mutat, esetleg egy Startup Business Case-ében használnám (nem) viccnek, de hosszú távon idegesítene. Használni persze nem kötelező, nekem a fenti verzió jött be 🙂

A kezdeti nehézségeket leküzdve pozitív tapasztalatokkal fogunk gyarapodni. Az elmentett adatbázishoz gyorsan kapcsolódik (a szűk keresztmetszet a szerver), bár a táblák, view szimpla klikkelésére betölti annak adatait, de elvárható módon a háttérben végzi ezt és nem rántja magával az egész gépet (mint pl. az SQLDeveloper az esetemben).  A táblákat lehet filterezni, a mi adatbázisunkban cirka két tonna tábla van, amire igaz a 80-20 elv: az esetek 80%-ában a táblák kevesebb, mint 20%-ára van szükségem. Egy jól beállított táblanév filter idegeket menthet.

Az SQL Editor része egyszerű, a már kiadott parancsokat a program bezárása után is megőrzi – ha ezt nem felejtjük el, akkor nagyon kellemes Script archívot tudunk összegyűjteni.

Kifejezetten tetszik benne, hogy ha fejben megvannak a használandó táblák, akkor nagyon sok minden el tudunk végezni anélkül, hogy az egér után kellene nyúlkálni.

Minden egyes kiadott parancs eredménye külön eredménytáblába kerül. Apró hátrány (de mindenképp meg kell említeni), hogy az SQL parancs begépelése közben a táblalista másik fülön van, extrém hosszú és megjegyezhetetlen nevű tábláknál (yippi!) hátrány. Cserébe nem próbál állandóan frissített tooltippel idegesíteni, hogy melyik táblanevet használjam (SQLDeveloper feature), viszont egyszerűen lehet az Objects listából  táblanevet másolni.

A legtöbb esetben elég egyetlen editort megnyitni, mert az SQL parancsokat akár egyesével is ki lehet adni, de persze tetszőleges számú parancsablakot létrehozhatunk.

Tartozik hozzá egy “Graph” Plugin, amivel akár SQL Selecteket is összedobhatunk, de használhatjuk pl. táblák közötti kapcsolatok bemutatására is. Használata nem túl intuitív de legalább gyorsabban hozz létre a képet, mint a dBeaver.

A Stored Procedure-öket rendben megmutatja, de a szerkesztésükre még nem találtam annyira kézenfekvő megoldást, amit az SQLDeveloper kínál.

Ezzel a felsorolással egy híján (Stored Procedure) minden feladatot elvégez.

dBeaver

Az első 5 másodpercben sokkal kellemesebb élményt okoz, mint az SquirrelSQL: csak ki kell csomagolni, helyből tartalmazza az Oracle plugint és köszönhetően az RCP kliens háttérnek, szemnek lényegesen tetszetősebb a legelső kép. Ennek következtében se ojdbc6.jar-t nem kellett vadásznom, sem pedig LookAndFeel-t változtatnom.

Innentől kezdve sok szempontból fogadott ugyanaz az élmény, mint a SquirrelSQL-nél, amit nem is részletezek, inkább a különbségekre fordítom a hangsúlyt.

Egy szinttel többet kell klikkelnem, hogy a táblák listájához eljussak, cserébe csak duplaklikkre tölti be az adatokat. A listánál ugyanakkor az az érzésem, hogy az eggyel több szint miatt (fastruktúrában jeleníti meg a dBeaver is) több a whitespace a táblanév előtt és mindenképp scrolloznom kell a táblanevekhez. Illetve talán az RCP kliens felépítés miatt az az érzésem, hogy több üres terület van, mint a Squirrel-nél, ami néhány esetben kifejezetten zavar. Ugyancsak zavar, hogy nem tudok a táblanevek között keresni vagy szűrni, legalábbis nem találtam meg gyorsan a kapcsolót. Megtaláltam a táblanevek szűrési lehetőségét is!

A script képernyőt legelőször külön meg kellett nyitni, azóta ott csücsül a helyén. Egy script képernyőben csak egy eredmény táblázat van, cserébe tetszetősebb módon lehet a tetszőleges számú script fület megnyitni.

A script-hez kapcsolódó élmény még, hogy automatikusan bezárta az idézőjeleket és a zárójeleket, amitől engem kiráz a hideg, de ez szerencsére beállítható.

A táblaneveket a dBeaver sem ajánlja ki (se lassan, se gyorsan), viszont az adatbázis fastruktúrája továbbra is látszik a képernyőn. Ekkor vettem észre, hogy a táblanév alatt több információt kínál fel a fastruktúra elemeként, mint a Squirrel.

Ahogy a Squirrelnél említettem, a táblakapcsolat grafikája lassabban töltődött be, és első körben kevesebb adatot is mutatott: konkrétan csak a táblaneveket. Mivel innen egy gyors klikkel minden attribútumot megmutatott, ezért ez kifejezetten pozitív tényező, mivel a Squirrelnél nincs finomhangolási lehetőség.

A Stored Procedure-ök pont úgy szerkeszthetőek, mint az SQLDevelopernél, ami hatalmas jó pont.

SquirrelSQL vs dBeaver

Ha a két program közül csak egyet használhatok, akkor pont annyira nehezen tudnék dönteni, mint ha az lenne a kérdés, hogy melyik egészséges fogamat húzzák ki. Mindkét program tetszett és mindkét programban van legalább egy olyan feature, ami a másiknál vagy nyögvenyelősebb vagy kevésbé tetszetős.

A SquirrelSQL szubjektív szempontból élvez elsőbbséget: nagyon fontos tényező, hogy régebbről ismerem.

A dBeaver szebb, ha hozzászokok a másféle kinézethet, valamint ahhoz, hogy minden SQL parancsnak, aminek az eredményét meg akarom tartani új fület hozzak létre, akkor az RCP-s felület miatt (hiába no, 10+ éven át dolgoztam Eclipse-szel) inkább őt választanám.

Ha “gyorsan” akarom egy feladathoz lekérdezni a táblakapcsolatokat (és persze grafikusan bemutatni), akkor a Squirrel gyorsabb, ha dokumentációhoz akarom használni, akkor a dBeaver finomhangolásával látványosabb és használhatóbb képeket tudok létrehozni.

Miután megtaláltam a dBeavernél a táblaszűrés lehetőségét, úgy döntöttem, hogy hosszabb távon is esélyt adok neki. A háttérben ott marad a SquirrelSQL, sőt az is lehet, hogy időnként (megszokásból) azt fogom elindítani, de igyekezni fogok a hóddal hódolni az SQL gyönyöreinek.

Lesz, ami lesz.