Thursday, April 29, 2010

SQLSaturday #41 - Atlanta Session Recap

Last Saturday, April 24, I presented my session, Why I Use Stored Procedures and You Should Too, at SQLSaturday #41-Atlanta, see my event summary here.  My session was in the last block of the day, which at this event was at 4:45PM, so it was a long day for attendees, thus I was very happy to have 20 attendees in my session.  At the end of the day, especiallyafter attending 6 other sessions, it can be hard to hang around for that extra hour, so I appreciate everyone who toughed it out.

I started out by encouraging the attendees to become involved in their local user group, about 50% said that they had attended a user group at least 4 times in the last year, and in PASS. 

In this session I give the reasons I believe that stored procedures are the best way to access data in SQL Server and I encourage discussion of other access methods (Linq to SQL, Entity Framework, nHibernate, etc...).  I have 3 main points that I cover:
  1. Security
  2. Maintenance
  3. Performance
I finish the session, as time allows, by demonstrating different methods of data access in a .NET application.  I show the difference between Linq to SQL, Entity Framework, and the various ADO.NET methods (string concatenation, SQL Command using parameters, and Stored Procedure calls).  I also run Profiler to show the SQL generated by the tools, and the impact on the procedure cache.  Prior to .NET 4.0 both Linq to SQL and Entity Framework could cause cache bloat/pollution when using string parameters, but this has been improved in .NET 4.0.

I had some good interaction, but, as you would expect at a SQL Server event, it was hard to find a proponent of ORM tools so I had a friendly crowd.  Prior to my session I had a good discussion with Chris Eargle (@KodeFuGuru) who does a presentation on RESTful Data that uses an ORM layer for data access.  He was in a tough spot in the speaker room with multiple DBA's present, but was a good discussion.  I need more of that.

Based on the speaker/session evaluation I did a good job in communicating what the session was and covered the material as expected.  Here are the numbers (I had 2 blank evals):

Expectations:
  • Did Not Meet - 0
  • Met - 10
  • Exceeded - 8
Overall quality of presentation (1-5 with 5 being the best):
  • 1 - 0
  • 2 - 0
  • 3 - 1
  • 4 - 8
  • 5 - 9
There were no comments on the evals, but I'd like to know why I someone rated the presentation at 3, but overall I have to be pleased that I graded out above average, well based on these numbers.

I always enjoy attending these events and presenting just adds to the enjoyment.  Thanks again to Stuart (@StuartA) and  crew for putting on a great event.

Tuesday, April 27, 2010

SQLSaturday #41 – Atlanta Recap

I had the opportunity to go present at SQLSaturday #41-Atlanta this past weekend (April 24, 2010) and I had a great time. Stuart Ainsworth (@stuarta) and crew did a great job putting together the event and as a presenter/attendee I would say that everything ran very smoothly.
 
