<?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: Partitioning 101</title>
	<atom:link href="http://sqlfool.com/2008/11/partitioning-101/feed/" rel="self" type="application/rss+xml" />
	<link>http://sqlfool.com/2008/11/partitioning-101/</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: Venky Subramaniam</title>
		<link>http://sqlfool.com/2008/11/partitioning-101/comment-page-1/#comment-5117</link>
		<dc:creator>Venky Subramaniam</dc:creator>
		<pubDate>Thu, 29 Apr 2010 00:37:02 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=88#comment-5117</guid>
		<description>Hi Michelle,
Interesting article...though I am not sure I understood certain words and abbreviations (for example, I assume that the word you used as &#039;deliminator&#039; is delimiter??..And &#039;mm&#039; against the number of records is basically meaning millions?). Sorry to sound obtuse, but maybe the definitions and abbreviations have changed and I am not aware :-). However, with regard to partitioning I have a few questions and i hope that you can shed some light...
--------------------------------------------------------------------------------------------
I have partitioned 5 large tables across 10 partitions (with 10 filegroups) and with a set of 5 - 6 users the performance seems to be adequate, with minimal conflicts (like deadlocks etc), but I want to implement this scheme that can scale to say 300+ users. With regard to this I have the following questions:

 - What is the maximum number of partitions that works optimally? In other words, even though SQL Server allows 1000 partitions per table, it would become an administrative nightmare were we to deploy such a scheme.

 - **Degradation Concerns**: What would be the maximum (but practical) number of partitions that one can deploy before one has to worry about degradation in performance and concurrency?

 - If the number of users access the same partition, what would be the negative impact on the overall scheme (in terms, again of performance)?

 - Does a multi-CPU environment enhance the overall performace? Of course, we can suggest to the client to use RAID based storage with data striped across multiple drives?

 - Any other aspects related to partitioning that can help me for implementation?

MORE DETAILS that might help you hone on the answers if any :

1. The largest table holds about 50 million rows as of now (but this is only a test db..) In other words it can grow to a billion. 

2. As of now I have about 10 partitions defined out of which only the first 6 are occupied. The number 10 is not a holy number or restrictive in any sense. I have just chosen this number to be at a manageable level.

3. The data density in other 4 tables can vary from 1 - 2 million.

4. Since the tables involved participate in JOIN operations, I have currently used the same partition function for all and the data distribution is based on a ‘derived’ partition_column called partition number. This way the associated tables are in the same partition. Each partition is associated with one filegroup that comprises of many files.

5. I have also aligned the indexes for the tables across the same partitions.

6. As for the available hardware, I need to contact the client as to what they have and whether they can upgrade if needed. I needed a ballpark infrastructure that I can use to recommend. In other words, at this juncture, I cannot state with confidence how powerful their servers are, but given a recommendation about the requirements, I am sure they would comply. I DO know that their servers are multi-CPU.

7. As for the RAID configuration to be suggested, would RAID 1 and RAID 10 serve the purpose? Both configurations conform to redundancy

Does this information suffice or do I need to provide more?

Please come back with your suggestions or questions and I shall try to provide more information if needed. While I can find several articles of partitioning (even from Microsoft MVPs), I would like answers in particular, to address my concerns expressed above.

With best regards,
Venky</description>
		<content:encoded><![CDATA[<p>Hi Michelle,<br />
Interesting article&#8230;though I am not sure I understood certain words and abbreviations (for example, I assume that the word you used as &#8216;deliminator&#8217; is delimiter??..And &#8216;mm&#8217; against the number of records is basically meaning millions?). Sorry to sound obtuse, but maybe the definitions and abbreviations have changed and I am not aware <img src='http://sqlfool.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . However, with regard to partitioning I have a few questions and i hope that you can shed some light&#8230;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
I have partitioned 5 large tables across 10 partitions (with 10 filegroups) and with a set of 5 &#8211; 6 users the performance seems to be adequate, with minimal conflicts (like deadlocks etc), but I want to implement this scheme that can scale to say 300+ users. With regard to this I have the following questions:</p>
<p> &#8211; What is the maximum number of partitions that works optimally? In other words, even though SQL Server allows 1000 partitions per table, it would become an administrative nightmare were we to deploy such a scheme.</p>
<p> &#8211; **Degradation Concerns**: What would be the maximum (but practical) number of partitions that one can deploy before one has to worry about degradation in performance and concurrency?</p>
<p> &#8211; If the number of users access the same partition, what would be the negative impact on the overall scheme (in terms, again of performance)?</p>
<p> &#8211; Does a multi-CPU environment enhance the overall performace? Of course, we can suggest to the client to use RAID based storage with data striped across multiple drives?</p>
<p> &#8211; Any other aspects related to partitioning that can help me for implementation?</p>
<p>MORE DETAILS that might help you hone on the answers if any :</p>
<p>1. The largest table holds about 50 million rows as of now (but this is only a test db..) In other words it can grow to a billion. </p>
<p>2. As of now I have about 10 partitions defined out of which only the first 6 are occupied. The number 10 is not a holy number or restrictive in any sense. I have just chosen this number to be at a manageable level.</p>
<p>3. The data density in other 4 tables can vary from 1 &#8211; 2 million.</p>
<p>4. Since the tables involved participate in JOIN operations, I have currently used the same partition function for all and the data distribution is based on a ‘derived’ partition_column called partition number. This way the associated tables are in the same partition. Each partition is associated with one filegroup that comprises of many files.</p>
<p>5. I have also aligned the indexes for the tables across the same partitions.</p>
<p>6. As for the available hardware, I need to contact the client as to what they have and whether they can upgrade if needed. I needed a ballpark infrastructure that I can use to recommend. In other words, at this juncture, I cannot state with confidence how powerful their servers are, but given a recommendation about the requirements, I am sure they would comply. I DO know that their servers are multi-CPU.</p>
<p>7. As for the RAID configuration to be suggested, would RAID 1 and RAID 10 serve the purpose? Both configurations conform to redundancy</p>
<p>Does this information suffice or do I need to provide more?</p>
<p>Please come back with your suggestions or questions and I shall try to provide more information if needed. While I can find several articles of partitioning (even from Microsoft MVPs), I would like answers in particular, to address my concerns expressed above.</p>
<p>With best regards,<br />
Venky</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Partitioning Tricks : SQL Fool</title>
		<link>http://sqlfool.com/2008/11/partitioning-101/comment-page-1/#comment-4970</link>
		<dc:creator>Partitioning Tricks : SQL Fool</dc:creator>
		<pubDate>Fri, 09 Oct 2009 19:12:40 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=88#comment-4970</guid>
		<description>[...] for more information on table partitioning? Check out my overview of partitioning, my example code, and my article on indexing on partitioned [...]</description>
		<content:encoded><![CDATA[<p>[...] for more information on table partitioning? Check out my overview of partitioning, my example code, and my article on indexing on partitioned [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SQL Fool</title>
		<link>http://sqlfool.com/2008/11/partitioning-101/comment-page-1/#comment-4456</link>
		<dc:creator>SQL Fool</dc:creator>
		<pubDate>Thu, 11 Jun 2009 23:31:26 +0000</pubDate>
		<guid isPermaLink="false">http://sqlfool.com/?p=88#comment-4456</guid>
		<description>[...] toyed with the idea of rolling my own version of replication with Service Broker because of the inability to swap out partitions on a replicated table in SQL 2005. But I still haven&#8217;t had a good excuse to build and deploy Service Broker to production, so [...]</description>
		<content:encoded><![CDATA[<p>[...] toyed with the idea of rolling my own version of replication with Service Broker because of the inability to swap out partitions on a replicated table in SQL 2005. But I still haven&#8217;t had a good excuse to build and deploy Service Broker to production, so [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

