<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Never Say Never &#187; Rants</title>
	<atom:link href="http://phelabaum.com/archive/tag/rants/feed/" rel="self" type="application/rss+xml" />
	<link>http://phelabaum.com</link>
	<description>MS SQL Server Development</description>
	<lastBuildDate>Thu, 29 Sep 2011 02:20:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Calculating ROI on Performance Tuning</title>
		<link>http://phelabaum.com/archive/2010/06/calculating-roi-on-performance-tuning/</link>
		<comments>http://phelabaum.com/archive/2010/06/calculating-roi-on-performance-tuning/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 05:09:45 +0000</pubDate>
		<dc:creator>Seth Phelabaum</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Common Problems]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://phelabaum.com/archive/2010/06/calculating-roi-on-performance-tuning/</guid>
		<description><![CDATA[Recently on the SSC forums, someone asked about how to measure the money in an actual dollar figure that they have saved the company with their performance tuning.&#160; I&#8217;ve often struggled with this myself, and so I started thinking about it a bit deeper.&#160; I started to respond in the thread; then decided I was [...]]]></description>
			<content:encoded><![CDATA[<p>Recently on the SSC forums, someone asked about how to measure the money in an actual dollar figure that they have saved the company with their performance tuning.&#160; I&#8217;ve often struggled with this myself, and so I started thinking about it a bit deeper.&#160; I started to respond in the thread; then decided I was going to be a bit too long winded so I moved it here.&#160;&#160; The following are some of my thoughts/opinions on the subject.</p>
<p>I think everyone will agree that it&#8217;s probably not worth the time to optimize a report that runs once a month at 3 AM on a Saturday to go from 10 minutes to 2 minutes.&#160; Most people would also agree that it&#8217;s worth optimizing a query that users have to wait on nonstop all day long to take it from 5 seconds to 2 seconds (or even 4.5 seconds depending on the amount of time it&#8217;d take to accomplish that change, 10% is still pretty huge for something being used constantly).&#160; For the latter, you can probably take the improvement percentage and multiply it by the salaries of all those affected and come up with a number&#8230; but is it fair to assume that that number goes straight to you? </p>
<p>Let&#8217;s take a data entry process for an example.&#160; We&#8217;ll say we have employees doing data entry and 50% of their time is spent entering things that rely on a stored procedure that takes 5 seconds to run.&#160; You improve that SP to run in 1s.&#160; While this is obviously an improvement, is it fair to take 80% of 50% of their pay and attribute it to your performance savings?&#160; I&#8217;d say not.&#160; For one thing, you have the keying in of the information before they hit save and wait on the query.&#160; Let&#8217;s say they spend half their time typing and half of it waiting on that query to run.&#160; We&#8217;re now talking about 80% of 25%.&#160; Then, factor in the rest of the process.&#160; Perhaps that 5 seconds that they spend &#8216;waiting&#8217; is really spent flipping to the next page of their data or tabbing to some other application which it takes them 3 seconds to do anyways.&#160; Now you&#8217;re only talking about 40% of 25%.&#160; </p>
<p>At the very least, you can *guess* at what number you saved there.&#160; The numbers are a lot harder to get for anything that users don&#8217;t directly wait on.&#160; A few examples of these types of queries might be: </p>
<p>Agent Jobs that run constantly throughout the day   <br />Pre-aggregated reports or data tables that run periodically and store that data for on demand usage    <br />Processes that take only milliseconds but might perform more reads or writes than necessary but are run hundreds of thousands of times a day. </p>
<p>Is there any direct ROI on improving these things?&#160; Maybe&#8230; maybe not.&#160; If that process that takes a few milliseconds but runs constantly takes more locks than it truly needs, it could lead to slowing everything else down by fractional amounts or cause blocking/deadlocking issues in your database that &#8216;freeze&#8217; users and force them to wait, thus wasting time and money.&#160; However, maybe it never would have gotten to that point.&#160; If you weren&#8217;t proactive with fixing that because it wasn&#8217;t causing any problems right now, it could end up costing the company tens or hundreds of thousands of dollars in lost productivity if and when it DID become a problem.&#160; You could measure that.&#160; But is it fair to measure it if you addressed the issue preemptively and it never happened?&#160; How do you come up with a number in this case?&#160; How do you decide what to count *for* yourself and what to count against yourself?&#160; </p>
<p>Going a completely different route, let&#8217;s look at bug fixing.&#160; Let&#8217;s say you identify a loophole in the invoicing process that only applies to .05% of invoices because of the rare criteria.&#160; Maybe that loophole only cost you a few hundred dollars for the 2 years it has existed, but it *could* have cost you thousands depending on which line items it happened to affect.&#160; Do you count the hundreds of dollars it already cost you, or the thousands of dollars it would have eventually cost? </p>
<p>Then you have the customers to take into account on things like a public facing website.&#160; This is also nearly impossible to measure.&#160; If your web queries are all inefficient and slow, it might make your website feel sluggish, unresponsive or broken.&#160; Your queries could also have bugs that return errors to the customers.&#160; Addressing either of these things is obviously going to improve your customers&#8217; experience while browsing your website, but how do you convert that into a physical dollar amount?&#160; Can you claim a percentage of the revenue from that customer because you improved their web viewing experience?&#160; I doubt the sales team would agree with whatever percentage you thought should be attributed to IT/development.&#160; What about additional features on the website that are the deciding factor in getting new customers?&#160; In most cases customers aren&#8217;t going to come right out and say &quot;You know, I was really on the fence about which company to go with, but seeing that I could just check my ___ on your website really made me choose you.&quot;&#160; </p>
<p>At the end of the day, if you really want to calculate a dollar value of the things you&#8217;ve done, I think you have to break things down to a very low level.&#160; Create a range for each thing you fix, improve or create and have that range readily available.&#160; Then when someone asks, you can present your numbers with a range for each item and they can make up their own mind at what is fair.&#160; </p>
<p>Unfortunately, most companies view IT/Development as a &#8216;necessary evil&#8217; that doesn&#8217;t produce anything.&#160; These numbers probably aren&#8217;t going to change their minds, but you should at least be able to keep the focus on &#8216;necessary&#8217; and off of &#8216;evil&#8217;.&#160; The irony is that just about everything work related you do potentially saves or makes the company money in some manner&#8230; everything except sitting around trying to calculate how much money you&#8217;ve saved them.</p>
]]></content:encoded>
			<wfw:commentRss>http://phelabaum.com/archive/2010/06/calculating-roi-on-performance-tuning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug: Reporting Services 2K8, SSMS and Windows 7</title>
		<link>http://phelabaum.com/archive/2010/04/bug-reporting-services-2k8-ssms-and-windows-7/</link>
		<comments>http://phelabaum.com/archive/2010/04/bug-reporting-services-2k8-ssms-and-windows-7/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 02:29:20 +0000</pubDate>
		<dc:creator>Seth Phelabaum</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://phelabaum.com/archive/2010/04/bug-reporting-services-2k8-ssms-and-windows-7/</guid>
		<description><![CDATA[[Edit] Since writing this, I&#8217;ve realized that the true reason behind this was that my account was not a member of the System Administrators Role in SSRS.  Once I adressed that (see this post for details), I no longer had to run SSMS as an administrator to modify roles.  This is probably not a bug. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>[Edit]</strong> Since writing this, I&#8217;ve realized that the true reason behind this was that my account was not a member of the System Administrators Role in SSRS.  Once I adressed that (see <a href="http://phelabaum.com/archive/2010/04/reporting-services-and-windows-7-home-premium/">this post</a> for details), I no longer had to run SSMS as an administrator to modify roles.  This is probably not a bug.  I&#8217;m fairly sure that I added myself (The account I was using) during SSRS installation, but since it was a while ago now, I can&#8217;t swear to that.  This was the other reason I was holding off on submitting it as a bug&#8230; to see if I either figured it out or someone else told me why I was wrong.</p>
<p>Was attempting to write a blog post for T-SQL Tuesday this evening and was making good progress until I hit a 2 hour roadblock.  As far as I can tell, this is a combined issue between Windows 7, SSMS, SQL Server 2008 and reporting Services.  Basically, unless you choose &#8216;Run as Administrator&#8217; for SSMS, you cannot: Add new roles, edit existing roles, etc. in Reporting services inside of SSMS, regardless of the permissions of the user you connect as.  Highly frustrating and very hard to find a solution for online.</p>
<p>I could not deploy reports.  I could not add or edit roles.  I could not do anything to fix the problem until I ran the tool as an administrator.  Why that has anything to do with permissions inside of Reporting services I don&#8217;t know, but it definitively does.  I found it extremely hard to believe that this was a legitimate reason and went back and forth between administrator / normal 3 times and it changed my ability to modify things each time.  The account I’m logged into is a local windows admin, this is a laptop and not a member of a domain.  This account is also a sysadmin of the sql server instance and the account used to run the reporting services service, etc.  None of that matters.</p>
<p>Running SSMS Regularly:</p>
<p><a href="http://phelabaum.com/wp-content/uploads/2010/04/NewRoleGreyedOut.jpg"><img style="display: inline; border: 0px;" title="NewRoleGreyedOut" src="http://phelabaum.com/wp-content/uploads/2010/04/NewRoleGreyedOut_thumb.jpg" border="0" alt="NewRoleGreyedOut" width="244" height="119" /></a> <a href="http://phelabaum.com/wp-content/uploads/2010/04/PropertiesGreyedOut.jpg"><img style="display: inline; border: 0px;" title="PropertiesGreyedOut" src="http://phelabaum.com/wp-content/uploads/2010/04/PropertiesGreyedOut_thumb.jpg" border="0" alt="PropertiesGreyedOut" width="244" height="141" /></a></p>
<p>Running as Administrator:</p>
<p><a href="http://phelabaum.com/wp-content/uploads/2010/04/RSRunasAdmin.jpg"><img style="display: inline; border: 0px;" title="RSRunasAdmin" src="http://phelabaum.com/wp-content/uploads/2010/04/RSRunasAdmin_thumb.jpg" border="0" alt="RSRunasAdmin" width="152" height="119" /></a></p>
<p><strong>System/DB/App Specs:</strong></p>
<blockquote><p>Microsoft SQL Server Management Studio           10.0.2531.0<br />
Microsoft Analysis Services Client Tools              10.0.1600.22<br />
Microsoft Data Access Components (MDAC)       6.1.7600.16385<br />
Microsoft MSXML                                              3.0 5.0 6.0<br />
Microsoft Internet Explorer                                  8.0.7600.16385<br />
Microsoft .NET Framework                                 2.0.50727.4927<br />
Operating System                                             6.1.7600  (Windows 7 64 bit)</p></blockquote>
<p>SQL Version: Microsoft SQL Server 2008 (SP1) &#8211; 10.0.2531.0 (X64)   Mar 29 2009 10:11:52   Copyright (c) 1988-2008 Microsoft Corporation  Developer Edition (64-bit) on Windows NT 6.1 &lt;X64&gt; (Build 7600: )</p>
<p>Plan to open a connect ticket as soon as I figure out how (Never done it before, and I&#8217;m not finding it very intuitive to submit a bug) and ensure there isn&#8217;t one open already.  As a side note, running SSMS as an administrator seems to break SSMS Tools and doesn&#8217;t allow rocketdock to overlay it, so I guess I can choose between running an addon or making changes to my SSRS installation =).</p>
<p>OK, rant off.  That&#8217;s all for this post, but I want to post a few of the things I tried to search for at the bottom of this post to see if I can possibly save someone else some time with this one.  Ignore the rest of this.</p>
<p>Reporting Services Insufficient Permissions<br />
Error rsAccessDenied : The permissions granted to user  are insufficient for performing this operation.<br />
Reporting Services New Role Greyed Out SSMS Windows 7</p>
]]></content:encoded>
			<wfw:commentRss>http://phelabaum.com/archive/2010/04/bug-reporting-services-2k8-ssms-and-windows-7/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