Getting to Atlanta/Alpharetta

 
I flew up to Atlanta on Friday afternoon and met Kendal Van Dyke (@SQLDBA) at the Enterprise Rental Car counter and we drove from the airport to the speaker party, sponsored by Confio Software, at Bahama Breeze in Alpharetta. I have to admit that I was a bit worried about how long it would take to get from the airport to Alpharetta since we had to go through Atlanta to get there, but we had no problems and got to Bahama Breeze at about 6:30 and the party officially started at 7:00.

 
Friday Night Speaker Party & Extended Event

 
We thought we were early so we waited outside, but it turned out Stuart and some others were already out on the deck on the other side of the building. There was a good turnout at the party and nice to re-connect with people I already knew and to meet some new people (I’d list them, but in most cases I only have first names).

 
After the speaker party Kendal and I headed out and spent some time with Peter Shire (@Peter_Shire) and Steve Wright from SQL Sentry, another of the event sponsors. I had met both Peter and Steve at the 2009 PASS Summit so it was nice to get to know them a little bit better. Then we headed to Aaron Nelson’s (@SQLVariant) house to crash for the night. Thanks for opening your home to me; it was nice to be able to save a few dollars by not having to pay for a hotel.

 
The Event

 
Saturday morning we headed to the Microsoft campus where the event was held and arrived about 7:45. If this is what Microsoft’s satellite campus is like I really need to get to Redmond to see the main campus. Once you got to the campus Stuart and crew did a good job with signs directing you to the correct parking area and Microsoft did a great job of blocking the roads you were not supposed to head down. Registration was setup in the lobby on the first floor and seemed to be going smoothly, I didn’t spend much time here, so if there were any issues I didn’t see them. The first “problem” I saw was that the event was being held on the third floor and Kendal and I were not told this at check-in, although to be fair, we did bypass the main check-in line because Kendal had a session in the first block. Kendal had attended last year’s Atlanta event so knew we needed to go to the third floor, but either signs near/in the elevators or a person in the area directing people to the third floor would have been nice. Also signs or a person directing you were to go once you got off the elevator would have been good as well.

 
Once we got to the third floor we were directed to the speaker room which was right next to the sponsor area. The sponsor area was a little small, but everyone had to pass it to get to the sessions and, it appeared that the sponsors got a lot of activity. In fact, of the six events I have attended, this seemed to have the most active sponsor area. I spent quite a bit of time in the sponsor area, not so much to hear about the products, although I did that, but to meet the sponsors and begin advertising for SQLSaturday #49 – Orlando and OPASS. The sponsors are the ones who make it possible to offer these events for free with only a small lunch fee.

 
One thing that was different at this event was that they had books to raffle at the end of each session. Now this has been done before, but the way they did it was different. Each session attendee was given a speaker/session evaluation form and a raffle ticket and at the end of the session they put their raffle ticket number on the evaluation and the speaker drew the winner(s) from an envelope with the evaluations. The nice thing was that the speakers then kept the evaluations instead of turning them back in to the event staff. This is good for three reasons:
  1. Every attendee turns in an evaluation, although I did get two without any evaluation information. 
  2. The speaker gets immediate feedback.
  3. The organizers don’t have to compile the evaluations and send them out to the speakers.

There is one drawback and that is that the organizers don’t have data on the speakers for next year.

 
The second thing that they did differently was have a proctor in each room who was responsible for handing out the evaluation forms and raffle tickets, keeping the speaker on time, and making sure that the rooms were not over capacity.

 
The last thing I noticed that was different was that some of the volunteers/organizers brought their teenage children to serve as gophers. This was a great opportunity for the kids to do some community service and this meant that the adult volunteers were free to act as proctors and deal with any issues that arose.

 
The day ended with the large item raffle. The big items were a couple of $100 American Express gift cards, a signed iPod Shuffle, and SQL Sentry’s suite. The raffle was organized and went quickly. Any sponsors who were present got a minute to say something about their company and drew the winner of their prize.

 
Overall it was another great event. I went to try to make some new contacts, which I did, and also to work on developing relationships with the sponsors and I was able to do that pretty well also. So for me the event was definitely a success and worth taking the time and spending the money to go.

 
Thanks to Stuart and team for allowing me to come and speak. I hope I can do it again next year.

 
I’ll be discussing how my session went in my next post.

Thursday, April 22, 2010

OPASS is pleased to announce - SQLSaturday #49 - Orlando October 16th. Get it on your calendar now.

SQLSaturday #49 - Orlando is now live on the SQLSaturday web site.  It will be held on October 16th at Seminole State College, Lake Mary Campus.  This is #4 for Orlando and the #3 held at the Seminole State College, Lake Mary Campus.  We've had about 250 attendees at each event and this year we are really hoping to crack 300.  We know we have enough SQL Server users around to make that number and we're getting a head start on the event this year so hopefully we'll make it. 

We are still going to have the $10 lunch fee, so we know that is covered and can hopefully do more with sponsor dollars.

We are going to try some new things to try to grow the event, some of which are in this blog post, but here are a couple I didn't mention:

  1. A dedicated sponsor track.  We think that this will add value for the sponsor by letting them demonstrate their product and for the attendee it's an opportunity to see some of the third-party tools in action.  I know this is something I've been interested in for awhile.  Why should I choose one monitoring tool over another, or how can I get the most out of the tool I already have.
  2. A Deep Dive block after lunch.  Instead of all 1 hour sessions we are planning to have one block of 2 hour Deep Dive sessions after lunch.

Feel free to contact me via twitter (@unclebiguns) or the blog if you have any ideas to help make the event better.

