Obvyklé problémy s SQL

Ne každý programátor má dostatečné zkušenosti s formulací relačních dotazů, ne každý výkonnostní problém je zřejmý už při psaní SQL dotazu, ne každý SQL dotaz je vyhodnocen tak jak bychom očekávali, a ne každý problém se projeví při zběžném otestování. Jednou z mých povinností u předchozího zaměstmavatele byl také dohled nad výkonem aplikací  nad PostgreSQL databází a identifikace problematických SQL dotazů, setkával jsem se s velkým množstvím "rozbitých" SQL dotazů jejichž osobní "hitparádu" prezentuji v tomto seriálu několika volně navazujících článků.

SQL Puzzlers

Pokud programujete v Javě, možná znáte pojem "Java puzzler", případně knihu Java Puzzlers: Traps, Pitfalls, and Corner Cases od Joshuy Blocha. Pojem "puzzler" označuje kus kódu který se, díky využití různých opomíjených či málo známých vlastností a zvláštností, nechová dle očekávání. Ale proč by puzzlery kromě Javy nemohly existovat i v jiných jazycích - například v SQL?

Git - uživatelská příručka

Nedávno jsem se chtěl (resp. potřeboval jsem se) naučit pracovat s verzovacím systémem git. Překlad oficiálního uživatelského manuálu ke gitu jsem nikde bohužel nenalezl, a vzhledem k tomu že se podobné věci nejjednodušeji učím tak že si je píšu, rozhodl jsem se tento překlad vypracovat sám. Jednotlivé kapitoly budu postupně publikovat ve formě samostatných článků, tak jak budu v překladu postupovat.

CryptoPIM

Cílem projektu je vývoj jednoduchého webového PIM nástroje (kontakty, úkoly, kalendář, ..) kladoucího důraz na bezpečnost dat uložených v DB PostgreSQL - k tomu je využíván contrib balíček pgcrypto a šifrovací schéma s unikátním klíčem pro každého uživatele.

PhpChart

Pokud potřebujete jednoduchou PHP knihovnu pro generování základních grafů, podívejte se na tento projekt. Vznikl jako součást projektu pgMon, konkrétně pro vykreslení sesbíraných dat, ale lze ho použít i samostatně.

Tento projekt je hostován na sourceforge.net, a to na adrese http://timechart.sf.net (resp. http://apps.sourceforge.net/trac/timechart/).

PGMon

Monitorování využívání databáze je velice důležitou součástí životního cyklu aplikace a jejího ladění - PostgreSQL k tomuto účelu poskytuje pohled pg_stats (a další pg_stat_* pohledy), ale neposkytuje žádné informace o historii a bez tekové informace o kontextu nelze odhalit podezřelé vzory (například skokové zvýšení počtu "dead tuples") apod. Tento projekt si klade za cíl nástroj pro sběr, zobrazování a analýzu takových historických dat.

Tento projekt je hostován na sourceforge.net, a to na adrese http://pgmonitor.sf.net (resp. http://apps.sourceforge.net/trac/pgmonitor/).

PgAnalyze

Při provozování webových aplikací nad PostgreSQL, je užitečné monitorovat SQL dotazy průběžně, tak aby bylo možné odhalit pomalé / nedostatečně optimalizované dotazy co nejdříve. Tento nástroj by vám měl dát zajímavé informace o každém z podezřelých dotazů.

OpenStats

Takže pracujete na webové aplikaci ale potřebujete flexibilní způsob jak logovat a počítat statistiky návštěvnosti. No, možná tento projekt je řešením které hledáte - je založen na PostgreSQL (ale nemělo by být příliš složité ho portovat na jinou databázi).

Tento projekt je hostován na sourceforge.net, a to na adrese http://openstats.sf.net (resp. http://apps.sourceforge.net/trac/openstats/).