<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Why would you use a commercial database anyway?	</title>
	<atom:link href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/feed/" rel="self" type="application/rss+xml" />
	<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/</link>
	<description>Meditations on programming, startups, and technology</description>
	<lastBuildDate>Mon, 15 Nov 2010 23:37:59 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>
		By: Rohit Khare		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19700</link>

		<dc:creator><![CDATA[Rohit Khare]]></dc:creator>
		<pubDate>Mon, 15 Nov 2010 23:37:59 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19700</guid>

					<description><![CDATA[I am also support open-source, but my concerns are mixed.

Big companies still stick to Oracle or DB2 because of legacy reasons. Open-source RDBMSs were not so mature at that time. I found senior management worried to migrate database if everything is running fine, even if they are paying to DBAs.

Secondly, with Closed-source RDBMSs like SQL Server, Oracle or DB2 (Enterprise), they can file a suit or blame someone if something goes wrong. Building an enterprise-class RDBMS and giving support to big companies is not a honeymoon.

In real-life cases I have seen customers giving warnings to database vendors when a bug disrupted their work. It costs customers millions.

Now coming to our good open-source era. With PostgreSQL matured enough, we have options to buy support and in the last few years I have seen we never felt a need of a dedicated DBA, though our company has appointed one to make their nights cool.]]></description>
			<content:encoded><![CDATA[<p>I am also support open-source, but my concerns are mixed.</p>
<p>Big companies still stick to Oracle or DB2 because of legacy reasons. Open-source RDBMSs were not so mature at that time. I found senior management worried to migrate database if everything is running fine, even if they are paying to DBAs.</p>
<p>Secondly, with Closed-source RDBMSs like SQL Server, Oracle or DB2 (Enterprise), they can file a suit or blame someone if something goes wrong. Building an enterprise-class RDBMS and giving support to big companies is not a honeymoon.</p>
<p>In real-life cases I have seen customers giving warnings to database vendors when a bug disrupted their work. It costs customers millions.</p>
<p>Now coming to our good open-source era. With PostgreSQL matured enough, we have options to buy support and in the last few years I have seen we never felt a need of a dedicated DBA, though our company has appointed one to make their nights cool.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Leon Katsnelson		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19318</link>

		<dc:creator><![CDATA[Leon Katsnelson]]></dc:creator>
		<pubDate>Mon, 11 Oct 2010 20:55:48 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19318</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19062&quot;&gt;anon&lt;/a&gt;.

&#062;“Proven reliability and advanced security features”
&#062;– The only way I know if it works is if I can see the code and 
&#062; test it. “Proven” my ass.

You must be one of one thousands of 1% who look at the DBMS code. The rest of us would rather somebody else looked at the code and fixed it. 
You rely on DB2 to do its job every time you go to your bank, book an airline ticket or make an insurance claim. Surprisingly, the people who run banks, insurance companies and airlines are able to do so without having access to source code.
On a personal note, I have full access to DB2 source code as I do to MySQL and PostgreSQL. I have 20 years of experience in DBMS. It never occurred to me that I need to look in to source to figure out what the problem is. Personally, I look at the traces to try to figure out who is the right person to look at the problem. I am willing to bet that I am more of a typical DBMS user than those like you who look at the source.
There are many out there who will claim there is a huge benefit from having access to source or being able to contribute code. Reality is, that most of these people are more in love with the philosophy than involved with the practice of open source. In 2009, the total number of contributions to MySQL was less than 40.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19062">anon</a>.</p>
<p>&gt;“Proven reliability and advanced security features”<br />
&gt;– The only way I know if it works is if I can see the code and<br />
&gt; test it. “Proven” my ass.</p>
<p>You must be one of one thousands of 1% who look at the DBMS code. The rest of us would rather somebody else looked at the code and fixed it.<br />
You rely on DB2 to do its job every time you go to your bank, book an airline ticket or make an insurance claim. Surprisingly, the people who run banks, insurance companies and airlines are able to do so without having access to source code.<br />
On a personal note, I have full access to DB2 source code as I do to MySQL and PostgreSQL. I have 20 years of experience in DBMS. It never occurred to me that I need to look in to source to figure out what the problem is. Personally, I look at the traces to try to figure out who is the right person to look at the problem. I am willing to bet that I am more of a typical DBMS user than those like you who look at the source.<br />
There are many out there who will claim there is a huge benefit from having access to source or being able to contribute code. Reality is, that most of these people are more in love with the philosophy than involved with the practice of open source. In 2009, the total number of contributions to MySQL was less than 40.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Leon Katsnelson		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19315</link>

		<dc:creator><![CDATA[Leon Katsnelson]]></dc:creator>
		<pubDate>Mon, 11 Oct 2010 20:23:50 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19315</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19057&quot;&gt;Nadal&lt;/a&gt;.

Your wife is asking a brilliant question. The answer for it is very similar to the question &quot;why do I need a truck when I have a minivan&quot;. If what you want to do is drive a bunch of kids to soccer practice (football for those of you outside of North America) then minivan is exactly what you need. But if you are in the construction business and you need a vehicle to carry your crew of 4 and half a ton of materials then you will want to look at the truck with extended cab. Think of DB2 Express-C as being a truck with extended cab and MySQL is a trusted family minivan. Sure you could rig the minivan with a trailer and load it up with your construction materials. You may burn out your transmission by hauling too much load but hey, it will give you a start in construction business with very little money at first. You are a Facebook/Twitter/Google, you have brilliant engineers who can afford the time to rig the hitch and a trailer. You may get really sophisticated with sharding and master slave replication, memcached and a dozen of other tricks to get your MySQL to similar performance and reliability that you can get with DB2. But if you are building a business and business applications you may do better by using a better foundation where all of that stuff is already built for you. 

What we did with DB2 Express-C is made it follow the same business model as MySQL i.e. get it for free with very inexpensive optional subscription if you need it. We made that subscription even cheaper than MySQL. Why did we do this? Because we really wanted everyone to get an opportunity to get started with the technology that has a lot more legs and can take you much further than rigging your own trailer for a minivan can. We are nto under any allusion that the world will start using MySQL, nor should it. It is obviously the right platform for Facebook. But for those of us not building the next Facebook, DB2 Express-C and its business model of &quot;Free license with low cost optional subscription&quot; for the worlds&#039; most respected commercial DBMS this may be just the ticket.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19057">Nadal</a>.</p>
<p>Your wife is asking a brilliant question. The answer for it is very similar to the question &#8220;why do I need a truck when I have a minivan&#8221;. If what you want to do is drive a bunch of kids to soccer practice (football for those of you outside of North America) then minivan is exactly what you need. But if you are in the construction business and you need a vehicle to carry your crew of 4 and half a ton of materials then you will want to look at the truck with extended cab. Think of DB2 Express-C as being a truck with extended cab and MySQL is a trusted family minivan. Sure you could rig the minivan with a trailer and load it up with your construction materials. You may burn out your transmission by hauling too much load but hey, it will give you a start in construction business with very little money at first. You are a Facebook/Twitter/Google, you have brilliant engineers who can afford the time to rig the hitch and a trailer. You may get really sophisticated with sharding and master slave replication, memcached and a dozen of other tricks to get your MySQL to similar performance and reliability that you can get with DB2. But if you are building a business and business applications you may do better by using a better foundation where all of that stuff is already built for you. </p>
<p>What we did with DB2 Express-C is made it follow the same business model as MySQL i.e. get it for free with very inexpensive optional subscription if you need it. We made that subscription even cheaper than MySQL. Why did we do this? Because we really wanted everyone to get an opportunity to get started with the technology that has a lot more legs and can take you much further than rigging your own trailer for a minivan can. We are nto under any allusion that the world will start using MySQL, nor should it. It is obviously the right platform for Facebook. But for those of us not building the next Facebook, DB2 Express-C and its business model of &#8220;Free license with low cost optional subscription&#8221; for the worlds&#8217; most respected commercial DBMS this may be just the ticket.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: bob the builder		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19310</link>

		<dc:creator><![CDATA[bob the builder]]></dc:creator>
		<pubDate>Mon, 11 Oct 2010 15:15:38 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19310</guid>

					<description><![CDATA[Saying that customers choose commercial databases because it is cheaper in the long run, implicitly states that said customers know what they do, and I know for a fact, from experience that this is not the case.

The majority of software purchases are made by people that are not qualified, and the only thing these people care about is this: &quot;Will this cover my ass in case something goes wrong?&quot;

As a result, many small companies pay through their noses, because they end up over-buying, both in hardware and software.]]></description>
			<content:encoded><![CDATA[<p>Saying that customers choose commercial databases because it is cheaper in the long run, implicitly states that said customers know what they do, and I know for a fact, from experience that this is not the case.</p>
<p>The majority of software purchases are made by people that are not qualified, and the only thing these people care about is this: &#8220;Will this cover my ass in case something goes wrong?&#8221;</p>
<p>As a result, many small companies pay through their noses, because they end up over-buying, both in hardware and software.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Antonio Varela		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19171</link>

		<dc:creator><![CDATA[Antonio Varela]]></dc:creator>
		<pubDate>Thu, 07 Oct 2010 20:15:48 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19171</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19169&quot;&gt;Antonio Varela&lt;/a&gt;.

Besides, the dirty work on Facebook it&#039;s done by a large no-sql caching system.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19169">Antonio Varela</a>.</p>
<p>Besides, the dirty work on Facebook it&#8217;s done by a large no-sql caching system.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Antonio Varela		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19169</link>

		<dc:creator><![CDATA[Antonio Varela]]></dc:creator>
		<pubDate>Thu, 07 Oct 2010 20:03:28 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19169</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19057&quot;&gt;Nadal&lt;/a&gt;.

They don&#039;t use the stock product (the one you get with a &quot;apt-get install mysql-server&quot;). This kind of setups use highly tuned and customized (hacked) versions of the software.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19057">Nadal</a>.</p>
<p>They don&#8217;t use the stock product (the one you get with a &#8220;apt-get install mysql-server&#8221;). This kind of setups use highly tuned and customized (hacked) versions of the software.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: N/A		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19116</link>

		<dc:creator><![CDATA[N/A]]></dc:creator>
		<pubDate>Wed, 06 Oct 2010 19:08:54 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19116</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19063&quot;&gt;Brandon K&lt;/a&gt;.

Mysql is not the only opensource DB system.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19063">Brandon K</a>.</p>
<p>Mysql is not the only opensource DB system.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Frederik Engelen		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19108</link>

		<dc:creator><![CDATA[Frederik Engelen]]></dc:creator>
		<pubDate>Wed, 06 Oct 2010 15:33:04 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19108</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19062&quot;&gt;anon&lt;/a&gt;.

I&#039;m biased because I&#039;m a DB2 admin, but I&#039;d like to give a response to some of your statements.

“Proven reliability and advanced security features”
– The only way I know if it works is if I can see the code and test it. “Proven” my ass.

-- I get your concern. However, most people/companies don&#039;t have the time nor resources to go through the code or even understand it. Given that the codebase for the DB2 optimizer is larger than the entire MySQL product, this is impractical to say the least. DB2 runs on practically everything, has been doing so for a very long time and for me and most businesses this means proven stable.

Utmost performance;
–What does that even mean? Besides, open source systems (MySQL, PostgreSQL) run fast as hell.

-- Simple, it&#039;s very fast. He didn&#039;t say it&#039;s the fastest in any situation, did he? Don&#039;t pay too much attention to the ridicilous TPC-C numbers, but the performance and the optimizer are very good. I have seen similar capabilities to the new &quot;Join Removal&quot; feature from PostgreSQL 9 for a long time in DB2. For a more simple comparison - DB performance comparisons are Hard - just check the count(*) comparison on this blog (google &quot;android sheep db2 mysql&quot;).

Ability to natively handle XML documents and data (some industries have to do so as a result of regulations);
–Makes sense. Yey for the compliance chicken! Not many do this, you’re right.

-- I know a government organisation that stores the tax filings in XML because they change too much every year. I used the XML publishing options once because the memory Hibernate was using for this purpose was going to the roof in this particular case. There are good reasons to use XML as there are very good to not do it (popular ORM incompatibility comes to mind). I&#039;m glad it&#039;s there.

Vertical and horizontal scalability as their business grow;
–Again, MySQL and PostgreSQL are extremely scalable. See also: Facebook, Google, Yahoo’s 2 petabyte PostgreSQL database, etc.

-- In the case of Facebook and Google, it&#039;s no so much the database that is scalable, but the applications that are using it. Making the application responsible for handling database outages, replication, ... is only available to companies of a large size with specific requirements (who cares about the loss of two facebook posts, really?). There is still a large userbase that just wants a place to dump and retrieve a lot of relational data really fast while knowing it will be kept safe there. In this case, things like DB2 HADR/PureScale, Oracle Data Guard/RAC, ... really shine. All this sharding people program on top of MySQL? DB2 has provided this capability for years (http://planet.mysql.com/entry/?id=17130). Not for free though...

24/7 support from a reputable company that will truly stand behind the product they sell;
–Marketing garblygook. What koolaid are you drinking?

-- I can tell you first hand that IBM support is competent. You quickly get a qualified person on the phone, the labs are not that difficult to reach through support if needed and around-the-sun support is available if you&#039;re in really deep ****.

Overall TCO (which involves a lot more than just looking at the price tag for the software).
–Exactly. TCO is much lower when you can look at the goddamn code yourself.
-- There&#039;s a lot to TCO, but I doubt looking through the code yourself is going to improve it a lot...]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19062">anon</a>.</p>
<p>I&#8217;m biased because I&#8217;m a DB2 admin, but I&#8217;d like to give a response to some of your statements.</p>
<p>“Proven reliability and advanced security features”<br />
– The only way I know if it works is if I can see the code and test it. “Proven” my ass.</p>
<p>&#8212; I get your concern. However, most people/companies don&#8217;t have the time nor resources to go through the code or even understand it. Given that the codebase for the DB2 optimizer is larger than the entire MySQL product, this is impractical to say the least. DB2 runs on practically everything, has been doing so for a very long time and for me and most businesses this means proven stable.</p>
<p>Utmost performance;<br />
–What does that even mean? Besides, open source systems (MySQL, PostgreSQL) run fast as hell.</p>
<p>&#8212; Simple, it&#8217;s very fast. He didn&#8217;t say it&#8217;s the fastest in any situation, did he? Don&#8217;t pay too much attention to the ridicilous TPC-C numbers, but the performance and the optimizer are very good. I have seen similar capabilities to the new &#8220;Join Removal&#8221; feature from PostgreSQL 9 for a long time in DB2. For a more simple comparison &#8211; DB performance comparisons are Hard &#8211; just check the count(*) comparison on this blog (google &#8220;android sheep db2 mysql&#8221;).</p>
<p>Ability to natively handle XML documents and data (some industries have to do so as a result of regulations);<br />
–Makes sense. Yey for the compliance chicken! Not many do this, you’re right.</p>
<p>&#8212; I know a government organisation that stores the tax filings in XML because they change too much every year. I used the XML publishing options once because the memory Hibernate was using for this purpose was going to the roof in this particular case. There are good reasons to use XML as there are very good to not do it (popular ORM incompatibility comes to mind). I&#8217;m glad it&#8217;s there.</p>
<p>Vertical and horizontal scalability as their business grow;<br />
–Again, MySQL and PostgreSQL are extremely scalable. See also: Facebook, Google, Yahoo’s 2 petabyte PostgreSQL database, etc.</p>
<p>&#8212; In the case of Facebook and Google, it&#8217;s no so much the database that is scalable, but the applications that are using it. Making the application responsible for handling database outages, replication, &#8230; is only available to companies of a large size with specific requirements (who cares about the loss of two facebook posts, really?). There is still a large userbase that just wants a place to dump and retrieve a lot of relational data really fast while knowing it will be kept safe there. In this case, things like DB2 HADR/PureScale, Oracle Data Guard/RAC, &#8230; really shine. All this sharding people program on top of MySQL? DB2 has provided this capability for years (<a href="http://planet.mysql.com/entry/?id=17130" rel="nofollow ugc">http://planet.mysql.com/entry/?id=17130</a>). Not for free though&#8230;</p>
<p>24/7 support from a reputable company that will truly stand behind the product they sell;<br />
–Marketing garblygook. What koolaid are you drinking?</p>
<p>&#8212; I can tell you first hand that IBM support is competent. You quickly get a qualified person on the phone, the labs are not that difficult to reach through support if needed and around-the-sun support is available if you&#8217;re in really deep ****.</p>
<p>Overall TCO (which involves a lot more than just looking at the price tag for the software).<br />
–Exactly. TCO is much lower when you can look at the goddamn code yourself.<br />
&#8212; There&#8217;s a lot to TCO, but I doubt looking through the code yourself is going to improve it a lot&#8230;</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Craig Ringer		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19105</link>

		<dc:creator><![CDATA[Craig Ringer]]></dc:creator>
		<pubDate>Wed, 06 Oct 2010 14:53:25 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19105</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19062&quot;&gt;anon&lt;/a&gt;.

&quot;24/7 support from a reputable company that will truly stand behind the product they sell&quot;

I agree with the poster taking issue with this. I&#039;ve rarely had good experiences with commercial support; usually I find myself talking to a drooling moron who wouldn&#039;t recognise a stack trace from a segfault and certainly won&#039;t understand it. You have to battle past these people and their &quot;help&quot; to get to submit an obvious bug, with test case and crash dump, to someone capable of understanding it. So you land up not only doing most of your own support anyway, but then have to fight past the company&#039;s support people to get bugs acknowledged and fixed!

I haven&#039;t dealt with IBM for this, so perhaps they&#039;re a rare exception to the general rule. I *have* dealt with Adobe (utterly pathetic), Quark (worse), Microsoft (surprisingly good especially for MSDN subscribers) and Apple (better than Quark, but that&#039;s about it) and my experiences have not impressed me. Adobe in particular deserve special mention for selling expensive multi-user licenses for software they then completely fail to support even to the point of fixing reproducible and obvious bugs.

Most people use the &quot;big company&quot; argument more for cover-your-ass. &quot;It&#039;s IBM&#039;s fault, not mine, that our database broke!&quot;. Some try to claim it gives you someone to sue if it breaks - but I&#039;ve never heard of anyone successfully suing Oracle, IBM, etc and their army of lawyers over data loss/failure. I doubt IBM are going to speak up by showing you cases where they&#039;ve failed, either - they&#039;ll settle quietly out of court if they don&#039;t just stonewall.

So: I don&#039;t buy the support argument. I&#039;ve invariably had better support when I&#039;m paying a 3rd party who doesn&#039;t roll support into licensing for support, because they&#039;re motivated to actually deliver on their claims or lose business.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19062">anon</a>.</p>
<p>&#8220;24/7 support from a reputable company that will truly stand behind the product they sell&#8221;</p>
<p>I agree with the poster taking issue with this. I&#8217;ve rarely had good experiences with commercial support; usually I find myself talking to a drooling moron who wouldn&#8217;t recognise a stack trace from a segfault and certainly won&#8217;t understand it. You have to battle past these people and their &#8220;help&#8221; to get to submit an obvious bug, with test case and crash dump, to someone capable of understanding it. So you land up not only doing most of your own support anyway, but then have to fight past the company&#8217;s support people to get bugs acknowledged and fixed!</p>
<p>I haven&#8217;t dealt with IBM for this, so perhaps they&#8217;re a rare exception to the general rule. I *have* dealt with Adobe (utterly pathetic), Quark (worse), Microsoft (surprisingly good especially for MSDN subscribers) and Apple (better than Quark, but that&#8217;s about it) and my experiences have not impressed me. Adobe in particular deserve special mention for selling expensive multi-user licenses for software they then completely fail to support even to the point of fixing reproducible and obvious bugs.</p>
<p>Most people use the &#8220;big company&#8221; argument more for cover-your-ass. &#8220;It&#8217;s IBM&#8217;s fault, not mine, that our database broke!&#8221;. Some try to claim it gives you someone to sue if it breaks &#8211; but I&#8217;ve never heard of anyone successfully suing Oracle, IBM, etc and their army of lawyers over data loss/failure. I doubt IBM are going to speak up by showing you cases where they&#8217;ve failed, either &#8211; they&#8217;ll settle quietly out of court if they don&#8217;t just stonewall.</p>
<p>So: I don&#8217;t buy the support argument. I&#8217;ve invariably had better support when I&#8217;m paying a 3rd party who doesn&#8217;t roll support into licensing for support, because they&#8217;re motivated to actually deliver on their claims or lose business.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Craig Ringer		</title>
		<link>https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19104</link>

		<dc:creator><![CDATA[Craig Ringer]]></dc:creator>
		<pubDate>Wed, 06 Oct 2010 14:45:09 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1255#comment-19104</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19064&quot;&gt;Brandon K&lt;/a&gt;.

Thanks for mentioning COUNT(...).

The reason PostgreSQL&#039;s count() is slow is because of the MVCC design and the way tuple visibility information is stored. The MVCC design is part of what permits Pg to avoid having readers block writers and vice versa and what lets it minimize use of locking. The downside is that it has to scan the whole heap to determine which tuples the calling transaction can see in order to count how many the transaction can see.

I&#039;d be interested in how DB2 handles this. Is it a a low-lock design where readers don&#039;t block writers and vice versa, like PostgreSQL is? If so, does it use MVCC or some other approach? And if MVCC, how does it efficiently maintain a tuple count for a table? 

There&#039;s ongoing work in PostgreSQL that&#039;s trying to use the visibility map (currently only used for autovacuum) to skip over sections of tables that&#039;re known not to be visible to any transaction. That&#039;ll help a fair bit. Hopefully in the longer run the work into covering indexes and supporting visibility information in indexes should cover the gap completely.

The complaints about COUNT(*) are mostly from webapps, though, and mostly when trying to get a count of records in the entire table. I rarely see &quot;line of business&quot; apps that seem to want to quickly and frequently find out how many records are in a whole table - as opposed to a subset of records, which is slower in ANY database.

PostgreSQL&#039;s performance is far from perfect - but honestly, that&#039;s true of everything out there, different systems just make different tradeoffs. To me, though, the bigger advantages of Oracle (and perhaps DB2) are in the areas of massively superior replication and clustering, better monitoring and tuning tools, and better tools for load accounting/user accounting/etc.

I must say, though, that DB2 has typically been undersold by IBM, who do an incredibly poor job of communicating to *technical* people why they should care, instead focusing on imposing it on IT by pushing it to management. It has a bit of a reputation as an expensive dinosaur, though not as much so as UniVerse. Some good documentation on its *technical* features that&#039;s honest about what it&#039;s not good at as well as what it is good at would go a long way toward making me, at least, have some interest in it.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/why-would-you-use-a-commercial-database-anyway/#comment-19064">Brandon K</a>.</p>
<p>Thanks for mentioning COUNT(&#8230;).</p>
<p>The reason PostgreSQL&#8217;s count() is slow is because of the MVCC design and the way tuple visibility information is stored. The MVCC design is part of what permits Pg to avoid having readers block writers and vice versa and what lets it minimize use of locking. The downside is that it has to scan the whole heap to determine which tuples the calling transaction can see in order to count how many the transaction can see.</p>
<p>I&#8217;d be interested in how DB2 handles this. Is it a a low-lock design where readers don&#8217;t block writers and vice versa, like PostgreSQL is? If so, does it use MVCC or some other approach? And if MVCC, how does it efficiently maintain a tuple count for a table? </p>
<p>There&#8217;s ongoing work in PostgreSQL that&#8217;s trying to use the visibility map (currently only used for autovacuum) to skip over sections of tables that&#8217;re known not to be visible to any transaction. That&#8217;ll help a fair bit. Hopefully in the longer run the work into covering indexes and supporting visibility information in indexes should cover the gap completely.</p>
<p>The complaints about COUNT(*) are mostly from webapps, though, and mostly when trying to get a count of records in the entire table. I rarely see &#8220;line of business&#8221; apps that seem to want to quickly and frequently find out how many records are in a whole table &#8211; as opposed to a subset of records, which is slower in ANY database.</p>
<p>PostgreSQL&#8217;s performance is far from perfect &#8211; but honestly, that&#8217;s true of everything out there, different systems just make different tradeoffs. To me, though, the bigger advantages of Oracle (and perhaps DB2) are in the areas of massively superior replication and clustering, better monitoring and tuning tools, and better tools for load accounting/user accounting/etc.</p>
<p>I must say, though, that DB2 has typically been undersold by IBM, who do an incredibly poor job of communicating to *technical* people why they should care, instead focusing on imposing it on IT by pushing it to management. It has a bit of a reputation as an expensive dinosaur, though not as much so as UniVerse. Some good documentation on its *technical* features that&#8217;s honest about what it&#8217;s not good at as well as what it is good at would go a long way toward making me, at least, have some interest in it.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