Wednesday, April 21, 2010

Presenting at SQLSaturday #41 – Atlanta

I have the privilege of being able to attend and present at SQLSaturday #41 – Atlanta this weekend.  This will be my first SQLSaturday outside of Florida and the first time I will have presented outside of Florida.  I’m looking forward to seeing many “old” friends and making even more new ones.  My presentation is:

Why I Use Stored Procedures and You Should Too!

With the proliferation of ORM Tools like Linq To SQL, NHibernate, there has been a move to no longer use stored procedures for Data Access, I personally disagree. This will be a professional and polite open discussion starting with why I believe stored procedures are the best way to access data in SQL Server. Alternate view points welcome.

With the recent release of Visual Studio 2010 and .NET 4.0 there have been changes in the Microsoft ORM tools that alleviate some of the issues I have with ORM tools, but I don’t think all the issues I see have been addressed.  It’s interesting that at my office we just brought in a consulting company to work on a project with us and they are proponents of Linq to SQL, so I get to try my arguments with them and hear the other side of the argument. 

I’ll be flying into Atlanta Friday afternoon and should be at the speaker party of Friday night, but will miss the after-party on Saturday to be able to catch my flight back to Orlando. 

If you are attending please be sure to find me on Saturday.  I’ll have my contact cards, I hope you will, too!

If you have registered, but will not be able to attend please cancel your registration so someone on the waiting list can attend.  Thanks!

Tuesday, April 20, 2010

Growing PASS Step One - Communication

My History with PASS

Over the last two years I have become more involved in the SQL Server community through attending local user groups (OPASS), forum participation, blogging, SQLSaturday attendance, and attending my first PASS Summit last fall.  As part of my blogging I've been fairly outspoken about what I think PASS should do and how it should operate.  Here are my editorial blog posts to date:

  1. What Should PASS Strive to Be?
  2. SQLSaturday Acquired by PASS - Reactions
  3. A Swing and a Miss by PASS (this one probably created the most reaction)
  4. PASS Releases Survey Results & Summit Location- Reactions
  5. PASS, Microsoft, and Certification

I had a teacher that used to say, "If you aren't part of the solution, then you are part of the problem."  This post is part of my attempt to be part of the solution.

How Does PASS Communicate?

I know of seven methods PASS uses for communication:

  1. PASS Web Site.  They do a pretty good job at keeping this up to date, but, to be honest, it's not a web site I check regularly (trying to do it more), so I'm not sure a web site is the best means of communication in this day and age.  If an engaged member of the community like myself is not checking it regularly, who is?
  2. PASS Connector Email.  This is a good method of communication, if people read it.  One issue I have with it, is that every article requires a click-through to the web site.  At the very least the Main article should be included in full.
  3. PASS Blog.  I have to be honest, I didn't even know this existed until about a month ago.  This is basically the place where the lead article in the Connector is posted.  The problem with this is that the RSS feed does not work currently.  As I mentioned about the web site, I don't go there every day, but I have my feed reader open every day, so I'd get everything if that feed worked.  This should be a priority. Note: I received an email from PASS while writing this post that a new RSS feed was published, so I’m monitoring it.
  4. Twitter.  Blythe Morrow (@BlytheMorrow) is on twitter and there is a PASS account, @SQLPASS.
  5. PASS LinkedIn Group.  This is fairly active, but it looks like less than half the posts are by PASS HQ staff or Board.  I also don’t see announcements about the availability of board meeting minutes or blog posts.
  6. PASS Facebook Group (or is it a Fan Page?).  I know I joined this, but I don’t recall seeing much happening with it.
  7. PASS monthly Chapter PowerPoint deck.  This is a slide deck sent to chapter leaders monthly that contains A LOT of information, in fact, probably too much, but it is PASS trying to keep us up to date.

So it’s not as though PASS is not trying to communicate, but are they giving us the information we want?  PASS is doing a good job of promoting and producing learning events like the Summit, 24 Hours of PASS, Virtual Chapters, and Articles.  Perhaps this is what most of the membership is looking for, and in that case this is fine, but here are a few things I’m looking for:

  1. What are the goals of PASS for this year? Douglas McDowell has actually done this for the Chapter Portfolio for 2010.
  2. What is being done to accomplish those goals?
  3. What are PASS’s five year goals?  Are there any?

