Hacker News new | ask | show | jobs
by forgotpw1123 3339 days ago
I don't like Oracle DB really, but there's one feature that does stand apart from Postgres. Oracle has an internal scheduler that works much like an OS scheduler, allowing you to set priority and resource usage for each user or connection. This made Oracle the go-to database for anyone that needs multi tenant support but wants to allow users to access their own database. If you allow database access its trivial to create a really slow query and the resource limiters prevent one tenant from ruining performance for everybody.

The best example of this is Salesforce, which has their own proprietary SQL-like query language that's clearly just a crappy front end to generate raw SQL to feed their Oracle DB's. Without Oracle's per-tenant limit this would be far too risky because of idiots making bad queries.

An better solution these days is to put each tenant in a Postgres container and let the OS control resource limits for them, but this wasn't an option until recently.

2 comments

Their own language prevents any kind of expensive queries. Besides that, they limit the amount of anything you can think of (queries, cpu time, memory, call, querytime).

Killing connections can be done in postgresql too. The reason for sf to be on oracle is probably history.

Is that feature available in Microsoft SQL Server?
Yes, there are resource controls in MS SQL server as well.