<?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: Performance Considerations of Data Types</title>
	<atom:link href="http://sqlfool.com/2009/05/performance-considerations-of-data-types/feed/" rel="self" type="application/rss+xml" />
	<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/</link>
	<description>Adventures in SQL Tuning - a blog for the rest of us</description>
	<lastBuildDate>Tue, 07 Feb 2012 21:28:07 -0700</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Another Super Bowl, Another 27k TPS &#171; SQL Fool</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-5630</link>
		<dc:creator>Another Super Bowl, Another 27k TPS &#171; SQL Fool</dc:creator>
		<pubDate>Wed, 16 Feb 2011 16:01:12 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-5630</guid>
		<description>[...] Twitter, you&#039;ll know that I&#039;m big on performance tuning, from the bottom up. That means things like good table design, effective clustered indexing, and taking advantage of new features like filtered indexes. These [...]</description>
		<content:encoded><![CDATA[<p>[...] Twitter, you&#039;ll know that I&#039;m big on performance tuning, from the bottom up. That means things like good table design, effective clustered indexing, and taking advantage of new features like filtered indexes. These [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michelle Ufford</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-4932</link>
		<dc:creator>Michelle Ufford</dc:creator>
		<pubDate>Thu, 10 Sep 2009 14:09:41 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-4932</guid>
		<description>@Stephen You can find the article directly using this URL:  
http://sqlfool.com/content/PerformanceConsiderationsOfDataTypes.pdf</description>
		<content:encoded><![CDATA[<p>@Stephen You can find the article directly using this URL:<br />
<a href="http://sqlfool.com/content/PerformanceConsiderationsOfDataTypes.pdf" rel="nofollow">http://sqlfool.com/content/PerformanceConsiderationsOfDataTypes.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-4927</link>
		<dc:creator>Stephen</dc:creator>
		<pubDate>Wed, 09 Sep 2009 14:17:13 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-4927</guid>
		<description>I can&#039;t find this article on the SQL Pass site, it seems they reorg&#039;d the site.  Is there another place I can find this article?</description>
		<content:encoded><![CDATA[<p>I can&#8217;t find this article on the SQL Pass site, it seems they reorg&#8217;d the site.  Is there another place I can find this article?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Overhead in Non-Unique Clustered Indexes : SQL Fool</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-3838</link>
		<dc:creator>Overhead in Non-Unique Clustered Indexes : SQL Fool</dc:creator>
		<pubDate>Thu, 21 May 2009 13:22:33 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-3838</guid>
		<description>[...] received a couple of questions regarding my article, Performance Considerations of Data Types, and the overhead associated with non-unique clustered indexes. I started to respond via e-mail, [...]</description>
		<content:encoded><![CDATA[<p>[...] received a couple of questions regarding my article, Performance Considerations of Data Types, and the overhead associated with non-unique clustered indexes. I started to respond via e-mail, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michelle Ufford</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-3798</link>
		<dc:creator>Michelle Ufford</dc:creator>
		<pubDate>Wed, 20 May 2009 13:36:51 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-3798</guid>
		<description>@David Thanks!  I&#039;m going to write a blog post about this to help clarify a little bit what&#039;s happening.  Basically, your searches would perform faster if you&#039;re clustering on date and searching on date, but yes, there&#039;s overhead in terms of the space used to store the clustered index.  And because your clustering key is also stored in your non-clustered keys, that overhead is felt in every other index, too.  This isn&#039;t such a big deal in smaller tables, and it&#039;s not necessarily a bad thing anyway.  Every environment and every application is different, so it&#039;s impossible to say more without knowing your specifics.  Are you OLTP, DSS, OLAP?  What&#039;s more important, fast reads or fast writes?  All of this is important to consider and makes a difference when choosing a clustering key.  The point my article was making is really that performance can, in general, be improved by using an unique clustered key.  

I hope that helps clarify, and like I said, I&#039;m working on a blog post to help clarify things further.  Thanks for the comment!  :)</description>
		<content:encoded><![CDATA[<p>@David Thanks!  I&#8217;m going to write a blog post about this to help clarify a little bit what&#8217;s happening.  Basically, your searches would perform faster if you&#8217;re clustering on date and searching on date, but yes, there&#8217;s overhead in terms of the space used to store the clustered index.  And because your clustering key is also stored in your non-clustered keys, that overhead is felt in every other index, too.  This isn&#8217;t such a big deal in smaller tables, and it&#8217;s not necessarily a bad thing anyway.  Every environment and every application is different, so it&#8217;s impossible to say more without knowing your specifics.  Are you OLTP, DSS, OLAP?  What&#8217;s more important, fast reads or fast writes?  All of this is important to consider and makes a difference when choosing a clustering key.  The point my article was making is really that performance can, in general, be improved by using an unique clustered key.  </p>
<p>I hope that helps clarify, and like I said, I&#8217;m working on a blog post to help clarify things further.  Thanks for the comment!  <img src='http://sqlfool.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michelle Ufford</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-3797</link>
		<dc:creator>Michelle Ufford</dc:creator>
		<pubDate>Wed, 20 May 2009 13:29:59 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-3797</guid>
		<description>@Caleb thanks!  Yes, you&#039;re exactly right about NEWSEQUENTIALID(), but one of the most prevalent reasons to use GUIDs appears to be the fact that they&#039;re generated in the .NET tier and then passed to SQL Server.  So although I work with many applications that store UNIQUEIDENTIFIERS, I&#039;ve never once had the occasion to actually use NEWSEQUENTIALID().  That may not be true in other environments, though, but has been my experience.  Thanks for the comment!  :)</description>
		<content:encoded><![CDATA[<p>@Caleb thanks!  Yes, you&#8217;re exactly right about NEWSEQUENTIALID(), but one of the most prevalent reasons to use GUIDs appears to be the fact that they&#8217;re generated in the .NET tier and then passed to SQL Server.  So although I work with many applications that store UNIQUEIDENTIFIERS, I&#8217;ve never once had the occasion to actually use NEWSEQUENTIALID().  That may not be true in other environments, though, but has been my experience.  Thanks for the comment!  <img src='http://sqlfool.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Hay</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-3740</link>
		<dc:creator>David Hay</dc:creator>
		<pubDate>Mon, 18 May 2009 13:24:40 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-3740</guid>
		<description>Great article!  I&#039;m having a bit of a problem understanding the non unique clusterd index portion though, particularly about dates.  

&quot;However, creating a non-unique clustered index on a column with many duplicate values, perhaps on a column of date data type where you might have thousands of records with the same clustered key value, could result in a significant amount of internal overhead.&quot;

We have sales data that we mainly query by date or date range, by putting the clustered index over the date column that has significantly increased the performance of the related queries.  Is the overhead only in space used, or is there more to consider that I am missing?</description>
		<content:encoded><![CDATA[<p>Great article!  I&#8217;m having a bit of a problem understanding the non unique clusterd index portion though, particularly about dates.  </p>
<p>&#8220;However, creating a non-unique clustered index on a column with many duplicate values, perhaps on a column of date data type where you might have thousands of records with the same clustered key value, could result in a significant amount of internal overhead.&#8221;</p>
<p>We have sales data that we mainly query by date or date range, by putting the clustered index over the date column that has significantly increased the performance of the related queries.  Is the overhead only in space used, or is there more to consider that I am missing?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SQL Server and Cloud Links for the Week &#124; Brent Ozar - SQL Server DBA</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-3630</link>
		<dc:creator>SQL Server and Cloud Links for the Week &#124; Brent Ozar - SQL Server DBA</dc:creator>
		<pubDate>Fri, 15 May 2009 13:07:59 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-3630</guid>
		<description>[...] Why you gotta use the right field types - if you&#8217;re only storing 10 characters of data, you don&#8217;t need a 50-character bag.  The bigger the bag, the more the bag weighs, and your SQL Server slows down because it&#8217;s gotta carry all these big bags.  Michelle Ufford explains (with much more accurate language) how this affects your SQL Server performance. [...]</description>
		<content:encoded><![CDATA[<p>[...] Why you gotta use the right field types &#8211; if you&#8217;re only storing 10 characters of data, you don&#8217;t need a 50-character bag.  The bigger the bag, the more the bag weighs, and your SQL Server slows down because it&#8217;s gotta carry all these big bags.  Michelle Ufford explains (with much more accurate language) how this affects your SQL Server performance. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Caleb Benefiel</title>
		<link>http://sqlfool.com/2009/05/performance-considerations-of-data-types/comment-page-1/#comment-3568</link>
		<dc:creator>Caleb Benefiel</dc:creator>
		<pubDate>Wed, 13 May 2009 20:45:08 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=951#comment-3568</guid>
		<description>Great article!  One note regarding clustered indexes on uniqueidentifiers:

&quot;Uniqueidentifiers are an expensive pointer because they are typically not sequential and because they consume 16 bytes. One environment in which I’ve worked contained two tables, each with over a billion rows, clustered on a non-sequential uniqueidentifier, and 99.998% fragmented.&quot;

I have run into similar situations.  Depending on how and where the GUID is being generated, NEWSEQUENTIALID() can be a great alternative to refactoring the database.  http://msdn.microsoft.com/en-us/library/ms189786.aspx   You still have the 16 byte vs 8 byte consideration, but the fragmentation problem is largely mitigated.

Caleb</description>
		<content:encoded><![CDATA[<p>Great article!  One note regarding clustered indexes on uniqueidentifiers:</p>
<p>&#8220;Uniqueidentifiers are an expensive pointer because they are typically not sequential and because they consume 16 bytes. One environment in which I’ve worked contained two tables, each with over a billion rows, clustered on a non-sequential uniqueidentifier, and 99.998% fragmented.&#8221;</p>
<p>I have run into similar situations.  Depending on how and where the GUID is being generated, NEWSEQUENTIALID() can be a great alternative to refactoring the database.  <a href="http://msdn.microsoft.com/en-us/library/ms189786.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms189786.aspx</a>   You still have the 16 byte vs 8 byte consideration, but the fragmentation problem is largely mitigated.</p>
<p>Caleb</p>
]]></content:encoded>
	</item>
</channel>
</rss>

