7 ms·
Far too brief. I would appreciate a really long text that would in a convincing manner explain why Postgres Is so awesome. I work in the industry, and all I s
by unixhero 10y ago
Far too brief.
I would appreciate a really long text that would in a convincing manner explain why Postgres Is so awesome.
I work in the industry, and all I see are Oracle and Sybase everywhere. The experts are zealots also, not even having heard of Postgres. Not willing to believe a word I'm saying about Postgres.
I am already convinced of course, but the industry is not. Not finance, not trading, not telecom.
- brightball 10y agohttp://www.brightball.com/articles/why-should-you-learn-postgresql http://www.brightball.com/articles/why-should-you-learn-post...
- ktRolster 10y agoNo one ever chooses Oracle or Sybase on technical merits. That is, although those two products may indeed have some merit, that is not why they are chosen.
- hughperkins 10y agoI've used oracle. Its awesome. Expensive. But awesome. If I have to pay, postgres is OK. But oracle is really really good. If they were laptop operating systems, postgres would be Debian, oracle would be Mac os x.
- malux85 10y agoCan you give a bullet point list aimed at someone who is very experienced at Postgres but has never used oracle? I'm curious of the corner cases and killer features that make you love oracle so much
- forgotpw1123 10y agoI 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.
- jbverschoor 10y agoTheir 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.
- robocat 10y agoIs that feature available in Microsoft SQL Server?
- forgotpw1123 10y agoYes, there are resource controls in MS SQL server as well.
- AlisdairO 10y agoDisclaimer: huge postgresql fanboy, use it whenever I get the chance A few things I've found great in Oracle that aren't (AFAIK) available in PG: - Straight better/more reliable performance on average - More advanced parallel queries (obviously this is changing in PG right now) - Flashback queries - Better materialized views - Plan stability (maintains predictable query performance, rather than the nasty jumps you sometimes see when plans change) - Better clustering story (RAC is super expensive but pretty good)
- reitanqild 10y agoOne thing I can remember was the automatic query advisor. It was actually good and very easy to activate. If you did activate it though you could expect a sizable extra invoice after next audit.
- eertami 10y agoHave you used 2017 OSX? Because comparing something to OSX doesn't make it sound "really really good".
- paulddraper 10y agoAnd by that I assume you mean macOS 10.12.
- deleted 10y ago[deleted]
- siscia 10y agoIt's not that I don't trust you but we are a technical community and I believe we all appreciate some more details...
- forgotpw1123 10y agoDid you know that Oracle forbids "unauthorized benchmarks" for any users of its database products? It's curious that a database with such amazing performance characteristics would not allow third party benchmarks against other products.
- paulddraper 10y ago[citation needed]
- anarazel 10y agoSearch for DeWitt clause and you'll find plenty interesting history. This unfortunately has become very common.
- forgotpw1123 10y agoHere's a link to a site I use frequently for these sorts of things. I apologize for not including a citation, I figured most people were familiar with it or similar services. https://www.google.com/search?num=100&q=oracle+benchmarks+agreement https://www.google.com/search?num=100&q=oracle+benchmarks+ag... The first result is a blank copy of a license agreement that they presumably forgot was on their website.
- paulddraper 10y agoCall me stupid all you want, but I was looking for a clause that prohibited running unauthorized benchmarks, and neither my nor your search results corroborate that. You aren't allow to publish benchmark results, a condition that is both upsetting and not at all unique as commercial databases go http://m.sqlmag.com/sql-server/devils-dewitt-clause http://m.sqlmag.com/sql-server/devils-dewitt-clause
- reitanqild 10y agoIn this particular case I think we can do fine without.
- nell 10y ago
- sidlls 10y agoYour last sentence isn't favorable for Oracle, in my opinion; the opposite in fact.
- reitanqild 10y agoI was doing advanced Oracle DBA work. It is awesome in a way but had some awful bugs (lost hours to installer bugs) and was topped up with dark patterns IMO (expensive features would be one click away) Edit: and can we stop pretending that OS X is better? It is different. Some people like that. Other has just as legitimate reasons to stay away. I spent 3 years on a Mac and went from really enthusiastic to really disappointed. I still defend others right to prefer it though and hope you'll defend my choice as well.
- sgt 10y agoPretending that OS X (or macOS) is better? Having been exposed to Linux on the desktop for more than a couple of decades, in addition to using OS X since 2003, my subjective opinion is that it's not only far more mature, but better in almost every conceivable way. That goes for casual users to developers. The ecosystem from Apple is maybe not perfect, but I still dare to use the word fantastic.
- reitanqild 10y agoI have a number of reasons to dislike it strongly [0]. But we are not supposed to argue over such things here. I'm just asking that Mac people respect that I and others way prefer other OS-es like Linux, BSD or even Windows. [0]: like 1.) not having consistent shortcuts for moving using the keyboard 2.) With two monitors the menu bar will be very far away when you work on the other monitor 3.) One Chrome window would block the other, preventing me from finding the instructions on the wiki while having a file select box open in another. Etc etc. This is before I start my rant about things more unrelated to their OS implementation like a) putting fn in the bottom left corner b) not giving me any chance to fix it c) the fact that many programs I want to use was either unavailable or looked horrible.
- sotojuan 10y agoIf you're going to make claims like these that will raise a few eyebrows, please give some details and reasons why you think Oracle is awesome. Otherwise, your comment is fairly useless.
- nimchimpsky 10y agolol. Any meat to this ? A specific feature missing in pstgres that makes it worth spending a few hundred thousand on oracle ?
- anarazel 10y agoAs somebody spending a large amount of my time working on postgres, and obviously being convinced PG is good: Of course people sometimes choose oracle on technical merits (I've not worked with modern sybase versions much, so I can't judge, although some sybase IQ numbers look interesting). Golden Gate, RAC, Management Tools, stable plans, decent parallelism, decent partitioning, some columnar stuff - that's not just marketing fluff. Oracle's politics / sales tactics, and cost are one large argument against, being able to influence feature development / add features yourself another, against Oracle, that I've seen driving companies - including big financial ones - away from oracle over time. Often that's not starting with the business critical stuff, but with some smaller project, and then grows over time.
- pekk 10y agoWhat does PG need to improve, then? I see a lot of discussion of how Oracle is better at this or that but not much discussion on how PG will come to parity and how we'll know when it's finally good enough to use.
- anarazel 10y ago> What does PG need to improve, then? There's some things (better replication out of the box , higher performance). > but not much discussion on how PG will come to parity That's because this subthread started with "No one ever chooses Oracle or Sybase on technical merits." - neither Postgres' strengths and needed/planned improvements are relevant to refute that position. > on how PG will come to parity and how we'll know when it's finally good enough to use. Just because Oracle has some features that postgres doesn't match doesn't mean it's not good enough. There's a lot of features where postgres is further along than Oracle, too. For a good number of OLTPish workloads postgres is faster. We're talking about large and complex products here - it's seldomly the case that one project/product is going to be better than all others in all respects. Postgres has been good enough to use for a long time. If you're interested in which areas postgres needs to improve, I'm happy to talk about that too.
- gdulli 10y agoIt sounds like you're not so much in "the" industry but a subset of the industry that doesn't consider free open source software to be an option. If you're fighting the attitude that the only viable option is one that costs a ton of money instead of a decision based on technical merit, additional facts about Postgres won't help. Sometimes the decision gets made on a golf course and not after reading very long texts.
- forgotpw1123 10y ago>Sometimes the decision gets made on a golf course and not after reading very long texts. This is why I swore to only write software at software companies some years ago. For other industries software is just another expense like buildings or supplies. The people buying it have no idea what they're looking at so they buy the shiny thing that everyone else is buying. When I worked in other sectors I regularly saw executives attempt to assemble software as if it was a large building. Materials were gathered, agreements were made to purchase or rent heavy equipment, and the whole project was planned out with exacting detail. When all the permits and contracts were in place construction would begin. This was to be done in a measured amount of code using the chosen architecture, and delivered complete on a certain date. Any deviations were seen as workarounds for not following the original plans, and overruns the result of incompetence. The whole thing was just a shitshow of incompetence at the higher levels.
- devonkim 10y agoYou're correct that non-software companies will simply outsource but not quite correct that it must be closed source - software is simply something they don't have much expertise in and never will. The problems only show up when software becomes such an integral part of business operations that you really do need to actually do well at software or risk a lot of business. The reason that it tends to be closed source companies is that most of the relationships that the non-software companies have is when open source was really not very viable of a foundation for one's software. Demanding and exercising the use of a throat to choke is a massive, massive part of how at least American business works due to prevailing leadership styles as well. It also shows how they tend to view their workers as well. "Blameless culture" is something that is a tiny, tiny minority that only seems to have worked out well among socialist-ish boutique software companies and until we start seeing companies that practice traditional Taylorist and authoritarian leader worship cultures fail very disproportionately, nothing will fundamentally change.
- garysieling 10y agoHaving worked with both Oracle and Postgres, there have been a few features in Postgres that I wish were built out more completely, but nothing insurmountable, and they have been improving those (e.g. partitioning). Postgres is incredibly reliable - I worked on a couple data warehouses in Oracle and found a bunch of defects, and so far none in similar systems in Postgres.
- frik 10y agoTo convince the, guide would also need more words from the enterprise world like OLAP and OLTP, XML, SOAP, etc
- sheeshkebab 10y agoIn finance, no one will trade on perm oracle/sybase installs for open source databases, even if they were free (which they are not - always have to pay for support). A couple of million $$ don't make the difference in comparison to a few hundred million $$ that have to go into replatforming, tools, skills. In cloud/managed space, Postgres is also hit and miss - still no good cross-region option and frankly other than AWS RDS not many other managed Postgres services. So, MySQL rules the cloud/managed databases, and oracle/sybase/mssql rule on prem.
- bahmboo 10y agoGoogle Cloud has managed Postgres: https://cloud.google.com/sql/docs/postgres/ https://cloud.google.com/sql/docs/postgres/
- avtar 10y agoThey announced that just a few weeks ago. And what they state on the site you linked to proves the parent's point about managed Postgres being hit or miss: "This is a Beta release of Cloud SQL for PostgreSQL. This product might be changed in backward-incompatible ways and is not subject to any SLA or deprecation policy."
- m_fayer 10y agoAzure offers a managed version of mssql, which I'm quite happy with.
- htn 10y agoMy company does managed Postgres on AWS, Azure, Google Cloud Platform, DigitalOcean and UpCloud - https://aiven.io/postgresql https://aiven.io/postgresql. Compose offers managed Postgres (https://www.compose.com/postgresql https://www.compose.com/postgresql), as does ElephantSQL (https://www.elephantsql.com/ https://www.elephantsql.com/). Database Labs is one more provider (https://www.databaselabs.io/ https://www.databaselabs.io/). Google recently added beta version of Postgres to Cloud SQL as well (https://cloud.google.com/sql/docs/postgres/ https://cloud.google.com/sql/docs/postgres/). Of course, AWS RDS and Heroku have been on the market for some time. I'd claim managed Postgres market is in a pretty good shape.
- tdeck 10y agoI work in the industry too, and I didn't even realize Sybase was still around. It's a big world out there and there are little subcultures with different preferences. Bigger tech companies seem to prefer MySQL, old Enterprise ccompanies use Oracle, .NET people use SQL Server, and smaller Rails shops seem to use Postgres in my experience. But it's interesting to hear a different perspective.
- ergo14 10y agoI really wonder where you work then. It sounds really weird.
- inopinatus 10y agoYou'll find similar attitudes in utilities, manufacturing, resource extraction, government.
- floatboth 10y agoThat's finance and trading. In web services, "Oracle" is a bad word. Like. Paying money? For a database system?! That sounds extremely alien to me
- threeseed 10y agoNot sure if you're actually worked in web services but it's very common to pay for database systems. Netflix, eBay, Apple, Sony (for PSN), Spotify are all Datastax customers paying for the commercial version of Cassandra. Facebook, Foursquare, eHarmony, Buzzfeed, LinkedIn are listed as paying customers of MongoDB.
- floatboth 10y agoYeah, sure, big companies pay for support/consulting! But Cassandra and Mongo are FOSS, you don't have to pay for the right to use them.
- tyldum 10y agoI guess it depends. We are migrating away from Oracle towards Postgresql. For Oracle you quickly need enterprise edition or flaky third-party software for basic features lile replication. We could hire several dedicated DBAs on Postgresql for that money. And the licensing is just too idiotic, with no list price anywhere. Usually takes a month to get a quote for us. Not to mention the client libraries and how cumbersome they are to deal with. Good riddance.
- frik 10y agoI have experience with Oracle, Postgres, MS SQL Server and DB2. Postgres is in the same range of relational enterise SQL database engines. Postgres offers even Oracle PL/SQL compatible syntax, so you can think of Postgres as the Linux of relational databases. (Linux is a clone of Unix). If you need advanced SQL syntax, XML support, complex triggers, inlined procedural code, GIS, etc look no further than this and choose Postgres. If you just want to hit your DB with thousends of connections from your web application frameworks and public APIs or think of easy clustering, it might be a good idea to add a caching layer in-front like memcached/redis or read on... (as the forking model doesn't scale that good) And then there is a unique database-software with a common SQL dialect that supports dozends of database engines. It's called MySQL and it supports plugin-engines like InnoDB (default, true web scale, very fast), ISAM (old 1980s style features, very fast), etc. MySQL can handle many concurrent connections and InnoDB is really good, that's why it's a very good fit for web apps, using basic SQL features and used by Google, Twitter, Facebook, etc as a main production database. And there are NoSQL databases that have different kinds of features like MongoDB/RethinkDB, Lucene (Solr/ElasticSearch), Hadoop (HBase, etc), Cassandra, etc. - they have often just basic SQL-like query language or non at all, but a custom API to interact with the datastore. Those domain specific solutions are often very fast for certain use cases. Some have limited index support, limited join support, transactions, etc. so the it really depends. E.g. for JSON datastore and full text search, those are ideal solutions. We would need a database guide that highlights the common open source database engines. And provide a transition guide and compatibility matrix compared to legacy binary blob database engines - the real competitors to open source. People in the open source communities are often fishing in other communities and try to convert them - instead look no further than your corporate colleagues and enterprise fellows and try to convert them away from their rusty databases.
- jeltz 10y agoYou seem mistaken about what the real costs of the forking model. To solve the cost of opening new connections you just need to use a connection pooler. The need for caching is not really relevant here. PostgreSQL can easily handle hundreds of thousands of read queries. The real costs are: 1. Need for a third party connection pooler (built-in in many client libraries like JDBC, ActiveRecord or Sequel). Some poolers like pgboucner lack support for prepared statements. 2. Memory usage can become an issue, especially if you have tens of thousands of stored procedures since stored procedures are compiled and cached per connection. Also working memory for sorting is per connection which means PostgeSQL will use more memory than MySQL on some workloads. 3. Having to recompile all stored procedures on first use after reconnecting to the database can be an issue.