Perhaps this information is out there and I just haven’t found it.  This is what I want to hear about, events, and articles are great, but tell me where you want to take me and then show me the progress we are making.  This is what is going to draw me in and keep me engaged, I have to think I’m not the only one.

Thursday, April 15, 2010

Checklist for having a Remote Presenter at your User Group

After having a bit of a tough time in the April OPASS meeting (read about it here), due to not having a checklist, here is my newly minted checklist for hosting a remote presenter.  Let me know what you think.

  1. Make sure you have the meeting setup correctly in Live Meeting.  The right date is very important.  I learned this the hard way by having the wrong date and the presenter could get in, but not any remote viewers.
  2. Test both the presenter AND attendee links prior to the meeting.
  3. Make sure you have the presenters phone number.  Many presenters turn off email, twitter, and IM clients.  You may need the phone number in case there are technical difficulties.
  4. Remember to check sound at your location.  Make sure you have your speakers working for a remote presenter and that you have a working microphone so that you can speak to the remote presenter.
  5. Turn off the screen saver on the PC connected to the projector.
  6. Make sure you click RECORD!  When you send the presenter link to the presenter be sure to include instructions for them to check to see if the recording has been started and if not have them start the recording (they may need instructions for that as well).  This will make them check and help remind you to check as well.

Wednesday, April 14, 2010

OPASS April Meeting Recap

Well, we had our April meeting on Tuesday the 13th.  Let's just say it wasn't our most successful meeting, and as the leader, I have to take the responsibility.  Yet, there are still things that went well.  Let's address the issues we encountered first:

Problem 1

This was a meeting with Joe Webb (@joewebb) presenting remotely via Live Meeting.  In order for this work correctly you have to setup the Live Meeting correctly, and I did not.  Somehow, and I don't know how or why, I set the date of the meeting to April 5th.  It looks like that is because it was the day I setup the Live Meeting.  This meant that the presenter link still worked, but the attendee link did not.  People using the attendee link got a "Meeting has ended" message which led to fewer online attendees.

Short-Term Solution:

Change the meeting date in the Live Meeting setup so attendees could get in.

Long-Term Solution:

Verify Live Meeting settings in the management tools before the meeting begins.  Test the presenter AND attendee links before the meeting begins.

Problem 2

Just after Joe Webb finished introducing himself and started into his presentation we lost audio.  we found that this was not isolated to our location, but affected ALL online attendees.  While this is not something you expect, you aren't surprised by it either, you do expect some technical difficulties you just aren't sure what.  So while this was inconvenient, it became a bigger problem because I had no way to let Joe know we couldn't hear him at this point because he was not on Twitter or email and I did not have a phone number

Short-Term Solution:

Drop Joe from the meeting and make him rejoin.

Long-Term Solution:

I don't think you can eliminate technical problems, but make sure you have a phone number for the remote presenter.

Problem 3:

Low attendance.  We have been over 20 this year thus far.

Short-Term Solution:

None.  It's not like I could go out and drag people in.

Long-Term Solution:

While I thought this was a good topic, it is more of a niche topic so perhaps combining that with a remote presenter was not the best idea.  Joe did fine presenting and is a good speaker, but perhaps having him do his presentation on Locking and Blocking would have drawn better.  We had our regulars and I think they enjoyed the meeting, but we need to get the occasional attendees to become regulars.  I'm open to suggestions.

Problem 4:

I forgot to record the meeting.

Short-Term Solution:

None.  I just forgot while dealing with the Live Meeting setup mistake and by the time I remembered it was well into the presentation.

Long-Term Solution:

There are a few options to solve this: 

  1. The first is to put together a checklist of things that I need to do on meeting day, especially when having a remote presenter.  I'm working on that and will post my list on the blog so you can comment and add the things I missed. 
  2. Second, in the email with the presenter (whether remote or not) remind them to check to see that the recording is started, and if not, start it.  The email will include instructions on how to do that.  This will help in 2 ways:
    1. The presenter will know to look and make sure the recording is started.
    2. It is also a reminder to me to start the recording.
  3. Third, start the recording as soon as I connect to the meeting.  This would be a last resort because then I would have to learn how to edit the recording so that it only includes the presentation.

