Első akadály: Management
eszközök
• Oracle:
Quest Toad
Quest SQL Navigator
PL/SQL Developer
• PostgreSQL:
pgAdmin (korlátozott használhatóság)
Navicat for PostgreSQL
EMS SQL Manager for PostgreSQL
Process management
• Oracle:
Ha beragadt valami, akkor célszerűbb operációs
rendszer szintjén kilőni. Van, amikor SQL-ből is
leállítható, de a tapasztalatok szerint ritkán sikerül
feloldani. (Viszont ritkábban ragadnak be például
queryk, mert azok leállíthatók).
• PostgreSQL:
db-ből többnyire minden feloldható. Ha nem, akkor itt is
le kell menni operációs rendszer szintjére. Sajnos egy
elengedett query gyakran nem állítható le.
Jobok
• Oracle:
Jobok: beépített funkció, jól használható.
• PostgreSQL:
pgAgent: utólagos komponens, csak pgAdminnal
managelhető (1.9+). Működésre jó, de több problémával
szembesülhetünk:
-Gyengén managelhető
-Esetleges beragadás feloldása nehézkes.
Backup/Restore
• Oracle:
Rman: jól működik, de körülményes, elavult, és lassú.
(Ha valaki nem gyűlöli szívből kérem tegye fel a kezét...)
• PostgreSQL:
pgDump: jól működik, egyszerű, aránylag gyors. Igaz
más elven működik, és nagy adatbázisoknál (100Gb+)
biztos hogy nagyon lassú (valakinek tapasztalat?)
Hintek hiánya
Alapvetően ízlés dolga, de sokkal lazább és könnyebben
variálható, mint az „oldschool” SQL. Left join Oracle-ben:
select
cust.customer_id,
cust.customer_name,
task.contract_id,
task.contract_desc,
serv.service_code,
serv.type_desc,
serv.fee_huf
from
customers cust,
contact task,
service serv
where
cust.id=task.parent_id(+) and
task.id=serv.parent_id(+)
Joinok, performancia.
Maradjunk egy kicsit a left join-nál.
Oracle-ben (és minden másban) alapvetően
megszokott, hogy a halmazműveletek
lassabbak, mint egy bármilyen
összekapcsolás.
PostgreSQL-ben az a tapasztalat, hogy a
left-right join performanciája annyira
rossz, hogy ugyanazt az eredményt
halmazműveletekkel sokkal gyorsabb
elvégezni.
Indexelés
Minden –nagy adattartalommal rendelkező- adatbázisnál
probléma lehet, hogy az indexelés ellentétes hatást vált ki
lekérdezéseknél, mint amit várnánk tőle. (100 millió+os
táblák esetén általában, db platformonként változó).
PostgreSQL esetében sokkal kisebb adattartalom mellett is
megfigyelhető, hogy nem segít az indexelés a futási
időkön. (már 300-500.000 sortól!).
DB Link
Meg kell emlékeznünk az adatbázis linkekről is, amely
sajnos a PostgreSQL-nek nem nagy fegyvere.
A kapcsolat létrehozása könnyű, de lekérdezés a távoli
adatbázisból körülményes, nincs visszajelzés, ha valami
mégsem jó. Példalekérdezés dummy1 távoli DB-be:
SELECT dblink_send_query(‘dummy1', 'SELECT * FROM foo WHERE f1<
3');
Elég körülményes...
Azért fel a fejjel!
Ne feledjük, hogy a PostgreSQL egy ingyenes adatbázis
platform és annak kiváló!
Amellett, hogy az elmondott akadályokba ütközünk, mindig
van megoldás, és ha nem Oracle-re vagyunk szokva, akkor
valószínűleg nem is éljük meg problémaként ezeket.
Alapvetően működik, még adattárházként is.
Tehát ha low budget mellett kell egy jó adatbázist
építenünk, bátran ajánlom mindenkinek, azoknak is ,akik
az Oracle aranykalitkájából repülnek ki, mint jómagam