Jos olet työskennellyt paljon SQL:n parissa, olet luultavasti käyttänyt jonkinlaista SQL-IDE-ohjelmaa, joka auttaa sinua työn suorittamisessa. Kyllä, on mahdollista tehdä kaikki SQL:ssä komentoriviltä; mutta tietokantojen ja taulukoiden luominen tai edes ylläpitäminen sillä tavalla on masokismia. On olemassa hienoja kaupallisia IDE-ohjelmia, kuten dbArtisan ja SQL Serverin Management Studio, mutta IDE-ohjelmat ovat yksi alue, jolla avoimen lähdekoodin ohjelmat pärjäävät yhtä hyvin (tai joissakin tapauksissa jopa paremmin).
Tämä on erityisen tärkeää, koska pilvipalveluiden (eli SAAS-palveluiden) vaikutus alkaa tuntua kaupallisilla tietokantamarkkinoilla. Syitä ovat muun muassa palveluntarjoajien lisääntynyt avoimen lähdekoodin tietokantojen käyttö sekä NoSQL:n kaltaisten vaihtoehtojen yleistyminen. Statista-sivuston mukaan kaupallisista tietokannoista saatavat maailmanlaajuiset tulot laskevat edelleen tulevina vuosina.
Tähän artikkeliin valitsemani viisi SQL-asiakasta ovat Squirrel, HeidiSQL, DBeaver, Tora ja OmniDB. Olen käyttänyt HeidiSQL:ää ja Squirrelia jo jonkin aikaa, joten aloitetaan jälkimmäisestä.
Squirrel
Squirrel oli suosittu asiakasvalinta pankissa, jossa työskentelin viisi vuotta sitten, koska he suosivat Javaa, ja sillä se on kirjoitettu. Sybasea käytettiin myös paljon (se ei ollut aivan suosituin tietokanta), ja Squirrel on yksi harvoista asiakkaista, jotka voivat keskustella sen kanssa. (Jos pidät kirjaa kotona, Sybase oli myös SQL Serverin esi-isä.) Squirrel sopii kaikkiin tärkeimpiin tietokantoihin (Oracle, DB2, Informix, Ingres, SQL Server, SAPDB ja Sybase) sekä moniin muihin tietokantoihin, ja sillä on 17 vuoden kokemus.
Mutta Squirrel kiellettiin lopulta pankin tuotannossa, lähinnä sen vuoksi, että se pystyi tukemaan samanaikaisia istuntoja useiden tietokantojen kanssa. Pari kertaa sen muisti loppui kesken, mikä aiheutti ongelmia live-tietokantojen kanssa; siitä se sai punaisen kortin. Kattavuuden vuoksi (JDBC:n ansiosta) se on erittäin suositeltava, mutta tarkkaile, kuinka monta istuntoa käytät; mitä enemmän muistia sinulla on, sitä parempi.
HeidiSQL
Hyvin yli puolet Squirrelistä vanhempi HeidiSQL on ollut henkilökohtainen suosikkini viimeisten kolmen vuoden ajan. Sen tietokantavalikoima on rajoitetumpi (saat vain MySQL/MariaDB:n, SQL Serverin ja PostgreSQL:n), mutta monille se riittää. Olen havainnut sen erittäin nopeaksi, mikä on elintärkeää esimerkiksi 29 miljoonan rivin taulukon kaltaisissa projekteissa; select count (*) SQL-komento MariaDB:tä vastaan, joka on käynnissä tietokoneellani, kestää noin kaksi minuuttia.
Luulen, että suuri osa nopeudesta johtuu siitä, että se käyttää omia ajureitaan ja muodostaa yhteyden suoraan, ei ODBC:n kautta. Erityisen hyviä ovat tuonti/vientiominaisuudet ja eräajona tapahtuva tuonti: Voit ajaa suuria SQL-tiedostoja (kuten varmuuskopioiden vientiä) suoraan lataamatta niitä kyselyikkunaan.
Toinen mukava ominaisuus: Kun kirjoitat SQL-kyselyä, parhaillaan valitun taulukon sarakkeet näkyvät toisessa ikkunassa yhdessä SQL-funktioiden ja avainsanojen sekä omien pätkien kanssa. Kun työskentelet sekä live- että kehitystietokantojen kanssa, suurten tietolohkojen helppo siirtäminen on erittäin tärkeää.
HeidiSQL on tarkoitettu Windowsille, mutta sitä voi käyttää myös muualla Wine-emulaattorin kautta Linuxissa ja Macissa (mutta rehellisesti sanottuna käyttäisin yhtä mielelläni joko Squirreliä tai DBeaveria).
DBeaver
DBeaver on toinen Java-käyttöjärjestelmällä varustettu SQL-asiakasohjelma; JDBC-liittimen tavoin sillä on suuri joukko tietokantoja, joihin se voi muodostaa yhteyden. On olemassa Enterprise-versio, joka sisältää NoSQL-tietokantatuen (Cassandra, MongoDb ja Redis), mutta yhteisöversio on se, jota olen tutkinut.
Yhteysvelhosta voi kokeilla laajaa luetteloa tietokannoista; valitsin SQLiten, koska minulla on 600 megatavun kokoinen tietokanta, joka on luotu erästä projektia varten pari vuotta sitten. Se toimi tuon tietokannan kanssa moitteettomasti, ja olin vaikuttunut. Vaikka suosin edelleen HeidiSQL:ää, käyttäisin erittäin mielelläni DBeaveria, jos siihen tarjoutuisi tilaisuus.
Yksi huomioitavaa: DBeaver ei asenna ajureita heti alussa, vaan hakee ne sitä mukaa, kun niitä tarvitaan (tämä on hyvin ”Eclipse-henkistä”). Tämä johtuu luultavasti siitä, että se on rakennettu Eclipse-alustalle, joten jos olet tottunut siihen, tunnet olosi kotoisaksi. Minulla ei ainakaan ollut mitään ongelmia sen kanssa; se tuntui erittäin nopealta. Vientimuotojen valikoima sisältää CSV:n, HTML:n ja XML:n sekä JSON:n ja Markdownin.
Javan etuna sekä tässä että Squirrelissä on se, että et ole rajoitettu alustan mukaan; DBeaver sisältää sekä Debian- että RPM-asennukset Linuxille sekä Windowsille ja Macille.
Tora
Valitsin Toran yhdeksi viidestä C++-kielellä kirjoitetusta ohjelmasta siksi, että se tukee Oraclelle ja että siinä on PL/SQL-ohjelman debuggeri. Se on cross-platform ja testattu GCC:llä, Clangilla ja MSVC 2013/2015:llä. Oraclen lisäksi se tukee MySQL:ää, PostgreSQL:ää ja muita tietokantoja ODBC:n kautta. Siitä tuli avointa lähdekoodia 13 vuotta sitten.
Kuten arvata saattaa, Tora käyttää Qt:tä käyttöliittymässä ja on nopea, mutta se tuntuu hieman vanhanaikaiselta, varsinkin kun se muodostaa yhteyden MySQL:ään. Jos työskentelet Oraclen kanssa, eikä sinulla ole kaupallista ohjelmistoa, käytä Toraa; mutta MySQL/PostgreSQL:n tai minkä tahansa HeidiSQL:n kanssa Squirrel ja DBeaver on luultavasti parempi.
OmniDB
OmniDB on hieman erilainen kuin muut. Se on kirjoitettu Pythonilla ja asentaa paikallisen web-palvelimen ja selaimen. Tuettuja tietokantoja ovat Oracle, MySQL, MariaDB ja PostgreSQL. SQLite-, SQL Server-, DB2- ja Firebird-tietokantoja ei tällä hetkellä tueta, mutta ne ovat selvästi roadmapissa.
En yleensä ole web-käyttöliittymien ystävä, mutta tämä näytti hyvältä ja toimii erittäin hyvin. HeidiSQL ja DBeaver tarjoavat paremman tuonnin/viennin, mutta OmniDB on avoin ehdotuksille tulevaa kehitystä varten. Samoin kuin kaksi Java-asiakasta, OmniDB on cross-platform, ja sen ulkoasu on nykyaikaisin.
Conclusion
Olen tottunut HeidiSQL:ään, mutta DBeaverin ominaisuudet tekivät minuun vaikutuksen. Squirrel on erittäin vankka ja kypsä. OmniDB näyttää kivalta, vaikka se onkin ominaisuuksiltaan tällä hetkellä hieman kevyt; ei varmaan arvaisi, että se käyttää Django CMS:ää. Tora on aika hyvä, mutta kaipaisi parempaa liitettävyyttä.