Now for the positives:

Once we got the technical issues solved we had a complete presentation from an experienced speaker.  Joe had a few issues with his demos, but he covered everything he said he would cover and the attendees learned some new things. 

We had a great discussion after the presentation about how to mitigate some the issues inherent with Data-driven subscriptions, like the report runs once for each recipient and the load that this puts on your resources.  Joe mentioned this in the presentation and answered some questions about it afterwards, but the discussion continued on for awhile after the Live Meeting had ended.  There were some interesting solutions proposed (some outside SSRS/SQL) which included: putting user processes in place, using the CLR, Powershell, and even a VBA class (we have an Access MVP who attends regularly).

We had a good discussion to start the meeting about PASS, where the organization is, where it's going, where it should go, and being involved in the organization.

After the meeting we had a good discussion about SQLSaturday and how we can grow our event in Orlando.  A key point raised by Phil was that we need to have more developer-focused sessions so we can draw on the 500+ that attend the Orlando Code Camp.  A side benefit that may result from this conversation is perhaps getting Phil to step up and be a presenter at OPASS and SQLSaturday.  Phil, if you are reading this, I'm going to stay on you!

We also had a good discussion about ORM's and development processes and philosophies.  It's always good to have someone with a non-DBA view in the mix.

Finally, Andy(@sqlandy), Kendal Van Dyke(@SQLDBA), and I hung around to discuss growing the group, SQLSaturday, and PASS (particularly the mini-Summit on the East coast).  These discussions are always fun as they are basically brain-storming sessions and usually something useful comes out of them.

The last positive thing that occurred is that I once again learned a lot about what it takes to run a user group and a user group meeting.  If I make the same mistakes again then there are bigger issues, but if you never try anything you never grow.  I hate to have things go wrong, but there's no reward without some risk, and as bad as I feel when there are fail, I feel even better when I have success.

Tuesday, April 13, 2010

T-SQL Tuesday #005 – Don’t Send a Blank Report from a Report Subscription

Aaron Nelson (@SqlVariant) is hosting this month’s T-SQL Tuesday (#tsql2sday) and his topic is reporting.

One of the frustrations I have had and seen with Reporting Services subscriptions, especially when using non-enterprise edition, is that there is no built-in way to specify that a report should not be emailed if there is no data.  I came up with a work around, albeit not a perfect solution.

The first step is to note what jobs you have already created on your reporting SQL Server so you will know what job applies to the new subscription.  This is because SSRS subscriptions are driven by SQL Agent Jobs.  I’m sure there are other ways to find out which job ties to your new report subscription (querying sysjobs for most recently created or directly querying the ReportServer database), but in my case knowing what you already have and visually finding the new job was the easiest.

Next, create your scheduled subscription and under “Select Schedule” set the dates to begin and end the subscription to the past.  This is an important step as you don’t want the job to run on it’s own, but when you determine it should run.  Then click “OK” to save the subscription.

Now, you should have new job in SQL Agent with a GUID as a job name.  Now you need to create a new SQL Agent job with one step.  In that step you will, unfortunately, need to duplicate the logic in the report.  For example, Previous Day’s Sales, you would do something like this:

IF EXISTS ( SELECT
1
FROM
Sales.SalesOrderHeader AS SOH
WHERE
-- Start of Yesterday
SOH.OrderDate >= DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) - 1, 0) AND
-- beginning of today
SOH.OrderDate < DATEADD(DAY, DATEDIFF(DAY, 9, GETDATE()), GETDATE()) )
BEGIN
EXEC
msdb.dbo.sp_start_job @job_name = N'B05BEC48-721A-4BE4-B2E8-9B13F6143025'
END


As you can see, this code checks to see if any Orders were placed the previous day, and, if there were any orders, the job created by our SSRS Subscription is run, if no orders were placed then the SSRS subscription does not run.  You would then schedule this job to run on a daily basis so the subscribers to the report will get an email whenever there have been orders made the previous day.



The problem with this work around is obvious, when you have data you run similar queries twice, thus increasing the load on your SQL Server.  If you have many subscriptions, you may not want to use this work around for them all.  I came up with this because we had an exception report and the business users only wanted to receive an email when there was an exception.

