Sunday, January 24, 2010

SQLSaturday 32 – Tampa Recap

I had the privilege to attend and speak at SQLSaturday 32 – Tampa this past weekend.  As I said in my event announcement, SQLSaturday is always a good time, and this one was no different.  My wife (yes, I brought my wife and she enjoyed herself, too) and I left Sanford about 1:30 Friday afternoon so we could beat the traffic and arrived in Tampa a little before 4:00 pm.  Our biggest problem on the way was that there was construction near the hotel so we had to drive around a little to find the hotel parking garage.


Once we got checked in we enjoyed a nice stroll around the historic Ybor City area where we ran into Aaron Nelson (@SQLVariant) and his dad, and the Pragmatic Works crew, Adam Jorgensen (@adam_jorgensen), Brian Knight (@brianknight), Patrick Leblanc (@patrickdba), and Jeremy from Boston (can’t remember his last name).  Then we made our way to The Spaghetti Warehouse for dinner and the speaker/volunteer get together.  This was our second mistake as all the other SQLSaturday’s I’ve spoken at have provided only appetizers so that’s what I thought would be provided so we ate dinner BEFORE the party and then found out that dinner WAS provided.  We still had a good time as I got to know Kevin Boles better and then met Troy Gallant (@GratefulDBA) and David Taylor (@dyfhid) for the first time.  The speaker/volunteer party is ALWAYS a good time as you meet new people and get back together with all the regular gang.


My wife and I arrived at the event location on Saturday morning about 8:15, assuming that would give us time to check-in and then I could find my room and get set-up for my 9:00 session.  Well, it didn’t quite work out that way.  There was a glitch that slowed check-in so I skipped check-in and went right to my room to get set-up.  My biggest fear when speaking is that something technical is going to go wrong like not getting the projector to work, so I always get into the room as soon as I can.  I was glad that I did as I did have trouble getting the projector working, but I finally found a “cheat sheet” in the podium drawer and go everything working.

The check-in problems delayed the start of the first session, so I didn’t get started until between 9:10 and 9:15.  That little delay gave me some time to socialize with the early arrivers and find out that most were at their first SQLSaturday and did not attend a user group.  So I was able to encourage them to make an effort to attend their local user group and extol the virtues of user groups.  During the presentation I was also able to promote PASS and the PASS Summit.

The Presentation

My presentation was titles, “Why I Use Stored Procedures”, and I billed it a an open discussion, but, unfortunately, I still ended up doing most of the talking as I didn’t have anyone in the room who strongly held the opposite opinion.  My main points were that stored procedures offer benefits in the areas of:

  • Security
  • Maintenance
  • Performance

I ended the session by demoing some of the different ways to access a database using .NET.  I had a simple windows form application with a textbox and 5 buttons, each of which used a different method to to query the database.  I used:

  • Linq to SQL
  • Entity Framework
  • ADO.NET with Ad Hoc SQL
  • ADO.NET with Parameterized SQL
  • ADO.NET stored procedure command

During the demo I had Profiler running to show the SQL that was submitted using each method.  I traced the following events:

  • RPC:Completed
  • SP:CacheMiss
  • SP:CacheHit
  • SP:CachInsert

I wanted the attendees to see the following things:

  1. That Linq to SQL and Entity Framework work similarly and that while they use parameterized SQL, the parameters (at least character parameters) are set to the length of the string.  This means that a new plan is built whenever you have a different length string passed.  One attendee mentioned that this is fixed in .NET 4.0.
  2. That Ad hoc SQL has a new plan created if there are any changes to the SQL, including spaces and case.
  3. That ADO.NET parameterized SQL and calling a stored procedure (using the stored procedure command type) build one query plan and re-use it.

Turnout for the session was good as the room was basically full which was nice considering the other sessions going on and the delay at the check-in table. 

Overall the session went well and the attendees seemed to have enjoyed the session and learned something.  The biggest mistake I made was that I forgot to put my contact information in my slide deck.  The positive side of that is that several people came to get my business cards and I think that was partly due to my forgetting to put the contact information in the deck.

All materials are available on the SQLSaturday site here.

Day Summary

I then attended a three sessions, Dmitri Korotkevitch’s “Getting familiar with SQL Server Storage Engine”, Geoff Hiten's “Clustering for Mere Mortals” (a great session since I don't have clustering experience), and Jonathan Kehayias’ “Real Time Problem Identification with Event Notifications” (another great session).  Then it was time to head out as we needed to get home to Sanford to pick up our kids.

As usual Pam Shaw (@pamshaw), Jorge Segarra (@sqlchicken), and volunteers deserve kudos for putting on a great event.  There are always a few glitches like at check-in, but those really don’t put a damper on the event at all.


  1. Hey Jack

    First, thanks for sharing some information about SQLSaturday32 and your session.

    Second, *w00t*!? I have to admit, I never checked L2S/EF SQL parameter creation for text columns. Thought this MUST be done correct.


  2. No problem Florian. Enjoy sharing what's going on.

    L2S and EF are almost there but not quite, but I still like SP's.


So what do you think I am?