Visual Studio For Team Systems: Database Professional

I’ve been struggling with VSTS:DB for some time; I love the idea of source controlling my development databases (right now we’re just using backups to prevent code loss), but I’ve not been able to really get my head wrapped around how VSTS:DB works. Even though I consider myself a developer, I guess I’m still a DBA at heart. Visual Studio is like a foreign language to me; I can pretty much figure out the equivelent of “where is the bathroom?”, but I wouldn’t consider myself fluent in it.

It’s obvious that VSTS:DB was designed for developers; they use VS terminology like solutions, projects, and references, but leave out common administrative tools like execution plans. The goal is to develop “off-line”, and then apply changes from source control to your development environment (so that additional application testing can be done); the model is that the source control is the truth, not the dev environment. Of course, if you’re at all remotely interested in this topic, there are better resources than I that describe this (but not many; see below).

Here’s the challenges I see with VSTS:DB

Poor documentation: I found a couple of forums, and one book that actually mentions DataDude. The online help files are OK, but help files aren’t how-to’s; they’re designed to respond to a specific question.

Reverse deployment: The product assumes a particular model of deployment; changes flow from a dev environment to source control, and are ultimately deployed to a production environment. However, in our shop, we often face the challenge that a stored procedure may need a performance tweak (such as an index hint); our datasets are so huge that the dev environment can’t always see those scenarios. A production DBA will make a change to code, but that change doesn’t get propogated back into source control, and we lose vision on it (unless we do a manual review of the change scripts and catch it).

The database-as-project metaphor: When application developers work with Visual Studio, a project represents a compiled piece of code (like a dll or an application). If they make changes, redeployment means replacement; the old dll is overwritten by the new dll. Databases obviously don’t work that way, and even though the tool seems smart enough to change CREATE scripts to ALTER scripts, I’m still not sure that’s the best way to deploy something. What if you’re working on some stored procs that aren’t ready to deploy? You can manage what gets deployed by doing a schema comparison, but it just seems klunky.

Adding features mid-release: Really not a challenge per se, but it is one of my pet peeves. Microsoft just released an RTM version of the GDR (General Redistribution Release) in November. According to the developers, it’s a “complete new release”, with several fundemental changes to the architecture. Although the official version is not out yet, it does mean that we have to be very precise when comparing what version of VSTS:DB you’re working on (are you on 2008 or 2008 GDR?).

Anyway, I hope that I can work my way through some of these challenges, and I’m sure that my perspective will change as I become more familiar with the way the VSTS works, but for now, I’m frustrated. I’m hoping that as I being detailing this journey, those frustrations will resolve themselves.

SQLSaturday #13 update

Things are trucking along; I finally got all of the speakers nailed down and had to choose between some very interesting presentations. After a discussion with the rest of the SQLSaturday team, I decided to add another room and track, and so we now have 34 presentations (plus a lunchtime special by Joe Celko). WOW.

BTW, we’re still way overbooked. If you put off reserving a slot, I’m sorry. Maybe next year.

Anyway, here’s the tentative graphical schedule; this is still subject to change, but it’s close to being done (I think):

SQLSaturday #13 schedule

SQLSaturday #13 schedule

I’ve also figured out a restaurant for the Speaker’s dinner, as well as the vendor for the box lunches on Saturday. Stuff left to do:

1. Get more sponsors! More money, more money.
2. Get the speaker’s shirts done.
3. Get the attendee gifts done.
4. Set up volunteer shifts.
5. More shwag.

Sheesh….

Sitting at Schlotzky’s…

Enjoying free wifi. I just discovered that I don’t like their vegetable beef soup. Too many vegetables, and it’s beef broth.

Anyway, Wednesday ritual; girls at activities, and I’m sitting at a keyboard trying to put some thoughts together to keep this blog moving forward. Clock is ticking down, so I may not be able to get it all out there, but there’s a few things that I need to put together. Consider this post a to-do list, and I may actually get to the rest of the items when I get home tonight.

So, here’s the list of stuff I’ve been doing this week:

1. Trying to figure out how to use DataDude and TFS. I know, this thing is supposedly loved by all, but it’s complicated; it’s a completely different mindset than stuff that I’m accustomed to working with.

2. Cleaning up the garage for a home office project. My wife loves the fact that I work from home; she just can’t stand me in the house. We’re talking about closing in our third bay of our garage (partially), and adding a home office.

3. Of course, a SQLSaturday update. Lots of stuff going on, and lots more to do 🙂

SQLSaturday update

This update is brief compared to other ones; I just wanted to get some thoughts down quickly:

1. We’re overbooked with speakers; still waiting on a session from a really smart guy that I admire a lot. Hopefully, he’ll have time to submit it tonight before I close the sessions down again.

2. We sent out our second email to the AtlantaMDF membership list today, and we now have 200 registrants (standing room only if everybody shows up).

3. I got a price from our caterers, and it’s well within our $10 lunch fee.

4. I’ve got enough sponsors at this point to pay for everything; I just need a few more to have enough cool swag to hand out.

Gotta run pick up the girls.

Ash Wednesday

