Monthly Archives: September 2010

Table Value Parameters with SQL Server and .NET

Have you ever wanted to send multiple insert statements using one round-trip to the database? This month I published a tip on mssqltips.com to do this implementing Table Value Parameters with .NET.  It will be the first of many tips and blog entries on SQL Server 2008 Development as I am schedule to present at a few events across the country.

For more on Table Value Parameters check out my links.

Recap: Mid-Atlantic Community Leadership Summit

Last weekend I attended the first annual Mid-Atlantic Community Leadership Summit (#MACLS) held for user group leaders. I would like to thank Andrew Duthie (Blog | @DevHammer)  for inviting me.  He did a great job putting the event together at the Microsoft Offices in Reston, VA. 

The following are some notes for everyone that didn’t get a chance to make it out. In general the purpose for the event was to get user group leaders together to share what’s works and what doesn’t work.  There is no order to the post just some notes with some random comments from my experience running the Greater Wheeling Chapter of AITP and hosting SQL Saturday #36.

How do you measure your user Group?

Your user group doesn’t have to be huge to be successful. I learned first hand that 20 attendees is not considered a small group from the consensus of user group leaders.  Sometimes leaders get lost in user group stats. Stats being the number of new members or attendance per meeting.  I will admit that I have been guilty. These stats really don’t hold water towards determining if a user group meeting is successful.  If you have a lot of people attend but no value provided to the attendees the meeting is not successful.

How does the user group get better?  You have to ask the members.  Its hard to meet the attendees expectations if you don’t know what they are expecting. Doing so could be a rewarding exercise for the leaders of the group and the attendees.  It helps the attendees feel like they are part of the group and it helps the leaders provide value by implementing the missing pieces. 

When should I hold that event?

BatmanWhen should I hold that event? This is a question that is asked by many user group leaders during the planning phase of an event or startup phase of a new group. Andrew Duthie created a website known as Community Megaphone to help solve this problem.  There are several user groups which means you might be competing for speakers and attendees. The Community Megaphone cannot predict when another group is going to have an event but if everyone adds their events it is a great system to see if anything else is planned.

Just like the Batman cartoon try to have your events on the same bat day, same bat time, same bat channel.  From my experience I think this works well for user groups.  Its easier for members to attend if you hold the meetings monthly on the same day (number of month or day of a week), same time and same location.

Speakers and Topics

User groups need to communicate with their members and make sure the topics are covering what the needs of the user group.

When you decide to bring a speaker in to talk have them submit multiple topics.  This allows the user group leader to follow-up with its members to decide which presentation will be a better fit for the members.  This benefits both the group and the speaker.

Instead of always having one speaker talk during the meeting or a time slot consider having several speakers talk for a short period of time.  This will light a fire and motivate some new speakers to step forward and give their first presentation because they only need to present one small topic.  The PGH.NET User Group does a good job of doing this a couple times a year.  I really enjoy them check out my thoughts on the five guys with code meeting.  The SQL Server community is also doing this at the 2010 PASS Member Summit with their lightning talks series.

The general consensus of the group is that user groups need more real-world examples during presentations and more beginner (101) sessions.  More lights go off in attendees heads when they see something they can or should implement when they go back to the office.

Liability and Coverage

First of all I am not an attorney so everything covered in here is just notes from the meeting not my opinion.    If you are in a metro area you might want to combine user groups into one non-profit organization.  I learned that the DC area is currently doing this and it seams to be working out for them.  I also believe that the Pittsburgh area does the same leveraging the Pittsburgh Technology Council (This is not verified so don’t quote me on this).  If you are in a rural area then you can look at legalzoom or try to find an attorney who might be interested in doing a little pro-bono work.

It seams like a lot of small user group start off without incorporating.

If you are a lawyer or are friends of a lawyer ask them to do a white paper on the legal side of starting a user group.  It seams like there isn’t a lot of information out there on this.

Vendors (Sponsors)

One of the most surprising things I learned this weekend is that vendors want relationships not just sales.  Okay I you caught me, I knew this but sometimes its great to be reminded because it can be easy to forget.  Anyways, ComponentOne and Infragistics had evangelists at the meeting.  They both wanted all the user group leaders to know they are willing to help they just need to know what you need.

Vendors can also do more than provide swag, pizza and money.  A real world example is SQL Saturday #36.  I had no idea where I should put the sponsors.  I called Andy Warren (blog | twitter) my mentor for the event and he reassured me that this was a common problem.  His advice was very helpful.  Andy said, “Ask your platinum sponsor Confio they have sponsored SQL Saturday’s in the past they will know the best spot for the sponsors.” I followed Confio’s advice and the rest was history. The moral of the story is that vendors are not evil they can be helpful if you choose to ask them for help.

Hosting an All Day Event (SQL Saturday, Code Camp, SharePoint Saturday etc..)

The following advice was given about hosting a big event like Code Camp, SQL Saturday, SQL Saturday (or any other all day multi-track event) but I believe it also is good advice for running a user group.  You need to treat the event like a business and get a core team together to make it happen. A core team doesn’t have to be a huge team but it has to be more than one individual.  Treat the event like a business means assign action items and have people be responsible for the detailed action items and assign due dates. The group needs to have a task manager who can get things running and make sure everyone is meeting deadlines.

Always put your attendees in charge of giving away their information. Allow sponsors to have raffles where they can collect business cards or information.  At SQL Saturday #36 we printed out cards with everyone’s contact information and gave them to the attendees in their welcome kit.  This sponsors could get contact information from attendees who don’t have or forgot their business cards.

Don’t do individual sponsorship as it can be too complicated. For example, you might think to have a lunch sponsor, snack sponsor, after-party sponsor and so on. This can be complicated because one group had an after-party sponsor but found out after the fact that the sponsor would only cover non-alcoholic drinks.  The group had to pay out of pocket for half of the dinner bill. So what’s an easier way to handle sponsorship?  Divide up sponsorship by using levels.  Break sponsorship levels out into Platinum, Gold, Silver and Bronze and then assign values and benefits to them so that the sponsorship will cover your total budget and still get value out of their money.  Remember that you should build your sponsorship plan like a pyramid and have only a few Platinum level sponsors.

This covers everything I have in my notes.  If you attended and I left anything out feel free to add it in the comments section.

Recap: #24hop (24hrs of PASS) – Day One

I am very happy that the committee behind #24HOP made two decisions.  One they decided to split the 24 hours into two days.  This is huge for people in the USA as we don’t have to pull all nighters.  Second, I am very glad day one fell on a Wednesday.  Why would I be exited it falls on a Wednesday?  I am excited because it is no pants Wednesday.  No pants Wednesday  means I don’t work on Wednesday’s so its very easy to attend sessions.

Day Two

If you didn’t catch it in the first paragraph there is a day two.  That’s right peeps you can still signup and attend some great sessions.  If you need some help picking a session or two I wish I could attend the ones listed below.

The following is a short review of the sessions I attended on September 15th 2010.

Gather SQL Server Performance Data with PowerShell

Allen White (Blog | @SQLRunr) showed a very slick way to automate the process of collecting WMI counters and save them in a database.  This alone was very slick but to add the icing on the cake he also showed the crowd how to build reports that work inside of SSMS.

My eyes were opened up wide when I saw how easy it was to do WMI and SQL calls with PowerShell.  I will defiantly check out http://powershell.com in the near future to get my learn on.

It looks like Allen has a great PreCon session for the SQL PASS Member Summit 2010 lined up that will get you well on your way with automating your DBA tasks.

Hardware 201: Selecting and Sizing Database Hardware for OLTP Performance

Glen Berry (Blog | @GlenAllenBerry) ran through tons of statistics behind selecting CPU’s, Memory and Disk’s for your new database servers.  I have to be honest quite a bit of this was over my head but below are a few items that stuck.

  • Optimize your hardware purchases to take advantage of your SQL and Windows Server editions
  • Don’t go cheap on CPU’s. You rarely upgrade the CPU unlike RAM or disks.
  • Xeon X5680 and Xeon X7560 were recommended CPU’s
  • SSD (solid state drives) are good for random writes (user data files) not sequential writes (log files)
  • 10K drives = 100 IOPS
  • 15K drives = 150 IOPS
  • Make sure High Performance is enable in power settings on your servers

Identifying Costly Queries

Grant Fritchey (Blog | @GFritchey) showed us several different tools you can leverage to identify costly queries.  He showed us how to setup SQL Profiler using stored procedures to lessen the load on your production boxes.  Grant also showed me a new tool I haven’t used before. This was the SQL RML Utility tool that can be helpful show how long a query really took.  Grant also showed us server DMV’s that can be used to get real-time understanding costly queries.

For some samples and resources used in the demo check out his resources blog page.

How to Rock Your Presentations

Douglas McDowell (Web | @douglasmcdowell) delivered the most important session for me.  This year I started to focus more on giving back to the community through technical presentations.  I am always looking for some tips that will improve my presentations.  The following were a few tips I plan to implement on my current presentation schedule.

  • Treat presentations like a development project
  • Storyboard each topic
  • Build an outline
  • Make sure to add RM, WIIFM and KWUC to all presentations.

You can find more in his PowerPoint presentation at http://downloads.solidq.com/DMcDowell/RockPASS_DMcDowell.zip

Conclusion

This was another great day of #24HOP.  The best part is it continues today.  The sad part is I will miss out on the sessions.  If you catch them and have good notes.  Please add them as a comment or blog them so the unlucky ones can check out the info.

Upcoming Speaking Engagements

With football season starting I thought I would share some travel dates.  If you are at any of the following events please don’t be shy and say hi.  I look forward to hitting the road and making some new friends as I continue to connect, share and learn.

Sept 18th : Reston, VA
Microsoft Regional Leadership Summit (Non speaking)

Oct 16th : Pittsburgh, PA
Pgh.NET Code Camp 2010.2 (SQL Server 2008 for Developers)

Oct 23rd : Dallas, TX
SQL Saturday #56 BI Edition (Submitted: SQL Server 2008 for Developers)

Nov 8th – 12th : Seattle, WA
SQL Server PASS Member Summit (Submitted Chalk Talk – SQL Server 2008 for Developers)

Nov 19th : Pipestown, WV
AITP Region 18 Fall Conference

Jan 29th : Houston, TX
SQL Saturday #57  (Submitted  SQL Server 2008 for Developers)