Ano, mnoho lidí tvrdí, že to co se naučili ve škole se v praxi tak dělat nedá. Je to asi jejich omluva pro to, aby to mohli nabastlit jak jim to od ruky upadne.
Co se týče optimalizace, dle mé praxe plyne, že je důležité zejména pochopit návrh db, tedy alepoň normální formy. Potom už to db engine zpracuje vyhovujici rychlosti. Když se použijí vhodné datové typy a funkce k nim, je to už skoro dokonalé. Další optimalizace už záleží na situaci.
Co z praxe považuji za horší je to, že v praxi vlastně nikdo neví (konkrétně zadavatel), co se do té DB bude dávat a co získávat. Neexistuje žádný model dat, před samotnou analýzou a všechno se bastlí za běhu. Takže i DB schémata, které na počátku mají hlavu a patu se po x iteracích změní na 40 záznamů typu VARCHAR (255), a to jen proto, že dodavatel dat v průběhu používání programu 80x změnil formát dat (zdravíme státní zprávu).