﻿<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>SQL Dumbass</title>
	<updated>2008-12-02T23:03:46Z</updated>
	<id>http://sqldumbass.com/atom.aspx</id>
	<link rel="self" href="http://sqldumbass.com/atom.aspx" />
	<link rel="alternate" href="http://sqldumbass.com" />
	<generator uri="http://app.onlinequickblog.com/" version="2.0">Quick Blogcast</generator>
	<entry>
		<title>Cannot connect to server</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/11/26/cannot-connect-to-server.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-11-26:d5f4bcf6-fa92-413d-b33e-658568c24be1</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-11-26T12:37:14Z</updated>
		<published>2008-11-26T11:29:00Z</published>
		<content type="html"><![CDATA[Had a quick and pleasant exchange the other day with a developer. Seems that they had some missing data, so they decided to register the server in SSMS and look into the matter directly. And that led to this exchange:<BR><BR>Developer: I cannot connect to ServerX. Please fix.<BR><BR>Me: Which database on ServerY&nbsp;are you trying to connect to? Also, please show me the error message.<BR><BR>Developer: DatabaseA. I am using SSMS.<BR><BR>Me: <FONT size=2>Can you please let me know the error you are getting while trying to connect?</FONT><BR><BR>Developer: <EM>Finally shows the error, and it only took three emails!</EM><BR><BR>Me: The server name is ServerY instead of ServerX.<BR><BR>Developer: Thanks I will try that instead. It is possible that the load has not completed yet.<BR><BR><BR><BR>So...you are looking for missing data...on a server that does not exist...and the load has not finished yet?<BR><BR>Either you need coffee, or you are a dumbass. Your choice.]]></content>
	</entry>
	<entry>
		<title>Gigs, I tell you!  Gigs!</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/11/07/gigs-i-tell-you--gigs.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-11-07:32209904-1c1a-4339-afad-645736b88880</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-11-07T23:24:57Z</updated>
		<published>2008-11-07T22:45:00Z</published>
		<content type="html"><![CDATA[I got an email invitation to a Windows Live chat request the other day from a complete stranger, and normally I'd just get out my credit card, but this time they weren't offering hot chat action or a Viagra sample.&nbsp; This person said they had a SQL Server project - not a question, but a whole project, and they wanted to chat about it.<br><br>I don't know about you, but when somebody wants to start an instant messenger conversation about a prospective business transaction, I get a bad vibe.&nbsp; It screams unprofessional.&nbsp; I gave him the benefit of the doubt and emailed him back.&nbsp; This blog post sums up the thread, albeit with names changed and humor improved.&nbsp; Keep in mind that you're only hearing my side of the story - I'm sure the guy would paint a very different picture.<br><br>Me: I'm trying to accept the chat request, but it's not working.&nbsp; It might be the firewall where I'm at.&nbsp; Can you shoot me an email with a summary of what you're after?<br><i><br>Him: I'd rather chat or talk in person.&nbsp; When's a good time to reach you?</i><br><br>Me: Sorry, I'm not in the market right now, so I don't take calls without at least a rough idea of what's involved.&nbsp; Wouldn't want to waste your time or mine.&nbsp; Thanks anyway, and have a great weekend!<br><br><i>Him: Large information retrieval database (gigs) in need of performance optimization and a rethink of architecture.<br></i><br>What I Wanted to Say: Gigs?&nbsp; Like, <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820208378">gigabytes</a>?&nbsp; Wow.<br>What I Actually Said: And what's the salary range?<br><br><i>Him: This is a consulting gig.&nbsp; I heard you helped out Company X, so I thought you might be interested in this.<br></i><br>What I Wanted To Say: Ah, the standard universally accepted consulting rate, one miiiiiillion dollars?<br>What I Actually Said: And the rate?<br><br><i>Him: The question is not the rate, the question is value for the money.&nbsp; I prefer results-oriented arrangements over pay by the hour.&nbsp; There's probably a few hours of ramp-up time involved with understanding the situation, research hours to come up with ideas, some hours to try those out, and then some hours to come up with future directions.<br></i><br>What I Wanted to Say: Ah, you want me to sign a fixed-price contract, find your performance bottlenecks, tell you where they are, and then you'll take those recommendations to RentACoder.com to have some flunkie implement it for $50 without paying me for my time?&nbsp; No thanks.<br>What I Actually Said: Thanks for your email, but it doesn't sound like we're making progress.&nbsp; I wish you the best of luck in your search, and have a great weekend.<br><br><i>Him: Why do you keep stressing the rate without inquiring about the challenge?&nbsp; If you're so concerned about the rate, name your price and let's get past it.<br></i><br>What I Wanted To Say: I base my price on the feeling I get from working with people.&nbsp; I worked with Company X for free because they're brilliant guys that I was honored to help out, and they summed up their entire problem in less than 140 characters.&nbsp; You, sir, are causing a simple transaction to drag out interminably, which means this project is going to blow chunks, so I'm going to charge you $250/hour.&nbsp; I've never actually made that much on a contract, but it's the only way I'm going to be able to stomach working with you.<br>What I Actually Said: $250/hour.<br><br><i>Him: Okay, so you can take the number of hours you need to deliver and divide that out.&nbsp; That will be your compensation should you achieve the result.&nbsp; Work for you?<br></i><br>What I Wanted To Say: The result you wanted was a "rethink of architecture" - there is no way you're ever going to be done with that as a deliverable.&nbsp; That's a scope creep nightmare on a fixed price contract.&nbsp; Goodbye.<br>What I Actually Said: No, thanks, how about hourly?<br><br><i>Him: I don't know you enough to be comfortable paying $250/hour with no end in sight.&nbsp; Your asking rate is *very* high, so I am asking you to put your money where your mouth is.<br></i><br>What I Wanted To Say: You nailed it when you said "with no end in sight" - that's how fixed-price contracts work, and that's what you want.&nbsp; I've played that game before, and the contractor always loses.<br>What I Actually Said: If that seems high, then we're probably not a good fit for each other.&nbsp; You'll probably get a more appropriate fit from a contractor site like SoloGig.com.&nbsp; Just FYI, <span style="font-weight: bold;">you</span> contacting <span style="font-weight: bold;">me</span> saying you've heard about the quality of my work from someone else, and then asking <span style="font-weight: bold;">me</span> to put <span style="font-weight: bold;">my</span> money where <span style="font-weight: bold;">my</span> mouth is - that's a sure way to end a business conversation.<br><br><i>Him: Regretfully, I must agree that I don't think this will work out.&nbsp; Maybe it was because I came to you anonymously, but your attitude has been anything but productive.<br></i><br>What I Wanted To Say: Your Hotmail address has your real name in it, your email sig has your real name, and your LinkedIn.com page has your business name on it.&nbsp; If you think you're being anonymous, you should be aware that I can't see the Groucho Marx glasses you're wearing while you type emails.<br>What I Actually Said: Agreed - neither of us were getting good vibes.&nbsp; For what it's worth, I was happy to help Company X for free.<br>]]></content>
	</entry>
	<entry>
		<title>Backups and Boat Drinks</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/11/01/backups-and-boat-drinks.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-11-01:6e9d4d06-595e-48d1-90ab-8a1b0395592b</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-11-01T09:17:58Z</updated>
		<published>2008-11-01T08:23:00Z</published>
		<content type="html"><![CDATA[My cell phone rang, and when I looked at the display, it showed a picture of a boat.&nbsp; I put on my happiest voice and answered, "Buddy!&nbsp; Pal!&nbsp; Haven't heard from you in a couple of weeks."<br><br><i>Him: "Man, I really need your help.&nbsp; I know I've called you a lot, but this time it's serious, man."</i><br><br>"Let your old friend handle it for you.&nbsp; What's up?"<br><br><i>Him: "My backups this time.&nbsp; They keep failing, man!&nbsp; If I can't get this database backed up, they're going to start asking questions, and they're going to figure out that I - "</i><br><br>"No problem.&nbsp; Your network guys still haven't shut down LogMeIn.com, right?&nbsp; I'll take control of your desktop.&nbsp; Just don't touch the mouse."<br><i><br>Him: "I swear, man, you get this fixed, and I'll give you that damn boat!&nbsp; You can just have it!"</i><br><br>See, there's a problem.&nbsp; The great thing about a slow friend with a boat is that he lends it to you all the time and never notices that the gas tank is empty when you bring it back.&nbsp; I'd rather he kept the boat payments, insurance payments, gas payments, dock payments, and headaches.&nbsp; I handled it the way a good DBA handles any bad news - he makes lemonade.<br><br>"No, I could never do that to you, pal.&nbsp; Alright, so let's look at your SQL Server Agent jobs.&nbsp; It looks like this one here is the full backup job, right?"<br><br><i>Him: "Yeah.&nbsp; I made my own maintenance plan.&nbsp; Pretty cool, huh?"</i><br><br>"Nice work.&nbsp; Why is the start time all over the place?&nbsp; 6pm, 7pm, 5pm...."<br><br><i>Him: "When it started failing, I moved the start time earlier and later trying to see if that was the problem.&nbsp; But it just keeps failing at different times!"</i><br><br>"Hmmm - no, it's failing at the same time.&nbsp; It's failing around 8pm.&nbsp; The job duration is just all over the place because you keep moving the start time around.&nbsp; See, when it starts at 6pm, it fails after two hours.&nbsp; When it starts at 7pm, it fails after one hour.&nbsp; When it starts at - "<br><br><i>Him: "You're a genius, man!"</i><br><br>"No, but I play one on my blog.&nbsp; So what happens on your server at 8pm?"&nbsp; After a few seconds of silence, I thought I'd lost him.&nbsp; "You still there?"<br><br><i>Him: "Oh, me?&nbsp; You want me to answer that?&nbsp; I thought it was some kind of trick question, man."</i><br><br>Ugh.&nbsp; I went into his agent jobs, sorted by start time, and didn't see anything suspicious.&nbsp; He kept swearing he didn't have any scheduled jobs at night, but I knew better than to listen, so I went into his Windows Scheduled Tasks.&nbsp; "What's this one?" I asked, my mouse pointer circling emphatically around a job with a cryptic name.<br><br><i>Him: "Oh.&nbsp; Yeah.&nbsp; But that's good!&nbsp; I need that."</i><br><br>"What's it do?"<br><i><br>Him: "We bought a virtual tape vault thingy that grabs a snapshot of each machine.&nbsp; I got it in case my backups fail.&nbsp; And thank God I did, because my backups are failing and now I've got a safety net?"</i><br><br>"When'd you get it?"&nbsp; My mouse zipped through menus until it got back to the SQL Server Agent job history.&nbsp; "Round about a month ago?&nbsp; Say, the seventh?"<br><br><i>Him: "Uhhh - yeah, that sounds about right."</i><br><br>The same time the jobs started failing, of course.&nbsp; I went back to the Scheduled Tasks, looked at the batch file that was running at 9pm, and saw that the first line was stopping the SQL Server service.&nbsp; This backup solution was stopping SQL so that the MDF/LDF/NDF files wouldn't be open, then it ran a backup, and then it started the service again.&nbsp; Pretty tough to back up the databases through SQL Server while the service is stopped.<br><br>The toughest part of DBA work isn't the technical side: the toughest part is explaining the answer to your customer.&nbsp; Anybody can say, "Look, you moron, YOU are the problem."&nbsp; It takes an artist to say it in a way that causes them to make you a spare set of their boat keys.&nbsp; I thought fast.<br><br>"Okay, here's what we'll do.&nbsp; How big is that virtual tape library?&nbsp; Is it like a 1u or 2u server?"<br><i><br>Him: "Yeah, it's just a pizza box with big SATA drives that - "</i><br><br>"Good.&nbsp; And it only backs up your servers, right?"<br><br><i>Him: "Yeah, I got it out of my own budget.&nbsp; I had some left over that I had to spend before the end of the - "</i><br><br>"Good.&nbsp; Unplug it, take it out of the server room and leave it for me in the boat cabin."<br><br><i>Him: "What?&nbsp; Man, dude, are you crazy?"</i><br><br>"Relax.&nbsp; I'm going to plug it in in my datacenter and back up your servers from there.&nbsp; That'll give you some offsite redundancy."&nbsp; I was lying through my teeth, but one good backup for him was better than two failing backups.&nbsp; Besides, I could use the virtual tape library in my lab to back up my virtual machines.<br><i><br>Him: "Wow, thanks man!&nbsp; That's so cool of you!"</i><br><br>"Anything for you, buddy.&nbsp; Now I'm going to disable this task, and I'm going to....defragment your heaps.&nbsp; That's probably why your backups are failing."<br><br><i>Him: "What?&nbsp; What does that mean?"</i><br><br>"Don't worry about it, I'll do it for you.&nbsp; In the meantime you go ahead and run into the datacenter to unplug that virtual tape library, and we'll be done in a jiffy."<i><br><br>Him: "You're the best, man.&nbsp; I'll leave it in the galley.&nbsp; You take the boat all weekend, man, all you want.&nbsp; I'll stock the fridge with beer for you!&nbsp; You always save the day, man.&nbsp; Alright, I'm going into the datacenter.&nbsp; Later!"</i><br>]]></content>
	</entry>
	<entry>
		<title>Quick, call Microsoft!</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/10/31/quick-call-microsoft.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-10-31:476d0bf2-be8a-40ce-8151-8358296a2518</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-10-31T12:55:15Z</updated>
		<published>2008-10-31T12:44:00Z</published>
		<content type="html"><![CDATA[For about a week now a member of our team has been helping a customer with some query tuning. We have examined a lot of pieces to the puzzle, but it all boils down to this:<BR><BR>
<OL>
<LI>Same query</LI>
<LI>Two different version of the database</LI>
<LI>Same server</LI>
<LI>One query runs in seconds, the other takes minutes</LI></OL>Now, given those four facts, what would you believe to be the cause? Or, more exactly, what would you look to examine next? We emphasized that the data and schemas were different in the two databases, thus the reason for different execution times. The customer followed a different path:<BR><BR>"It is the same query, against the same server, but different results. Clearly there is something wrong with the database and/or the server. How quickly can we get Microsoft involved for a resolution?"<BR><BR>Uh...not quickly. Not quickly at all. I would rather not call them and waste their time until after you verify the data and schema (which they had not). So, we asked for someone to give us a list of objects involved in the queries (we knew them, but we wanted a complete list anyway). We identified one table that had a different rowcount in the two databases. In one database it had 500 rows. In the other, it had 400,000 rows. Guess which query was running faster?<BR><BR>Yeah, I <EM>really</EM> want to call Microsoft and get them involved as to what the problem is with this query. I wonder what their first question will be. Hmmm. Could it be about data, or schemas? <BR>]]></content>
	</entry>
	<entry>
		<title>Stop Me Before I Kill Someone</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/10/27/stop-me-before-i-kill-someone.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-10-27:af79765c-5c2a-472c-9a84-200f7824164c</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-10-27T14:39:34Z</updated>
		<published>2008-10-27T14:38:00Z</published>
		<content type="html"><![CDATA[<P><FONT face=Arial size=2>I just had a person come to me and explain that we have a month end this Friday. Last time we had a month end on a friday, the database dumps were "lost"…</FONT><BR><BR></P>
<P><FONT face=Arial size=2>Me: "What do you mean by 'lost'?"</FONT></P>
<P><FONT face=Arial size=2>Them: "I don't know, but when we needed to do a restore, they weren't there."</FONT></P>
<P><FONT face=Arial size=2>Me: "Which one of the dumps? (they have four to choose from)"</FONT></P>
<P><FONT face=Arial size=2>Them: 'I don't know. It could have been the 7pm. Or the 4am."</FONT></P>
<P><FONT face=Arial size=2>Me: "Well, the 4am is overwritten nightly, so that makes sense, and has always been the case. But the 7pm would be unusual."</FONT></P>
<P><FONT face=Arial size=2>Them: "Exactly. So we need you to make sure that nothing weird happens this Friday."</FONT></P>
<P><FONT face=Arial size=2>Me: "Excuse me? How do you expect me to guarantee that nothing weird will happen this Friday? On Halloween?"</FONT></P>
<P><FONT face=Arial size=2>Them: "We don't know."</FONT></P>
<P><FONT face=Arial size=2>Me: "So, you don't know what happened previously, and you want me to guarantee that whatever may or may not have happened before, will not happen again this Friday. Is that correct?"</FONT></P>
<P><FONT face=Arial size=2>Them: "Yes. Let us know when you have it all worked out."</FONT></P>
<P><FONT face=Arial size=2>Me: "You'll be the first to know."</FONT></P>]]></content>
	</entry>
	<entry>
		<title>Rah Rah Sis Boom SAaaaaaaaa</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/08/05/rah-rah-sis-boom-saaaaaaaaa.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-08-05:ecc19515-5a7d-4c16-91f8-49a538677cc1</id>
		<author>
			<name>Data Claus</name>
		</author>
		<updated>2008-08-05T10:20:05Z</updated>
		<published>2008-08-05T09:57:00Z</published>
		<content type="html"><![CDATA[Chalk this up to the Third-Party Vendors Suck Department:<BR>When are these flies on the potato salad at the IT Picnic going to get it through their Red Bull-addled brains that SA is off limits?&nbsp; I had to deal with a webex session only for the point of entering the password into a textbox on a form for a combined application/database installation.&nbsp; The password was not displayed as plain text (good), but the installation failed.&nbsp; The failure was a blessing to me; we started troubleshooting the failure and determined the password for the SA login was stored in plain text in 3 separate log files and 2 batch files.<BR><BR>Furthermore, the database installation could have been handled separately by supplying a batch file with the associated .sql files it called to the DBA with instructions.&nbsp; Ultimately, the process did not even require SA rights, but only the ability to create a database and a login.<BR><BR>I give this vendor credit though.&nbsp; The did ask after the fact what my recommendations are for the install process and agreed that the pwd issue was unacceptable.&nbsp; (This was of course our Sales Rep on the account though so that may be a case of "Make the Customer Feel Good.")<BR><BR>So, now I am going through all 90 SQL instances changing the SA password. (A dumbass move on my part for having the same pwd for SA on each SQL instance.)<BR><BR>There is an old Chinese proverb:&nbsp; "Do not use an ax to remove a fly from your friend's face."&nbsp; Think that applies?]]></content>
	</entry>
	<entry>
		<title>Sadly, this is true</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/08/02/sadly-this-is-true.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-08-02:bbb8fca0-87a6-4dd8-95f7-b6aebb98e2dd</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-08-02T09:23:51Z</updated>
		<published>2008-08-02T09:05:00Z</published>
		<content type="html"><![CDATA[Things had been quiet for a few days, and I was getting used to coming to work, having time to get a cup of coffee, chat with my cubical (in)mates, and work on some much needed items that allow for our team to be proactive with regards to our enterprise. I should have known that the walls would come crashing down, right? <BR><BR>And there it was. A desperate email from a developer. He needed help immediately. Of course, true to form, he did not provide any details about what the issue was, instead he just directs us to the solution.<BR><BR>"Please delete the log for database [dbname]".<BR><BR>Uh...ok. My first thought was "how?" In most cases, even if you did remove the log, MSSQL would create a new one when it starts up the database (at least I know you can attach a database without a log). At any rate, after I stopped daydreaming about the "how", I then started to wonder "why"? This was quickly followed by my thinking "what an idiot". So, I was moving through all the typical stages of emotions that DBA's usually have. First, wonderment "how many ways is this possible, and what is the best one"? Then, curiosity "tell me more about the thought process that got you here". Lastly followed by "what an idiot".<BR><BR>I then imagined what would happen if I actually did delete the log. The conversation would be similar to:<BR><BR>Him: "I am still having problems, but now they seem worse. Did you delete the log like I asked?"<BR><BR>Me: "Yes."<BR><BR>Since that scenario was not about to win me any customer service awards, I decided to tell the developer that deleting a log was not advisable. Turns out that did not win me any awards either.<BR><BR>Him: "What do you mean, we&nbsp;have the logs deleted&nbsp;all the time."<BR><BR>Me: "Really? Do you really mean deleted, or are you asking for the log to be truncated?"<BR><BR>Him: "What's the difference?"<BR><BR>At this point I am considering calling Microsoft Learning and urging them to revoke the certifications that this developer has "earned". At the very least an investigation should be opened. To think that this certified developer does not understand the difference only makes me wonder what other things do they not understand. <BR><BR>Dumbass.<BR><BR><BR>]]></content>
	</entry>
	<entry>
		<title>Regression Testing Should Not Be Optional</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/06/24/regression-testing-should-not-be-optional.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-06-24:e907c33e-c1ab-436e-a9a7-15480ea5a17f</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-06-27T12:18:56Z</updated>
		<published>2008-06-24T11:57:00Z</published>
		<content type="html"><![CDATA[So, we spend this past weekend like most weekends, deploying changes to our production environment. In this case, we are migrating several databases from SQL 2000 to SQL 2005. These databases have been migrated from their corresponding dev and test boxes already, meaning we took the SQL 2000 dev version and brought it over to the SQL 2005 dev server, and did the same for test. So, this weekend, we go from "old prod" to "new prod".<BR><BR>We have migrated many systems to date, and we have a process in place for migrations. At least, on our end there is a process. After our work is complete we pass the database back over the wall and (expect? assume?) that the developers will let us know if they find any issues.<BR><BR>So, we finish up on Saturday afternoon, about 3PM. On Sunday evening at 11:30PM we are sent an email saying that the application is not working. The queries are taking 12 minutes to run, and that they used to only take 2-3 seconds. The developer expects that with the new system and new hardware, everything should be running faster and wants to know what the problem is, and how long will it take to fix.<BR><BR>Okay then. Let's take that query and run it in test. Wow. Eight minutes. How long did it take on the old test server? Just a few seconds? Okay then, what about dev? Well, it's slow there too. Did you not see this when you were testing?<BR><BR>&lt;Crickets chirping&gt;<BR><BR>Apparently, due to differences in the environments, this particular team feels that testing is a waste of time. So, they would rather just go right to prod and fix things as they happen. Wait, that is not true. They would rather go to prod and DEMAND that someone fix their problems for them. Hard to believe that in this day and age, the idea of migrating from one version to another would not, in and of itself, warrant the running of the most basic of tests. How can anyone even begin to justify not testing when upgrading to a new version?<BR><BR>So, the developers want everything to work that same with no code changes. We do everything on our end and go back to say that code changes are going to be necessary. They want to know why and feel that "an in-house DBA should be able to solve this issue quickly". Okay then, apparently you think you are not only the best at what you do, but now you are the person who can best decide what skills a DBA should and should not have. <BR><BR>The end result? Turns out the SQL 2005 optimizer is different than the SQL 2000 optimizer. Who knew? As a result, poorly written queries in SQL 2000 perform even worse on SQL 2005, and need to be rewritten. So, we take one, rewrite it a bit, and get it to under one second. Meanwhile, the developer is asking us to generate a showplan in XML from the SQL 2000 box so that he can force the optimizer to choose the correct plan. <BR><BR>Simply priceless.]]></content>
	</entry>
	<entry>
		<title>Why Code Review?</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/02/21/why-code-review.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-02-21:7207901f-5452-4d03-aa27-df07127dd08c</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-02-21T09:53:08Z</updated>
		<published>2008-02-21T09:41:00Z</published>
		<content type="html"><![CDATA[A colleague stops by to tell me their web app is running slow, some days are slower than others. I know the app a little bit and also know that he is right, it is slow in spots. So, I offer to take a look. I happen to know of a few stored procedures it uses, so i execute them and return results immediately. After poking around a bit more, I decide to fire up profiler and tune the settings to make certain only my connection is being traced.<BR><BR>Then, I go to the page that is causing the problem. The trace shows...nothing.<BR><BR>No activity for almost one full minute. Then, a bunch of lines, each query taking about a half second, and there are a few dozen of them, followed by more queries except these appear to be the same statements run three times, each taking a half second. then, and only then, do i see the procs called and the final results come back.<BR><BR>And what are all those lines? Well, they go something like this:<BR><BR>SELECT last_name FROM linkedserver_connection WHERE NAME = 'domain\person'<BR>SELECT first_name FROM linkedserver_connection WHERE NAME = 'domain\person'<BR>SELECT full_name FROM linkedserver_connection WHERE NAME = 'domain\person'<BR><BR>SELECT last_name FROM linkedserver_connection WHERE NAME = 'domain\person1'<BR>SELECT first_name FROM linkedserver_connection WHERE NAME = 'domain\person1'<BR>SELECT full_name FROM linkedserver_connection WHERE NAME = 'domain\person1'<BR><BR>and so on. This page today was going to display a dozen people, but some days it could be a lot more. The more people, the slower. Keep in mind, that for some reason the app did not even connect to the database for almost a full minute before this crap was even executed.<BR><BR>So, my friend wants to know what I can do to speed things up. My response? "Fire the person that built this, hire a six year old and a chimpanzee and have them work in an agile structure for about a week."<BR><BR>He did not seem to think that would help, but I do not see how it could be any worse than what they have.]]></content>
	</entry>
	<entry>
		<title>Shrinkage</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/01/23/shrinkage.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-01-23:e1691583-56e1-4d1a-94a5-60ab920432bf</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2008-02-11T13:20:25Z</updated>
		<published>2008-01-23T12:29:00Z</published>
		<content type="html"><![CDATA[<FONT face=Arial size=2>So there I am, trying to get back in the flow of things during a short work week, when I get an email that brings a smile to my face. It would seem that a certain developer with many, many initials after their name (MCSD for example) needed some help. Apparently there was an issue with the server preventing them from running a query. The email read:<BR><BR></FONT>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Please truncate the log file for tempdb on (server).&nbsp; We’re getting an error message:</SPAN></P>
<P class=MsoNormal><FONT size=2><SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"><FONT size=2><FONT face=Arial><FONT face=Garamond>The log file for database 'tempdb' is full. Back up the transaction log for the database to free up some log space.</FONT><BR><BR><BR>Now, my first thought is that perhaps, just perhaps, there is a chance that my query is causing this issue. But this rocket scientist has already decided that there is no way his query is the culprit, and in fact it is a problem with tempdb. Here's an idea...why not tell us what you were doing when you got this message? Perhaps we could help you find out where the problem is? No? Okay then.<BR><BR>So, we respond back, tell them that tempdb is fine, there is lots of free space (naturally, since his trx was rolled back), and to try it again. It fails. Think he would make the connection yet? Unfortunately, no. So we go back and forth. <BR><BR>Them - "Please truncate again." <BR><BR>Us - "Sure, done." (It's easy to get this done quickly since his trx keeps rolling back!)<BR><BR>Them - "Please truncate again."<BR><BR>Us - "All set."<BR><BR>Them - "Please try it again, the truncate does not seem to be working."<BR><BR></FONT><FONT face=Arial><EM>Me - Oh, the truncate is not working? Let me get right on that for you.<BR></EM><BR>Us - "Can you tell us what you are trying to run, perhaps we can figure out what it is you are doing that is filling up the log".<BR><BR>Them - "My code has not changed, it must be something else. Are you certain the log is being truncated?"<BR><BR>Dumbass. Let's see...your code has not changed...but you keep filling up the tempdb log file...could it be...the data has changed? Anything? Nothing? After a few more exchanges we get:<BR><BR>Them - "Well, we did migrate this code from a different server, so I guess you could say that something has changed."<BR><BR>Brilliant. I can see how you earned all those letters after your name. Too bad none of them contain "DBA".<BR><BR>Okay, so now we know that something has changed. Oh, and as it turns out, they may or may not be using the right version of the migrated code. And certainly the data is different, but why should that matter, right?<BR><BR>Thankfully I have no shortage of incidents like this one to keep me amused. It must be one of the reasons I come to work every day, the entertainment value here has got to be as good as anywhere else.<BR><BR><BR><BR></FONT></FONT></SPAN></FONT></P>]]></content>
	</entry>
	<entry>
		<title>Turbo Button</title>
		<link rel="alternate" href="http://sqldumbass.com/2008/01/09/turbo-button.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2008-01-09:fa753cb2-726f-402b-a849-865a868235ff</id>
		<author>
			<name>Windy DBA</name>
		</author>
		<updated>2008-01-09T23:16:26Z</updated>
		<published>2008-01-09T23:02:00Z</published>
		<content type="html"><![CDATA[This is an old story and one I could have repeated many times over the years.<br><br>There was an application developer who was testing one of his queries (amazing) and while he was waiting, asked if there was anything I can do to help the query run faster that he was running.&nbsp; So instead of giving the usual answer of looking at the execution plan and optimizing it, I told him he should hit the turbo button.&nbsp; This would help speed up his query on the server by 50%.&nbsp; After a brief 30 seconds of trying to show him the fake key strokes, I said, 'There is no turbo button smart developer (different words were used), try performance tuning your query.<br><br>It is amazing that a developer would think he could hit a button to increase the speed of their code.&nbsp; It makes you really think about what they view as reality when it comes to optimizing the code.<br><br>]]></content>
	</entry>
	<entry>
		<title>Is Code Review Necessary?</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/12/14/is-code-review-necessary.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-12-14:20ad5c1a-6ce7-4f24-b513-18eb3ab3d0d0</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2007-12-14T13:38:04Z</updated>
		<published>2007-12-14T13:35:00Z</published>
		<content type="html"><![CDATA[<P>I was reviewing procedures from one of our dev teams today when I saw this (names to protect someone and there were a bunch more parameters, and yeah, I doubt this, as typed would compile, work with me):</P>
<P>CREATE PROC<BR>@PK int<BR>@Val1 varchar(50) OUTPUT<BR>@Val2 datetime OUTPUT<BR>@Val3 int OUTPUT<BR>AS</P>
<P>IF EXISTS (SELECT 1 FROM Table1 WHERE pk = @PK)<BR>BEGIN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT @Val1 = Val1 FROM Table1 WHERE PK = @PK<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT @Val2 = Val2 FROM Table 1 WHERE PK = @PK<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT @Val3 = Val3 FROM Table 1 WHERE PK = @PK<BR>END<BR>ELSE<BR>BEGIN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RAISERROR(‘We don’t have any rows that match that pk’)<BR>END<BR>&nbsp;<BR>If I could guarantee a jury of DBA’s, I know I’d be acquitted… Instead, I rewrote it and tried to educate them<BR>&nbsp;<BR>SELECT @Val1 = Val1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,@val2 = Val2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,@val3 = Val3<BR>FROM Table1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE PK = @PK<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; And Val3&lt; &gt; 42 <BR>&nbsp;<BR>IF @@ROWCOUNT = 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RAISERROR(‘We don’t have any rows that match that pk’)<BR>END<BR>&nbsp;<BR>The real query went from more than a second to less than 50ms and the reads against the table went from several hundred to 2. All that and I still have to justify to developers why they send their code through for review…<BR></P>]]></content>
	</entry>
	<entry>
		<title>Why is the systems so slow???</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/12/12/why-is-the-systems-so-slow.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-12-12:e42150cf-22e0-4135-9efe-e9d15fee2366</id>
		<author>
			<name>Bocho</name>
		</author>
		<updated>2007-12-14T08:53:17Z</updated>
		<published>2007-12-12T13:28:00Z</published>
		<content type="html"><![CDATA[We have a system that stages some data.&nbsp; A job fires off and picks up the data from the stage db, pushes it to the real db, performs a few edits on it, and then goes onto the next record.&nbsp; Sounds simple.<BR><BR>Customer calls to complain that the system is too slow.&nbsp; 10s of hours waiting for items to reach them...<BR><BR>I start digging to get better details of the system.&nbsp; The above is a generalization.<BR>What happens is the job calls a proc.&nbsp; This proc says, get me the top 1 item from stage db.&nbsp; Then calls another proc with this ID.&nbsp; This proc in turn does some insertion into multiple tables.&nbsp; The last of which has a trigger.&nbsp; The trigger sends this ID thru a series of edits.&nbsp; Once done, there is some clean up procs called for this ID and eventually the stage data is removed.&nbsp; Thus returning to the original proc.&nbsp; It then says, are there any records left in the stage table?&nbsp; if so, get me the top 1 item from the stage table.&nbsp; And repeats.<BR>The trigger turns out to process some 139 rules.&nbsp; 53 of which are rules comparing one field to be equal to a value.&nbsp; the rest are comparing one field to be like&nbsp;a value.&nbsp; There is a priority to these rules.&nbsp; If you look at the history, the last rule, is the one most picked, eventually, by the system.&nbsp; So, 139 rules must be traversed before it can perform an action.&nbsp; 139 checks on values.&nbsp; And keep in mind that this is in a trigger, while we are moving data from stage to real db.&nbsp; If it takes 2 minutes to process all this, and we have received 50 new items in those 2 minutes, you can imagine the backlog.&nbsp; <BR><BR>Thus the delay.&nbsp; Poor job, on occasion, was running for 9 hours straight.&nbsp; Trying to get everything thru the system.<BR>So, a little research reveals that the priority of the edits could be drastically altered, and the most picked edits moved up the priority list.&nbsp; This requires some work on the operations staff.&nbsp; They are duely informed.&nbsp; Nothing happens.&nbsp; <BR><BR>Last night, same process occurred.&nbsp; Same slowness.&nbsp; I'm just waiting for the email to complain about slowness....<BR>]]></content>
	</entry>
	<entry>
		<title>Where Am I?</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/12/12/where-am-i.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-12-12:bc1d0835-4fbc-4772-8f7d-510d55a65547</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2007-12-12T11:54:42Z</updated>
		<published>2007-12-12T11:47:00Z</published>
		<content type="html"><![CDATA[<DIV>The following story is true. The names have been changed to protect the incompetent. <BR><BR>Developer asks me to redeploy the database, but to be sure and deploy it to the “other SQLDEVSERVER/INSTANCE1.” I kind of didn’t hear this at first, so I went and deployed to the server and instance specified, SQLDEVSERVER/INSTANCE1. He calls me back and says that he can’t see the changes. I check my scripts and connections and the create date on the database. All good. I let him know. Well, he says, it’s still wrong. So I redeploy. It’s still wrong. He then reminds me, “Make sure you’re deploying to the other SQLDEVSERVER/INSTANCE1.” <BR><BR>At this point, I pick up that key word and tricky phrase. “What do mean, the other one. There’s only one instance name per server name.” <BR><BR>“Oh no,” he assures me, “all you have to do is put in SQLDEVSERVER/INSTANCE1,10001 and it connects to the other copy.”<BR><BR>I look, and sure enough, genius has been deploying his code to two different instances and didn’t know it. I explain how, substituting port numbers for instance names, changes the instance so that he was connecting to INSTANCE0, not INSTANCE1. <BR><BR>It took four passes through the explanation and I’m pretty sure he still doesn’t get it.</DIV>]]></content>
	</entry>
	<entry>
		<title>Thanks For Nothing</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/12/12/thanks-for-nothing.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-12-12:f16e7a98-965e-45a1-95de-840c83103f86</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2007-12-12T11:03:25Z</updated>
		<published>2007-12-12T11:00:00Z</published>
		<content type="html"><![CDATA[<P>Working in a dot.com as a dba. This particular dot.com was extremely concerned with getting as much code out the door as humanly possible. They weren’t terribly concerned with the quality of the code or any of the data. We were collecting over a gb of data every day in SQL Server 7.0. To say the least, the system required serious babysitting, monitoring disk space, log space, growth, etc. The DBA’s spent a considerable amount of time, figuring out how best to monitor &amp; respond to the crazed behavior we got in the system. But that didn’t sit well with the business majors running the company (“all from top schools”). <BR><BR>So we got the word one day, stop spending time messing with maintenance and spend more time churning out code with the developers. Less than a week later, one night a strange spike in activity (right after a new code release that we didn’t monitor) filled the log drive. We tried recovering the database, but nothing worked. We spent three straight days in the office, first attempting to get all the data back, then restoring an older backup, then fixing the code that kept breaking the system. After three days without sleep, we had the system back online. Our glorious kid managers didn’t send a thank you or an atta-boy, but they did send an email instructing us to begin monitoring the systems, especially during and after code releases. </P>
<P>All three dba’s quit within three months of that incident and the company went the way of the dodo less than a year later.<BR></P>]]></content>
	</entry>
	<entry>
		<title>Make Certain It Is DBO</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/11/29/make-certain-it-is-dbo.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-11-29:39a943d8-2168-44ac-ba32-381f6e8e116a</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2007-11-29T11:26:01Z</updated>
		<published>2007-11-29T11:19:00Z</published>
		<content type="html"><![CDATA[<DIV>What a nice email today, a developer sent along a request to have some databases migrated and included some details regarding a sql login.<BR><BR>It seems that these databases are part of a vendor application. And it would also seem that this vendor requires this sql account to be a sys admin (of course!)<BR><BR>Well, the developer then goes out of their way at the end of the email to state: "Please also make sure that this sql login&nbsp;is assigned dbo privileges on the databases". <BR><BR>Sure thing, I would hate to skip that step and have the app cease to function for you. While I am at it, let me add the login to all of the fixed server roles, and not just sys admin, just in case it needs that as well. In the meantime, perhaps you could glance through some documentation regarding database security. After all, you were hired to work with this technology, you might as well have an understanding of what it means to be a sys admin.</DIV>]]></content>
	</entry>
	<entry>
		<title>Locked out</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/11/28/locked-out.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-11-28:a91c0ef3-e877-419a-9f93-2c19a5c80f51</id>
		<author>
			<name>Chameau</name>
		</author>
		<updated>2007-11-28T09:57:19Z</updated>
		<published>2007-11-28T09:08:00Z</published>
		<content type="html"><![CDATA[<DIV>We have an upgrade to an application being deployed and as part of the upgrade there is a database piece. The app team decides (rightfully) to make certain that no one tries to connect to the database while the upgrade is happening, and they tell their users to not use any apps that connect to the database. So far, so good.<BR><BR>Well, one account continues to open a connection, and no one has any idea about the account. I recognize it and point towards the person on a different team, as it is a service account used by a web pool to connect to the database. Unfortunately, it cannot be turned off anytime soon, as we do not host the servers making the connection. So, what to do?<BR><BR>I decide to put the db in single user mode, kill all connections, and have them run the upgrade. It fails, because the upgrade opens about thirty connections to the database. Why? Good question.<BR><BR>I decide to switch the database to dbo use only, take it out of single user mode, and have them run the upgrade. Before the upgrade starts, that service account connects again. Turns out the account is a sys admin. Why? Good question.<BR><BR>We remove the service account from sys admin and try to get things going again. It reconnects. Since it is not a sys admin, and not a dbo, and not an alias, we are stumped as to how it can connect. You would think that I would know the answer as to how it is getting in, but I don't. Suddenly, my colleague realizes that we could lock the accounts.<BR><BR>Lock the account! Why did i not think of that! We lock a few accounts, just to be safe, and the upgrade gets underway, only a few hours later than desired.<BR></DIV>]]></content>
	</entry>
	<entry>
		<title>slash?</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/11/13/slash.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-11-13:4e113a11-5440-4f2d-8433-3204a2a17aa3</id>
		<author>
			<name>Bocho</name>
		</author>
		<updated>2007-11-28T09:07:11Z</updated>
		<published>2007-11-13T00:30:00Z</published>
		<content type="html"><![CDATA[<DIV>We have a sql 2005 database server in mexico.&nbsp; It has a couple dbs on it.&nbsp; Backups should have been setup on it, right?&nbsp; Well, no.&nbsp; No backups.&nbsp; No maint plan, no backup to tape.<BR><BR>So&nbsp;I go to the db, and create a maint plan.&nbsp; Simple... let's backup to the local drive, with sub folders.&nbsp; Let's then go and make the cleanup steps for all the db's.&nbsp; Simple.&nbsp; Schedule it, and viola!&nbsp;we have backups!<BR><BR>Couple days or weeks go by, and&nbsp;I check back with the system.&nbsp; No backups.&nbsp; Hum... odd...<BR><BR>I look at the job history, and the maint job has failed each and every time.&nbsp; It simply says it could not start step 1.&nbsp; <BR>I look into rights?&nbsp;&nbsp;Is the sql agent configured correctly, running under a good account? Is the owner of the job correct?&nbsp; Are the steps in the job setup right?&nbsp; Linked to each other properly?&nbsp; Anything...<BR><BR>After a while, i give up on that maint plan, and create a new one.&nbsp; A simple one.&nbsp; Backup 1 db only.&nbsp; It fails too.&nbsp; Same error.&nbsp; <BR><BR>I finally turn to google with the error message, and come across someone that had a similar problem.&nbsp; The job step has a property for the package.&nbsp; It was missing a slash at the beginning of the value.&nbsp; If i edited the step, and added the slash, all was well...&nbsp; backups going, job succeeding, universe was righted.<BR><BR>Who's the dumbass now?&nbsp; yeah, it was me.</DIV>]]></content>
	</entry>
	<entry>
		<title>Memory equals diskspace divided by four</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/11/02/memory-equals-diskspace-divided-by-four.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-11-02:fec2d124-3cf8-496b-84b6-9a960fdf801d</id>
		<author>
			<name>The Oz</name>
		</author>
		<category term="SQLDumbass" />
		<updated>2007-11-02T19:02:46Z</updated>
		<published>2007-11-02T16:42:00Z</published>
		<content type="html"><![CDATA[<DIV>Frantic developer storms into the office wants to know the meaning of the error that has just appeared on their screen is....the error is something similar to :&nbsp;insufficient memory space in database...<BR><BR>Now, without a sqlcode or msgno or anything else I go off to the magic world of google and BOL&nbsp;looking for an explanation nothing, nada, zilch....&nbsp; which was really to be expected, I mean thats about as generic as an error can get.&nbsp; After a while the developer comes back and will not accept my answer of this cant be a real database issue and to come see me when they get a real dbms error code.&nbsp; So, after a bit of prodding I turn on a sql trace for the developer, guess what shows up in the trace.&nbsp; not 1 single SQL, at this point the developer is looking beaten and retreats to their office.&nbsp; A few days later I ask what ever happened to that error and you'd never guess that I was pleasantly surprised at the great story that was told.&nbsp; <BR><BR>After spending at least a combined 20 hours the developer decides to call the vendor of the application for some support.&nbsp; the vendor has a great explanation, Apparently this is a common problem, the client disk space cant be a number divisible by four or this error occurs, all we have to do is create a few 100mb text files in the temp directory so that the free space isn't&nbsp;divisible by 4 and the problem will be solved.&nbsp; at this point all I can ask is "Are You Kidding Me?"&nbsp; and sure enough, modifying the disk free space fixes the issue, nope no database problem here. <BR><BR>All in a weeks work I suppose!</DIV>]]></content>
	</entry>
	<entry>
		<title>I geta call from Microsoft today</title>
		<link rel="alternate" href="http://sqldumbass.com/2007/11/01/i-geta-call-from-microsoft-today.aspx?ref=rss" />
		<id>tag:sqldumbass.com,2007-11-01:fa195f79-aa93-4b39-84d4-78bdb4ad56e8</id>
		<author>
			<name>Bocho</name>
		</author>
		<updated>2007-11-02T19:00:36Z</updated>
		<published>2007-11-01T15:41:00Z</published>
		<content type="html"><![CDATA[<DIV>Gentleman says he is from Microsoft and has a couple questions about Microsoft databases.&nbsp; He asks if I use the database.... I say yes, and in fact, i am editing a dts as we speak.&nbsp; <BR><BR>He asks me what versions I have used.&nbsp; We have both 2000 and 2005.&nbsp; But nothing yet using 2008, or developers even using a CTP.&nbsp; <BR><BR>He proceeds to ask me what i like most about the new version, SQL 2007.&nbsp; No i didn't typo the 2007.&nbsp; He asked me that.... I correct him and say 2008.&nbsp; He makes a crack about how funny the name is, that its 2008, when its being released in 2007... i sigh...<BR><BR>So, now, I am painfully aware of this individuals knowledge of the product... <BR><BR>He continues to ask me weird questions, and i provide apparently confusing answers.<BR><BR>At one point he asks me what my title is.&nbsp; I respond, DBA.&nbsp; He tries to guess what the letters stand for... and give a couple good tries, but fails.&nbsp; As i explain the acronym, my wife cracks up in the background.&nbsp; Even she knows what it stands for, and was mystified that this person had no idea.&nbsp; <BR><BR>From there, the call went downhill.&nbsp; Fun.<BR></DIV>]]></content>
	</entry>
</feed>