If you’re a religious person, you recognize the significance of this day; if not, here’s the Wikipedia entry.  Read up; it’s good for you.

I know I’m not the most religious person, but my faith is actually pretty important to me; I do believe that there is a certain value in seeking out Truth, and I’m often comforted in times of stress by certain rituals. For Lent this year, I’ve decided I want to put my faith into practice and take on two disciplines:

1. I want to read the Bible daily. I plan to spend 15 minutes a day reading Scripture; I’ve neglected my spiritual side for far too long.

2. I want to spend at least 15 minutes a day in exercise. A healthy body leads to a healthy mind, and I’ve never been able to shake this excess weigt I’ve picked up over the last few years. If I can work out every day for 40 days, it can become a habit, and a good one at that.

Peace.
Stu

to tweet or not to tweet? a tragedy

Jason Massie recently posted something that I find both a little funny and a little scary; he called out Adam Machanic for posting something mildly derogatory about Twitter.  Brent Ozar joined the fray as well.  This gets a little confusing (in a soap-opera gossipy kind of way), so let me break it down in some sort of sequence of posts:

  • Ajarn (a guy I don’t know) wrote a post that says “It’s not that I think that Twitter is evil or utterly banal… it’s just that I couldn’t seem to make it fit my life very well.”
  • Adam Machanic (a guy I’ve met a couple of times at DevTeach and on the newsgroups) responded to the above post saying “Finally, a voice of reason with regard to this thing! Thanks for sharing… “
  • Jason Massie (a guy I met on twitter) then calls out Adam: “So I challenge Adam and you if you are not on twitter to follow these people for a month with a real client and post your status.”
  • Brent Ozar (another guy I met on twitter, but then met in “meatspace”) agrees with Jason, but this where it gets interesting: “Twitter is what you make of it… Saying Twitter sucks is like saying the web sucks, or that music sucks, or that talking sucks.  It just indicates that you’re unclear on the concept. “

OK, the funny part is that I know enough about these guys and the subject that they’re talking about to even get involved enough to want to wite a post.  I feel like I’m in high school again, talking about so-and-so who kissed such-and-such at somebody’s party and yada, yada…  The scary part is where a conversation about a social networking tool went from “it doesn’t work for me” to “if you don’t like it, you haven’t tried it” to “if you don’t like it, you must think it sucks, and I must defend its honor: DRAW YOUR SWORD, SIR!”

Sorry, for a second there I went all Knight’s Tale on you (or was it Princess Bride?).  Anyway, it’s possible that I could have missed part of the conversation.  Adam could have said “twitter sucks, and you tweeters are all a bunch of losers”, but I don’t think so.  I certainly didn’t read it that way.  And it’s not that I don’t find value in twitter, but I have to admit that I lean more towards the camp of “meh; it’s fun, but I’m not sure I have time for it.”  I tweet occasionally, and in fact I have WordPress set up to tweet when I post, so if you’re following me on twitter, you’re probably reading this post because of it.  (Does that qualify as irony?  I sucked at high school English, and never really understood the concept.)

To be fair, Brent’s advice on using twitter is good; if you have time, follow the right people, and it won’t suck.  What surprises me is that an invisible line seems to have been drawn in the sand between those who tweet and those who do not.  That’s a little scary; twitter is after all, just one tool in the socially aware DBA’s life, and while it can be useful for some, it can be annoying as well.  What scares me is the pressure to tweet, or to use facebook, or to use a gravatar, or to use the next best thing coming down the pipe.  Where does it stop?  I’m already spending excessive hours hooked to a PC; at what point do I reach geek nirvana?

To the non-tweeters: If you haven’t tried it, try it before knocking it (kind of like broccoli); if you still don’t like it, don’t let anybody try to force you into using it.  Just stay connected to the community in other ways.

To the twitter-lovers: don’t assume that people who don’t tweet hate it or don’t understand it.  Just go back to tweeting, but find ways to build community in other ways.

SQLSaturday #13 update

It all started with phone call with Andy Warren last Friday (February 13); that seems like a lifetime ago.  I was concerned because things weren’t going so well with the planning for SQLSaturday #13 here in Atlanta on April 25 (sorry; it starts becoming a habit.  I can’t say the name without giving a location and a date).

Anyway, I’m coordinating this event, and it just wasn’t feeling right.  I had been exchanging emails with Andy, and he suggested a phone call to give me some advice.  It was a good idea; among Andy’s suggestions was that I tackle one problem at a time.  Our schedule was only about half full, our registrations were about half full, and we only had one or two sponsors.  Andy suggested that I get the schedule filled up, and that would draw in registrations.  With registrations, I could sell the show to sponsors.  I agreed, and started thinking about where I could advertise for speakers.

I started by contacting everyone who had ever spoken at a SQLSaturday event in the past; I then posted the call for speakers to every LinkedIn group to which I belonged.  I asked nearvy regional user groups for speaker recommendations.  I did all of this on Friday afternoon.

Response was swift; I got several responses, including one short email on Saturday:

“Celko can do extra slots.”