Monday, April 12, 2010

April OPASS Meeting Featuring Joe Webb

Tomorrow night, April 13th, at 6pm we will be having our April OPASS meeting, sponsored by Veredus Orlando with Joe Webb (@JoeWebb) as our featured speaker.  Joe's topic will be Creating Data-Driven Subscriptions in SQL Server Reporting Services.  Joe is an experienced presenter and, from my experience, does a great job covering the topic and answering questions.  Joe will be presenting remotely via Live Meeting, so if you can't make it in person you can still join us for the featured presentation at 6:45 pm.  Here's the Live Meeting link:

https://www.livemeeting.com/cc/usergroups/join?id=8RHDGJ&role=attend

We do hope to see you in person as we have a great time, at least I do, at the start of the meeting getting to know each other.

If you are planning to make it in person please RSVP to webmaster@opass.org so we can make sure we have enough, but not too much, pizza for the evening.

Wednesday, April 7, 2010

SQLSaturday Orlando 2010 - The Planning Begins

Believe it or not, it's already time to start planning for Orlando's next SQLSaturdayAndy Warren and I had our first planning call yesterday, he had spoken with Kendal Van Dyke at the Orlando Code Camp, and this year we have divided the labor differently than last year, mainly so I can get my feet wet in new areas and Andy gets to do something a little different.  Last year I handled speakers and schedule while this year I'm going to be handling sponsors and messaging.  So, if you are interested in sponsoring let me know with comment on the blog.

Andy is very good at logistics so we let him handle setting up the location, traffic flow, and incidentals (coffee, snacks, cups, etc...) so we look for other areas to spread the load out.

We normally hold the event in mid to late October, but are looking at moving it up to late September or early October to give us some more time between it and the PASS Summit.

We've averaged about 250 attendees in 3 events thus far, but are really hoping to break the 300 mark this year.  Some of the ways we are hoping to do this are:

  1. Getting started with marketing earlier.  For example, this blog post.  As soon as we have a venue and date fixed we will be working on getting the word out via blogs, social networking, user groups, and any other way we can think of.
  2. Trying a SQL for Developers track where the topics are geared more for the application developer than the SQL Server Developer or DBA in order to bring in more of the .NET crowd.

If you have any ideas for getting the word out or the event please feel free to let me know.

Thursday, April 1, 2010

PASS, Microsoft, and Certification

Steve Jones’ (@way0utwest) recent SQLServerCentral editorial, The Missing Certification, has spawned a vigorous debate about what the missing certification should be, not whether or not there is a one missing.  Sure, there has been some discussion about the value, or lack thereof, of current Microsoft SQL Server certifications, but, if you can sift through the clutter and get to the main discussion, there is agreement that the current exams fall a bit short and that the MCM program is a bit too much for the vast majority of people.

So where does PASS come in? 

I think that PASS should be the organization that promotes and provides this middle tier certification.  I know that this has been discussed in the past, but I have not seen any public mention of an initiative in this area by PASS recently. 

What about Microsoft? 

One issue with the current certifications is that they are published by Microsoft and many people see them as just another revenue stream for Microsoft, not as valid tests of skills.  This alone taints any additional certifications that Microsoft may offer.

So what is the solution? 

First I think we need to change the perception about what gaining a Microsoft certification means.  To me, it isn’t really a measure of actual skills, but more a way to measure and guide professional development.  For example, if I were to see a resume where a person was certified on SQL Server 7, but never moved forward to certify with a later version, I would be inclined to ask why they did not seek another certification and what they were doing for professional development.  But, if another candidate comes in with certification from 7.0 to 2005 I would be clued in that they have an interest in their own professional development.

I think that a great path forward for PASS would be to develop guidelines for continuing education for SQL Server professionals.  Similar to what most states have in place for maintaining a teaching credential, where you are required to have a certain number of professional development hours in different areas.  Currently PASS doesn’t have the power to require it for work, but could make it part of becoming a “Professional SQL Server DBA/Developer/BI Developer”.

I know I don’t have the complete answer, but I really think professional development guidelines are a great place to start.

Here's another perspective:

Jason Brimhall (@sqlrnnr) - Stepping Stone Cert

What do you think?