<?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: Ultimate query tuning	</title>
	<atom:link href="https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/feed/" rel="self" type="application/rss+xml" />
	<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/</link>
	<description></description>
	<lastBuildDate>Fri, 30 Aug 2013 13:51:42 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>
	<item>
		<title>
		By: Ian Stirk		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2377</link>

		<dc:creator><![CDATA[Ian Stirk]]></dc:creator>
		<pubDate>Fri, 30 Aug 2013 13:51:42 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2377</guid>

					<description><![CDATA[Great post, a very useful and smart algorithm...
Ian]]></description>
			<content:encoded><![CDATA[<p>Great post, a very useful and smart algorithm&#8230;<br />
Ian</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2376</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Sun, 25 Aug 2013 17:07:30 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2376</guid>

					<description><![CDATA[Yes - I see a lot of potential around filtered indexes. They also help if you have a fixed inequality predicate and want the data ordered by something else. So much potential...]]></description>
			<content:encoded><![CDATA[<p>Yes &#8211; I see a lot of potential around filtered indexes. They also help if you have a fixed inequality predicate and want the data ordered by something else. So much potential&#8230;</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: TheSQLGuru		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2375</link>

		<dc:creator><![CDATA[TheSQLGuru]]></dc:creator>
		<pubDate>Sat, 24 Aug 2013 20:37:06 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2375</guid>

					<description><![CDATA[Another great opportunity for filtered indexes is where you have large data skew. &#160;You can get the right query plan both ways (either scans/hashes for the skew(ed) values or seeks/nested loops for onesy-twosy values) with indexes that are a fraction of the normal index size.]]></description>
			<content:encoded><![CDATA[<p>Another great opportunity for filtered indexes is where you have large data skew. &nbsp;You can get the right query plan both ways (either scans/hashes for the skew(ed) values or seeks/nested loops for onesy-twosy values) with indexes that are a fraction of the normal index size.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2374</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Sat, 24 Aug 2013 12:59:09 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2374</guid>

					<description><![CDATA[Hi David,
This example was inspired by some tuning I did for a client a while back. The filter was looking for rows that met a particular condition, because things in that condition needed attention. &#160;Once they had been seen to, the condition wasn&#039;t true any more, so the filtered index returned to being empty.
Another scenario could be to have a &#034;Payment Pending&#034; situation. Most people pay straight away, but occasionally you might have something which enters a special &#034;needs attention&#034; state for a short while.
Does that help?
Rob]]></description>
			<content:encoded><![CDATA[<p>Hi David,<br />
This example was inspired by some tuning I did for a client a while back. The filter was looking for rows that met a particular condition, because things in that condition needed attention. &nbsp;Once they had been seen to, the condition wasn&#8217;t true any more, so the filtered index returned to being empty.<br />
Another scenario could be to have a &quot;Payment Pending&quot; situation. Most people pay straight away, but occasionally you might have something which enters a special &quot;needs attention&quot; state for a short while.<br />
Does that help?<br />
Rob</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: David Howell		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2373</link>

		<dc:creator><![CDATA[David Howell]]></dc:creator>
		<pubDate>Sat, 24 Aug 2013 12:43:59 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2373</guid>

					<description><![CDATA[I can see lots of usage scenarios for this, thanks for the easy to follow example. 
I didn&#039;t get what you mean by this part &#034;For the real scenario, that row gets picked up and removed quite quickly, returning the query to the ‘zero reads’ scenario.&#034; 
In the real scenario where you are looking for order quantity &#062; 1200, why would a row in the index be removed in the query? I think I am just reading that wrong, could you explain it simply?]]></description>
			<content:encoded><![CDATA[<p>I can see lots of usage scenarios for this, thanks for the easy to follow example.<br />
I didn&#8217;t get what you mean by this part &quot;For the real scenario, that row gets picked up and removed quite quickly, returning the query to the ‘zero reads’ scenario.&quot;<br />
In the real scenario where you are looking for order quantity &gt; 1200, why would a row in the index be removed in the query? I think I am just reading that wrong, could you explain it simply?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2372</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Fri, 23 Aug 2013 10:11:24 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2372</guid>

					<description><![CDATA[Indeed! The same applies for ANSI_NULLS, which must be ON. There are actually a bunch of things that require those settings, and apparently one day SQL will refuse connections which don&#039;t have those settings configured properly.]]></description>
			<content:encoded><![CDATA[<p>Indeed! The same applies for ANSI_NULLS, which must be ON. There are actually a bunch of things that require those settings, and apparently one day SQL will refuse connections which don&#8217;t have those settings configured properly.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: ALZDBA		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2371</link>

		<dc:creator><![CDATA[ALZDBA]]></dc:creator>
		<pubDate>Fri, 23 Aug 2013 10:03:20 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2371</guid>

					<description><![CDATA[Great post, Rob.
I just feel the need to emphasize the needed SET options when working with filtered indexes, as these settings a mandatory for all connections hitting that table. 
So not only at create time of the index !
( bol/technet weren&#039;t clear on this : &lt;a href=&quot;http://technet.microsoft.com/en-us/library/ms188783.aspx&quot; rel=&quot;nofollow ugc&quot;&gt;http://technet.microsoft.com/en-us/library/ms188783.aspx&lt;/a&gt; )
Been bit by it once ( on a production system after dev/QA worked fine but apparently not all apps had been tested ).
&#034;UPDATE failed because the following SET options have incorrect settings: &#039;QUOTED_IDENTIFIER&#039;. &#034;
This blog helped me diagnose and solve the issue: &lt;a href=&quot;http://akashonly.blogspot.be/2012/01/filtered-index-and-quotedidentifier.html&quot; rel=&quot;nofollow ugc&quot;&gt;http://akashonly.blogspot.be/2012/01/filtered-index-and-quotedidentifier.html&lt;/a&gt;]]></description>
			<content:encoded><![CDATA[<p>Great post, Rob.<br />
I just feel the need to emphasize the needed SET options when working with filtered indexes, as these settings a mandatory for all connections hitting that table.<br />
So not only at create time of the index !<br />
( bol/technet weren&#8217;t clear on this : <a href="http://technet.microsoft.com/en-us/library/ms188783.aspx" rel="nofollow ugc">http://technet.microsoft.com/en-us/library/ms188783.aspx</a> )<br />
Been bit by it once ( on a production system after dev/QA worked fine but apparently not all apps had been tested ).<br />
&quot;UPDATE failed because the following SET options have incorrect settings: &#8216;QUOTED_IDENTIFIER&#8217;. &quot;<br />
This blog helped me diagnose and solve the issue: <a href="http://akashonly.blogspot.be/2012/01/filtered-index-and-quotedidentifier.html" rel="nofollow ugc">http://akashonly.blogspot.be/2012/01/filtered-index-and-quotedidentifier.html</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: John Hennesey		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2370</link>

		<dc:creator><![CDATA[John Hennesey]]></dc:creator>
		<pubDate>Thu, 22 Aug 2013 23:45:11 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2370</guid>

					<description><![CDATA[I agree with Andre - the light bulb just turned on! &#160;I haven&#039;t seen it presented in such a manner that makes such sense. &#160;Thanks!]]></description>
			<content:encoded><![CDATA[<p>I agree with Andre &#8211; the light bulb just turned on! &nbsp;I haven&#8217;t seen it presented in such a manner that makes such sense. &nbsp;Thanks!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2369</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Thu, 22 Aug 2013 00:55:01 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2369</guid>

					<description><![CDATA[Jack - yes, that&#039;s a useful benefit too.
pmbAustin - Indexes shouldn&#039;t change the results of a query. If an index doesn&#039;t provide sufficient coverage of the table to satisfy a query, the SQL engine won&#039;t pretend it does. A filter like IsActive=1 will only be used for queries that include an IsActive=1 predicate.]]></description>
			<content:encoded><![CDATA[<p>Jack &#8211; yes, that&#8217;s a useful benefit too.<br />
pmbAustin &#8211; Indexes shouldn&#8217;t change the results of a query. If an index doesn&#8217;t provide sufficient coverage of the table to satisfy a query, the SQL engine won&#8217;t pretend it does. A filter like IsActive=1 will only be used for queries that include an IsActive=1 predicate.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: pmbAustin		</title>
		<link>https://lobsterpot.com.au/blog/2013/08/20/ultimate-query-tuning/#comment-2368</link>

		<dc:creator><![CDATA[pmbAustin]]></dc:creator>
		<pubDate>Thu, 22 Aug 2013 00:19:28 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3266#comment-2368</guid>

					<description><![CDATA[Based on your other blog entry... is there potential for a filtered index like this to &#034;break&#034; queries, by changing the data they return? &#160;If you do 80% of your queries for &#034;IsActive=1&#034;, but the other 20% on all rows, will the filtered index cause any danger of it being used when looking at all rows? &#160;Is there a &#034;best practice&#034; for doing things like creating two indexes, one filtered one not, so the optimizer has the best index to choose in each case?]]></description>
			<content:encoded><![CDATA[<p>Based on your other blog entry&#8230; is there potential for a filtered index like this to &quot;break&quot; queries, by changing the data they return? &nbsp;If you do 80% of your queries for &quot;IsActive=1&quot;, but the other 20% on all rows, will the filtered index cause any danger of it being used when looking at all rows? &nbsp;Is there a &quot;best practice&quot; for doing things like creating two indexes, one filtered one not, so the optimizer has the best index to choose in each case?</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