Celko?  Joe Celko?  The guy from the usergroups with whom everyone I know has had at least one brief and antagonistic conversation? THAT Celko?

Yep.

Out of desperation (and a little avarice), I wrote back and asked if he would consider being a featured presentation.  The way I figured, Celko’s a controversial figure; a lot of people love him, and a lot of people, well, don’t.  But, I had heard that he’s a great speaker, and even though I’ve disagreed with some of his methods, he is a smart guy.

He agreed.  I posted a couple of postings to different newsgroups advertising Celko’s presentation, and wanted to see if the numbers would go up.  They eked up a notch (5 or 6 registrations), but not much.  I then asked the email master at AtlantaMDF to send out a blast to all registered members announcing the event.

Sunday came and went.  No email.

Monday and Tuesday came and went. No email.

On Wednesday, I nudged the email master.  At 3:39 pm the email went out.  By 4:02, we had jumped from 76 registrations to 100 registrations.  I was hoping for 120.  By 4:45, we had 118.

After consulting with the other team members, we decided to bump up the available seats to 140.  By 7:00 AM today, we had hit it.  Andy suggested we bump it to the fire code limits; I now have a limit of 200 seats, and a little over 150 registrants.

Of course, we picked up other speakers along the way; we now have 26 scheduled sessions (I was expecting 15), and I’m now having to turn people away.   I’m still waiting for sponsors to respond, but I’m very hopeful that we’ll get a good response SINCE WE”RE TWO MONTHS OUT AND I”M LOOKING AT STANDING ROOM ONLY.

Sorry for yelling.  I’m a little excited.

It all started with a phone call.

RC Cola and a moon pie

If you ain’t from the South,  you probably don’t get that particular reference; basically, it’s a classic desert combination.  Two good things that are great together.  I kind of felt that way after having lunch today with Dan Attis.  Dan’s putting together a Sharepoint Saturday  the week before SQLSaturday, and it was kind of nice to compare notes with somebody.  We’re looking for ways we can build on that synergy for a future conference (and whatever little things we can do for the current ones).

SQL Server 2006 DBA Street Smarts – Joseph L. Jorden

Welcome to my first book review!  As part of the process of arranging for swag for SQLSaturday, I’ve encountered a number of publishers that have agreed to donate books to our event in exchange for book reviews.  Obviously, they’d like favorable reviews, but I don’t feel obligated to hold back any legitimate criticisms that I may have of their material.  I do think this is a good opportunity to expand my own writing skills, plus encourage me to read more.

I’ve been studing for my MCITP: Database Administrator exams for some time; I picked up Jorden’s Street Smarts a while back, and have slowly been easing my way through it.  other things seem to occupy my time, so I’ve been unable to fully commit to taking the exam.  However, that’s no fault of the author.  He does a great job of simplifying the material that will be covered on the Microsoft exam 70-431, and it really is framed in terms of common “street” scenarios that a typical DBA might encounter. 

The book is laid out in four phases: Installation and Configuration, Implementing High Availability, Maintaining and Automating, and finally, Monitoring and Troubleshooting.  Each phase is comprised of tasks; for every task, there’s a description of a plausible scenario, followed by a step-by-step explanation of how to do the task using SQL Server Management Studio.  There’s lots of pictures (probably because the exam emphasises the use of the GUI), and it’s a very easy read.  Unfortunately, there’s only so much you can do to make this material exciting.  As a development-oriented DBA, I’ve been sitting for months on the second section (mainly because it’s the stuff I don’t do on a day-to-day basis anymore), and even now, I’m dreading cracking it back open again.

The book is well-written, and if I were more enthralled with the material, I think I would actually enjoy using it as a study guide.  It’s better than many other certification books I’ve encountered, because I think the author really tries to use examples that are realistic (rather than simply trying to teach the test).  If you’re looking to upgrade from a SQL Server 2000 MCDBA to the MCTS SQL Server 2005 cert, this is a good place to start.

Weekly Link Roundup 2009-02-11

Sitting at Schlotsky’s enjoying free Wifi; Isabel’s in ballet, Grace is in swimming, and my lovely wife is at home slaving away on her doctoral dissertation.  Me?  I’m wishing I had a netbook instead of this big ol’ clunky laptop from work.  I’m hoping that when they replace this thing sometime in the next year, I’ll either get something with more power or less weight.

Anyway, on to the links:

I’m amazed at how much good stuff there is out there in people’s blogs; I just found Joe Webb’s post on adding a column to every table in the database.  I’m a big fan of practical uses for dynamic SQL, and this is another example of it.

Speaking of blogs, SQLServerPedia is now starting to syndicate blog posts.  I plan on doing this, but I’m gonna try to survive SQLSaturday first.  A lot of good stuff is there already.

Just found this one today: Covering Clustered Indexes.  I love this quote: “To assume that the Primary Key will only be used for singleton selects is “strange” –  and to assume that the PK will always be the clustered index is also unhelpful. “

Sigh; Schlotzky’s is starting to fill up with families, and the chatter of children is making it tough to write.  I’ll have another couple of posts tonight (I’m in a writing mood).