Actually, this was a fundamental and known weakness in the SQL Server 2000 transactional model, being more like DB2 than Oracle.

I disagree. First off, we're talking about the DEFAULT transactional model, locking mode, and where new records are placed. It has always been posssible to tweak any of the databases to the other's transactional model. Second of all, it was not a weakness -- it was a deliberate choice of optimization -- it was a choice of OLAP over OLTP (and, let's be honest, for most databases on limited memory machines with low OLTP requirements, this was the correct choice until ballooning memories made the reverse true).

Because PostgreSQL has used the same kind of model as Oracle -- and for a very long time -- it has always been relatively strong at OLTP throughput. Until SQL Server 2005, the Microsoft offering was never really competitive.

Bull. For anything except the heaviest OLTP loads, Microsoft was more than adequate. You don't need a semi to drive the highways.

It had little to do with development timelines. On the other hand, PostgreSQL was a bit of a dog at OLAP until relatively recently.

See?  You're making my point.    :-)

You imply that the performance is due to some kind of linear development path, but in fact SQL Server 2005 changed its internal model to be like Oracle and PostgreSQL so that it could be competitive at OLTP. It is a matter of algorithm selection and tradeoffs, not engineering effort. SQL Server (until two years ago) has always had relatively poor lock concurrency, but gave very good baseline OLAP performance as a consequence of that decision. The reality is that it is much easier to make the Oracle/Postgres model perform satisfactorily at OLAP than to make the old SQL Server model perform satisfactorily at OLTP.

Again, you're making my point. Until memory became cheap and OLTP become more critical, Microsoft made the right choice of OLAP over OLTP. When the world changed, so did they. I'd call that a strength and flexibility, not a weakness.

I've worked with very large databases on several major platforms, including Oracle and SQL Server in many different guises. Oracle's parallel implementation may not distribute that well, but that is because traditional transactional semantics are *theoretically incapable* of distributing well. To the extent it is possible at all, Oracle does a very good job at making it work.

So, is your claim that Oracle distributes better than Microsoft? If so, why?

There are new transactional architectures in academia that should work better in a modern distributed environment than any of the current commercial adaptations of classical architectures to distributed environments.

And PostgreSQL will probably implement them long before Oracle or MS.

Sun Microsystems not only officially supports it, they do a lot of development on it, as does Fujitsu in Asia, Red Hat and a few other large companies that are heavily invested in it. A significant portion of the main PostgreSQL developers do it as their official corporate job.

Cool.  I wasn't aware that it had made that many inroads.  Awesome.

PostgreSQL is very broadly ANSI compatible (including a lot of ancillary database standards surrounding SQL), and to the extent it has a "flavor" it clearly borrows from Oracle rather than SQL Server. SQL Server has a lot of bits that do not conform to standards that everyone else supports. From a historical perspective, PostgreSQL shares a transaction model with Oracle, started on Unix, and has been around since a time when SQL Server was not something you would want to emulate. PostgreSQL has matured to the point where it mostly follows standards to the extent possible but has enough unique features and capabilities that it has started to become a flavor of its own.


If you could swap out an MS-SQL server *immediately* for a PostgreSQL server simply by copy the data and rebinding a WINS name or an IP address, I would be in hog heaven even if support wasn't absolutely guaranteed since I could always switch back. Given that there's a huge transition cost (changing scripts, procedures, etc.), I can't get *ANY* agreement for the thought of switching (and I'm sure that there are *MANY* more in my circumstances).


The only corporate database that relatively easily ports back and forth with PostgreSQL is Oracle. Nonetheless, a number of people have ported applications to PostgreSQL from MS-SQL with good results; questions about porting nuances come up regularly on the PostgreSQL mailing lists.

Beyond your basic ANSI compliance, database portability only sort of exists. Inevitably people use non-standard platform features that expose the specific capabilities of the engine being used to maximize performance. As a practical matter, you pick a database platform and stick with it as long as is reasonably possible.


J. Andrew Rogers





-------------------------------------------
agi
Archives: http://www.listbox.com/member/archive/303/=now
RSS Feed: http://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: http://www.listbox.com/member/?&;
Powered by Listbox: http://www.listbox.com



-------------------------------------------
agi
Archives: http://www.listbox.com/member/archive/303/=now
RSS Feed: http://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: 
http://www.listbox.com/member/?member_id=8660244&id_secret=101455710-f059c4
Powered by Listbox: http://www.listbox.com

Reply via email to