<?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: 2 Features of SQL Server You Should Avoid</title>
	<atom:link href="http://www.brentozar.com/archive/2010/03/2-features-of-sql-server-you-should-avoid/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brentozar.com/archive/2010/03/2-features-of-sql-server-you-should-avoid/</link>
	<description>Your technology pain-relief experts.</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:37:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Brent Ozar</title>
		<link>http://www.brentozar.com/archive/2010/03/2-features-of-sql-server-you-should-avoid/comment-page-1/#comment-24023</link>
		<dc:creator>Brent Ozar</dc:creator>
		<pubDate>Thu, 04 Nov 2010 13:50:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.brentozar.com/?p=6853#comment-24023</guid>
		<description>Chris - just as you say you&#039;ve never run into that problem, I can say that I&#039;ve very frequently run into this problem.  Just because it&#039;s always worked for you doesn&#039;t mean it&#039;s always worked.  Best of luck, though!</description>
		<content:encoded><![CDATA[<p>Chris &#8211; just as you say you&#8217;ve never run into that problem, I can say that I&#8217;ve very frequently run into this problem.  Just because it&#8217;s always worked for you doesn&#8217;t mean it&#8217;s always worked.  Best of luck, though!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Leonard</title>
		<link>http://www.brentozar.com/archive/2010/03/2-features-of-sql-server-you-should-avoid/comment-page-1/#comment-24022</link>
		<dc:creator>Chris Leonard</dc:creator>
		<pubDate>Thu, 04 Nov 2010 13:48:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.brentozar.com/?p=6853#comment-24022</guid>
		<description>None of your worst-case scenarios are inevitable - they are just things you would have to deal with if you implemented this strategy stupidly.

For example, some places may have workflow division like that, and they would need to redress your concerns with good communication between teams, and you&#039;d hope that the system DBAs could be taught to scan the T-SQL code base for index references before doing drops.  That&#039;s easy, so your point is valid, but only to say that people need to do this right, not that people shouldn&#039;t do it.

In our case (and other places I&#039;ve worked - 7 jobs), we recognize that the application DBAs (the T-SQL developers) are the best experts for tuning and indexing decisions.  Our system DBAs (which it sounds like you are referring to) could get fired if they did what you are suggesting without talking to us first.  We run our own missing index / unused index reports, and before we drop an index we have a due-diligence checklist that goes beyond &quot;it hasn&#039;t been used in 6 months&quot; and also includes checks for hints.

So, if you don&#039;t mind me saying so, you&#039;re presenting a straw man, and one that&#039;s very easily overcome.  And if the proof is in the pudding?  I&#039;ve been working with SQL Server since 4.21a, and I think that the number of problems we&#039;ve permanently solved with hints is probably over 100, and the number of problems we&#039;ve introduced is 0.  Not because we&#039;re smarter than everybody else, just because we replaced the FUD-y &quot;never use hints&quot; with the much wiser &quot;use hints judiciously and safely.&quot;

By the way, in my current job, I have 5 T-SQL developers reporting to me, and another 4 at least in our office, with probably 20 at another site.  And I would say that about one-third to one-half of them understand how to use hints wisely and effectively.  Not quite as &quot;few and far between&quot; as you might think?

Cheers,
Chris</description>
		<content:encoded><![CDATA[<p>None of your worst-case scenarios are inevitable &#8211; they are just things you would have to deal with if you implemented this strategy stupidly.</p>
<p>For example, some places may have workflow division like that, and they would need to redress your concerns with good communication between teams, and you&#8217;d hope that the system DBAs could be taught to scan the T-SQL code base for index references before doing drops.  That&#8217;s easy, so your point is valid, but only to say that people need to do this right, not that people shouldn&#8217;t do it.</p>
<p>In our case (and other places I&#8217;ve worked &#8211; 7 jobs), we recognize that the application DBAs (the T-SQL developers) are the best experts for tuning and indexing decisions.  Our system DBAs (which it sounds like you are referring to) could get fired if they did what you are suggesting without talking to us first.  We run our own missing index / unused index reports, and before we drop an index we have a due-diligence checklist that goes beyond &#8220;it hasn&#8217;t been used in 6 months&#8221; and also includes checks for hints.</p>
<p>So, if you don&#8217;t mind me saying so, you&#8217;re presenting a straw man, and one that&#8217;s very easily overcome.  And if the proof is in the pudding?  I&#8217;ve been working with SQL Server since 4.21a, and I think that the number of problems we&#8217;ve permanently solved with hints is probably over 100, and the number of problems we&#8217;ve introduced is 0.  Not because we&#8217;re smarter than everybody else, just because we replaced the FUD-y &#8220;never use hints&#8221; with the much wiser &#8220;use hints judiciously and safely.&#8221;</p>
<p>By the way, in my current job, I have 5 T-SQL developers reporting to me, and another 4 at least in our office, with probably 20 at another site.  And I would say that about one-third to one-half of them understand how to use hints wisely and effectively.  Not quite as &#8220;few and far between&#8221; as you might think?</p>
<p>Cheers,<br />
Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brent Ozar</title>
		<link>http://www.brentozar.com/archive/2010/03/2-features-of-sql-server-you-should-avoid/comment-page-1/#comment-24019</link>
		<dc:creator>Brent Ozar</dc:creator>
		<pubDate>Thu, 04 Nov 2010 10:28:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.brentozar.com/?p=6853#comment-24019</guid>
		<description>Chris - unfortunately, if you use index hints to produce stable and efficient plans, you won&#039;t be sleeping at all after you bring in a DBA.  See, the DBA needs to build new indexes, consolidate existing ones, and remove the ones that aren&#039;t performing.  If you hard-coded index names into hints, you&#039;ll be constantly revisiting that and rereleasing your code every time the DBA needs to tune indexes.

It sounds great - right up until you learn that it doesn&#039;t, and by that point, you&#039;re in a world of hurt.  (And sleeplessness.)</description>
		<content:encoded><![CDATA[<p>Chris &#8211; unfortunately, if you use index hints to produce stable and efficient plans, you won&#8217;t be sleeping at all after you bring in a DBA.  See, the DBA needs to build new indexes, consolidate existing ones, and remove the ones that aren&#8217;t performing.  If you hard-coded index names into hints, you&#8217;ll be constantly revisiting that and rereleasing your code every time the DBA needs to tune indexes.</p>
<p>It sounds great &#8211; right up until you learn that it doesn&#8217;t, and by that point, you&#8217;re in a world of hurt.  (And sleeplessness.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Leonard</title>
		<link>http://www.brentozar.com/archive/2010/03/2-features-of-sql-server-you-should-avoid/comment-page-1/#comment-24017</link>
		<dc:creator>Chris Leonard</dc:creator>
		<pubDate>Thu, 04 Nov 2010 05:39:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.brentozar.com/?p=6853#comment-24017</guid>
		<description>Your point about the possibilities of better optimizations in future releases is true, BUT ...

if you have to choose between using hints to produce stable and efficient plans versus hoping that a future version of SQL Server will fix the problem, which would you really choose?

I&#039;d rather be efficient (ie, nearly optimal) all the time and get to sleep at night rather than having to live with inconsistent performance for queries that waffle between plans when they recompile.  And revisiting hinted stored procedures upon upgrade shouldn&#039;t be that monumental of a task if you don&#039;t use hints (or plans) too much.</description>
		<content:encoded><![CDATA[<p>Your point about the possibilities of better optimizations in future releases is true, BUT &#8230;</p>
<p>if you have to choose between using hints to produce stable and efficient plans versus hoping that a future version of SQL Server will fix the problem, which would you really choose?</p>
<p>I&#8217;d rather be efficient (ie, nearly optimal) all the time and get to sleep at night rather than having to live with inconsistent performance for queries that waffle between plans when they recompile.  And revisiting hinted stored procedures upon upgrade shouldn&#8217;t be that monumental of a task if you don&#8217;t use hints (or plans) too much.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Object Caching 545/557 objects using disk: basic

Served from: www.brentozar.com @ 2012-02-09 05:56:24 -->
