<?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: Converting from MS SQL to PostgreSQL</title>
	<atom:link href="http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql</link>
	<description></description>
	<lastBuildDate>Thu, 01 Jun 2017 18:51:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Zack Steinkamp</title>
		<link>http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql/comment-page-1#comment-53706</link>
		<dc:creator>Zack Steinkamp</dc:creator>
		<pubDate>Thu, 22 Jan 2009 00:42:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=511#comment-53706</guid>
		<description>Of course, going through the internet to fetch the data is not going to be a performant solution vs. fetching from a local DB.

If the DB was on the local machine, then the performance difference between the DB software reading (and caching) 300KB from the disk is not going to appreciably different than the OS reading (and caching) 300KB from the disk.

In the example you linked to, 24GB of 32GB (75%) of the data set was this XML data.  If that 24GB was moved to a memcached farm (or other RAM-based clustered caching solution), then performance would likely be better across the board vs. a disk-based solution, assuming a LAN connection between hosts and a normal distribution of requests to chunks of XML.

Maintenance of the database will be faster and simpler without that extra 24GB of data to push around.  Not sure how Postgres does &quot;ALTER TABLES&quot; but MySQL always makes a full copy of the table...

As usual, the answer is &quot;it all depends&quot; based on performance need, nature of the system, and available resources.</description>
		<content:encoded><![CDATA[<p>Of course, going through the internet to fetch the data is not going to be a performant solution vs. fetching from a local DB.</p>
<p>If the DB was on the local machine, then the performance difference between the DB software reading (and caching) 300KB from the disk is not going to appreciably different than the OS reading (and caching) 300KB from the disk.</p>
<p>In the example you linked to, 24GB of 32GB (75%) of the data set was this XML data.  If that 24GB was moved to a memcached farm (or other RAM-based clustered caching solution), then performance would likely be better across the board vs. a disk-based solution, assuming a LAN connection between hosts and a normal distribution of requests to chunks of XML.</p>
<p>Maintenance of the database will be faster and simpler without that extra 24GB of data to push around.  Not sure how Postgres does &#8220;ALTER TABLES&#8221; but MySQL always makes a full copy of the table&#8230;</p>
<p>As usual, the answer is &#8220;it all depends&#8221; based on performance need, nature of the system, and available resources.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql/comment-page-1#comment-53698</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Wed, 21 Jan 2009 23:51:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=511#comment-53698</guid>
		<description>Fair enough - too many undefined parameters.  Where might you be better off storing 300kb of XML that you wanted to store and process?  Are there options other than local-to-the-app server storage?   Anything over the (public) wire is going to be orders of magnitude slower.</description>
		<content:encoded><![CDATA[<p>Fair enough &#8211; too many undefined parameters.  Where might you be better off storing 300kb of XML that you wanted to store and process?  Are there options other than local-to-the-app server storage?   Anything over the (public) wire is going to be orders of magnitude slower.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zack Steinkamp</title>
		<link>http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql/comment-page-1#comment-53656</link>
		<dc:creator>Zack Steinkamp</dc:creator>
		<pubDate>Wed, 21 Jan 2009 00:37:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=511#comment-53656</guid>
		<description>&lt;blockquote&gt;So you would stick 300kb of text in the file system too?&lt;/blockquote&gt;
Well, in *a* file system.  May be on the DB server, may be on a different host.  If your DB serves to lookup which blob you&#039;re interested in using, then there&#039;s a more efficient system to serve the blob, as long as the blob is large enough so that it can be fetched or stored or replicated more efficiently than in the RDBMS.

&lt;blockquote&gt;What, exactly, do you use your database for?&lt;/blockquote&gt;
This gets nicely at the fuzzy area between data that is efficiently stored and retrieved in the DB and those that are not.  That size threshold will vary based on lots of factors.  300KB is very very likely to be larger than what is efficient.

This is not a black and white issue when details of the application, platform software, and hardware are not known.</description>
		<content:encoded><![CDATA[<blockquote><p>So you would stick 300kb of text in the file system too?</p></blockquote>
<p>Well, in *a* file system.  May be on the DB server, may be on a different host.  If your DB serves to lookup which blob you&#8217;re interested in using, then there&#8217;s a more efficient system to serve the blob, as long as the blob is large enough so that it can be fetched or stored or replicated more efficiently than in the RDBMS.</p>
<blockquote><p>What, exactly, do you use your database for?</p></blockquote>
<p>This gets nicely at the fuzzy area between data that is efficiently stored and retrieved in the DB and those that are not.  That size threshold will vary based on lots of factors.  300KB is very very likely to be larger than what is efficient.</p>
<p>This is not a black and white issue when details of the application, platform software, and hardware are not known.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql/comment-page-1#comment-53655</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Wed, 21 Jan 2009 00:01:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=511#comment-53655</guid>
		<description>So you would stick 300kb of text in the file system too?  

What, exactly, do you use your database for? :)</description>
		<content:encoded><![CDATA[<p>So you would stick 300kb of text in the file system too?  </p>
<p>What, exactly, do you use your database for? <img src='http://www.ghidinelli.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zack Steinkamp</title>
		<link>http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql/comment-page-1#comment-53654</link>
		<dc:creator>Zack Steinkamp</dc:creator>
		<pubDate>Tue, 20 Jan 2009 22:34:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=511#comment-53654</guid>
		<description>&lt;blockquote&gt;What’s the difference between 300kb of XML or 300kb of text?&lt;/blockquote&gt;
Absolutely no difference, unless as you&#039;ve said the DB can make use of the XML as a native type.

It would be a very very special case app for which this architecture would make sense.</description>
		<content:encoded><![CDATA[<blockquote><p>What’s the difference between 300kb of XML or 300kb of text?</p></blockquote>
<p>Absolutely no difference, unless as you&#8217;ve said the DB can make use of the XML as a native type.</p>
<p>It would be a very very special case app for which this architecture would make sense.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql/comment-page-1#comment-53652</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Tue, 20 Jan 2009 20:58:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=511#comment-53652</guid>
		<description>Mmm, I don&#039;t know that I agree.  Particularly with XML support inside most enterprise databases now, XML is a very valid resource to store in the database.  What&#039;s the difference between 300kb of XML or 300kb of text?  Would you store the text on the file system?  If the database can act on the XML, I think it makes sense to keep it internal.

I also question whether or not it will actually improve &quot;performance&quot;.  Which performance?  It may improve database scalability, but that is only one component of the system.

File system storage has its own mixed bag of issues... good for some things, not for others.  While I personally store binary assets like images on the filesystem and use the database to provide a pointer, I don&#039;t think it&#039;s a blanket solution.  It&#039;s an option but in my opinion by no means a best practice.</description>
		<content:encoded><![CDATA[<p>Mmm, I don&#8217;t know that I agree.  Particularly with XML support inside most enterprise databases now, XML is a very valid resource to store in the database.  What&#8217;s the difference between 300kb of XML or 300kb of text?  Would you store the text on the file system?  If the database can act on the XML, I think it makes sense to keep it internal.</p>
<p>I also question whether or not it will actually improve &#8220;performance&#8221;.  Which performance?  It may improve database scalability, but that is only one component of the system.</p>
<p>File system storage has its own mixed bag of issues&#8230; good for some things, not for others.  While I personally store binary assets like images on the filesystem and use the database to provide a pointer, I don&#8217;t think it&#8217;s a blanket solution.  It&#8217;s an option but in my opinion by no means a best practice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zack Steinkamp</title>
		<link>http://www.ghidinelli.com/2009/01/19/converting-from-ms-sql-to-postgresql/comment-page-1#comment-53648</link>
		<dc:creator>Zack Steinkamp</dc:creator>
		<pubDate>Tue, 20 Jan 2009 17:39:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=511#comment-53648</guid>
		<description>While I applaud the move away from MSSQL, I&#039;m curious why someone would put 300KB of XML into one column of a database row.  

Something like that should be stored outside of the DB, named with the row&#039;s primary key value.  It&#039;s a tiny bit more work to implement, but will pay off in database scalability, performance, and overall system flexibility.</description>
		<content:encoded><![CDATA[<p>While I applaud the move away from MSSQL, I&#8217;m curious why someone would put 300KB of XML into one column of a database row.  </p>
<p>Something like that should be stored outside of the DB, named with the row&#8217;s primary key value.  It&#8217;s a tiny bit more work to implement, but will pay off in database scalability, performance, and overall system flexibility.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
