Most web tasks are completely I/O bound anyway, the significance in making the few business logic decisions is minimal.
My favourite example: slurping an entire category table on each page load and then using an O(n^2) loop to rebuild the navigation tree. On a cold cache, they had request times (server-side) of 7 seconds.
Rewriting to a recursive CTE brought the page load time (client-side) down to below 100 ms, even on a cold cache.