Art of the DBA Rotating Header Image

January, 2013:

Matters of Subject

Last week, I provided some tips on finding that first venue for presenting.  This is only half the equation, though.  Once you’ve got a commitment to speak, the next thing we need to do is pick something to speak about.

Choosing your first topic feels like a daunting task.  All first time speakers want to educate and share, but most importantly they want to impress.  The problem is beginning presenters are also painfully aware of the experienced data professionals and local experts that will be sitting in the audience.  These factors, combined with the speaker’s understandable inexperience, will usually result in someone selecting a topic that is a tough fit for the audience and an even bigger struggle for the presenter to put together.

What do I mean by this?  Let’s look at an example from a presentation I attended at a local user group.  The main presentation was a first timer and he had chosen for his topic “database performance”.  Now, I probably don’t need to tell you how many different elements could go into this. The presenter could have easily talked hardware, indexing, query plans, or other topics for an hour and provided a solid presentation.  As it was, the topic was too broad, leading to the speaker getting flustered while the audience was confused and distracted.  It was a rough night.

New speakers typically set the bar too high for themselves.  When we get right down to it, the success of all presentations is built more on the focus of the message than the depth of the topic.  Let’s look at the other side of the coin.  Another first time speaker gave a talk on reporting services tips and tricks.  This talk was mostly about utilizing the properties window in reporting designer, with no live demos or elaborate diagrams, yet it was a success because it had a fine-tuned message and didn’t try to do more than it had to.  It also had a Picard/Riker face palm, but I digress.  The audience left the presentation informed and satisfied because the speaker had remained on-topic with a message that was easily digestible for that hour long time slot.

This is why I’m such a big fan of new speakers starting off with a 30 minute or less presentation.  This isn’t a lot of time and forces a presentation to choose subject matter that can fit.  Also, even though many user groups might consider this a “beginner” slot, you really aren’t limited on depth.  Just look at what the Ozar crew does with their Triage Tuesdays sessions.  The key is not biting off more than you can chew.

“Great, Mike, but what is too much” is probably what you’re saying to yourself right now.  Let me provide some examples of some topics I’ve either seen or done for 30 minutes to give you an idea of what has worked.  It should give you some ideas for your own presentations:

  • MSDB Backupset tips and tricks
  • Database roles, users, and logins
  • SQL Server Isolation Levels
  • Using SQL Server service accounts
  • What is parameter sniffing?

This is just a short list, for other examples just look around the web.  Also, ask your local speakers for advice and help.  Isn’t the strength of our community built on leaning on each other for guidance?  There’s no reason why we shouldn’t leverage others experience for the non-technical as well as the technical.  I’m sure you have your own ideas of what you’re comfortable and knowledgeable about, but an experienced presenter can help you refine and mold those ideas into a solid first topic.

Now you should be armed with the knowledge both of where and what you can present on.  If you can overcome these two hurdles, technical speaking can quickly become a snowball tumbling downhill.  I was nervous when I first started.  However, after I gave that first talk almost two years ago, I’ve not been able to stop.  You’ve heard all the benefits of technical presentations, the boost to both knowledge and confidence that they provide.  The more you speak, the easier it will become, and then someday in the future you can be the experienced presenter helping the next person who wants to speak out.

Speaking Out

Every January, many talk about what they want to accomplish in the New Year.  Goal, resolutions, attempts to improve both personally and professionally.  Within the community, a lot of my friends have set goals for public speaking, aiming to talk at user group meetings, presenting to their peers at their jobs, or larger aspirations.

Time and again, we hear the refrain about how presenting can boost your career.  I know I’ve spoken about it myself on a number of occasions.  The problem for most is their first presentation and how daunting it can be.  Sometimes someone’s not sure where they could first chance to speak.  Other times it’s a question of finding the “right” topic to speak on.  Not surprisingly, I’ve had a number of conversations in the past months with community members who are grappling with these issues.  The desire is there, but they need a little guidance in order to start down the path.

Finding the audience

I think the issue of finding a venue is the easier problem to handle.  Over the past two years I’ve become more involved with the Professional Association for SQL Server and I’ve gotten to know many of the local and regional organizers.  Recently, I’m became one of those people as well, joining the board of the Denver SQL Server group this past January.  Over this time, I’ve learned that your local user groups are always looking for speakers and typically have several different ways to help new speakers get started.

For example, we have three established groups here in Colorado, with fourth one getting started.  The three established groups all provide the same general format for speaking slots:

  • A 30 minute “lead off” slot, where the meeting will usually have someone speaking on an introductory topic
  • A 60 minute “main event” slot, typically featuring a local or national name on a more in-depth topic.

When I started my own presentation path, I got my feet wet with the 30 minute intro slot.  60 minutes is a bit much to take in for a first presentation, both for assembling material and also for the intimidation of talking for a full hour.  Also, when it’s the first of two presentations in the evening, it takes some of the pressure off because there will be someone else speaking after you.

I also know that many local groups are looking at other options with their formats in order to promote new speakers.  With the success of lightening talks at the Summit, many user groups have been talking about implementing that format within their own meetings as a way to give new speakers an even easier way to get started.  For those unfamiliar with the format, several short presentations (8-10 minutes each) are lined up next to each other.  Topics are fairly limited, as there’s only so much material you can cover.  In Denver, we’re planning on using this format to open our March meeting and having only new speakers

Speaking….in the Cloud?

Unfortunately, local user groups only meet once a month and aren’t always convenient for everyone.  The good news is there are other speaking opportunities outside of these meetings for new presenters to make use of, found in the PASS Virtual Chapters.  There are many of these groups built around various areas of interest within SQL Server and they’re always looking for speakers.  The great thing about these meetings is that they’re held online, so that many of the scheduling and possible travelling difficulties are avoided.

I personally had the opportunity to present to two virtual chapters last year and they were great experiences.  It took a little while to get used to the limited audience interaction, but it also meant that I was a little more control of the flow of things.  For new presenters who may be intimidated by the audience, this is a great in between step.  Also, you’ll have a meeting moderator who can assist you getting things going, which helps expand the comfort zone because you basically have someone backing you up.

We always talk about the Cloud and how it will change our careers.  This is yet another way that it’s impacting us.  Through virtual chapters, we have even more opportunities to present and reach a larger audience.  Certainly, we hear every day how many of the top consultants are reaching out to the community through free training and it’s easy to observe the success they’re having.  There’s no reason new speakers can’t have the same success with these very same tools.

Yeah, I’m Region Wide

If you’re involved the community, it’s hard at this point to have not heard about SQL Saturday.  I love these events and I’ve been very pleased to see the explosion in the number of SQL Saturdays over the past year.  One of the reasons these events were started was to grow the SQL Server speaker base and, by necessity of the sheer number of these mini-conferences, they are continually in need of new speakers.

While it may be a little intimidating to start speaking at one of these events, the benefits are amazing.  Even if you have had a chance to speak once or twice already, it can’t be understated how important it is to speak at one of these, even if you have to drive a couple hours or plan a quick weekend getaway.  It’s not just about the opportunity to speak, but also to network.  While attendees get a chance to meet local SQL Server professionals, speakers have a chance to talk with regional and national speakers that are also in town for the event.  For example, if you were speaking at SQL Saturday Albuquerque, you’d have a chance to chat with Aaron Bertrand, Steve Jones, and Denny Cherry.

Keeping it in house

Lastly, the easiest place to present could be no further than your workplace.  Presenting within your company has several advantages, the biggest being that you are probably already familiar with your audience.  Also, you can probably have an easier time scheduling your presentation, which becomes more convenient for you.  Overall, presenting to your co-workers provides you a more comfortable experience, which might be an easier first step if you’re not sure about getting up in front of a bunch of strangers.

The Longest Talk

Whether you speak at a user group meeting, online, or to your team at work, you have plenty of options for a venue.  “I don’t know where I could speak” is not an excuse that’s available to any SQL professional.  I used this excuse for a while, but then when I spoke with my local speaker wrangler for the Denver SQL User Group, it committed me.  Suddenly, I had a time and a place where I had to speak and I couldn’t back out.  Well, I could, but what would that say?  We’re in the tech world because we love challenges, we take on new problems, and we push ourselves outside of our comfort zones.  This is just another challenge, so grasp it and help your career go further.

Next week, come back and I’ll provide some additional information on the second hurdle:  How to choose a topic.

Finding Orphan Logins

Cleaning up old security info is always something that’s hard to stay on top of.  Employees who leave or change responsibilities can make it difficult to track which logins need to remain in our instances.  The best way to manage this is by using Active Directory groups and managing access from the group level instead of by explicit login.  However, because of the communication and organization that’s required to set up these groups in the first place, it’s not uncommon to find ourselves managing explicit logins in our severs.

The unfortunate side effect is this typically results in orphaned logins within our SQL Servers.  A question on how to manage this came up recently on and, while I couldn’t find a way to answer the specific question (because it was focused around finding orphaned logins in SQL 2000), I was able to come up with a handy utility script for 2005+ that makes use of xp_logininfo.  It’s not a complex script and provides a list of the actual drop login statements you can execute as part of your cleanup.

declare @user sysname
declare @domain varchar(100)

--store total output
declare @return table
(login_name sysname
,sql_statement varchar(max)
,error_msg varchar(100))

--Store output of xp_logininfo
declare @junk table
(a_name sysname NULL
,a_type char(8) NULL
,priv char(9) NULL
,m_login sysname NULL
,p_path sysname NULL)

--Declare domain you are checking
set @domain = 'FOO'

declare recscan cursor for
select name from sys.server_principals
where type = 'U' and name like @domain+'%'

open recscan
fetch next from recscan into @user

while @@fetch_status = 0
	begin try
		insert into @junk
		exec xp_logininfo @user
	end try
	begin catch
		--Error on sproc because login does not exist
		insert into @return
		values(@user,'drop login '+convert(varchar,@user),ERROR_MESSAGE())
	end catch

	fetch next from recscan into @user

close recscan
deallocate recscan

select * from @return

A couple notes on this script:

  • It currently doesn’t handle removing the logins from individual databases.  I have another script I use to do that and will be working on combining the two.
  • I don’t automatically execute the drop login because I’m paranoid.  :)  By providing a list, I can review the logins, along with the error message output, and verify that I want to remove them

Hopefully this little utility script can help you with login management in your environments.

Matters of Opinion

The common creed of I.T. and data professionals is “just make it work”.  Commonly we’re tasked with crazy problems, weird situations, and difficult challenges and we just get our heads down and get the work done.  It’s not often that we look up and plan beyond the current project or task.  We’re a cog in the machine, a smaller piece of a larger process, focused on getting the work done that we can control.

It’s a position we often struggle with.  How can someone come to you with a half-baked solution?  Something a user doesn’t fully understand even though they insist that “this must be the problem”?  I know I’ve been there, asking myself these questions while gnashing my teeth and shaking my fists at the sky.

Stepping up

The unfortunate truth is that these situations, like many other problems, are somewhat of our own making.  It’s a matter of trying to ride the proverbial tiger instead of trying to cage it.  The fact of the matter is that very few people, especially at a management level, understand database technologies the way we do.  If they do, it can make our lives a little easier, but typically we in the trenches will know more about the new features and limitations of our platforms.

How do we leverage this to our advantage?  By becoming thought leaders at our jobs.  Our management needs to plan to leverage new technologies and want answers about capabilities and options in order to find a way forward.  Do they go to the cloud? Should their databases be hosted on physical or virtual servers? How can we improve system response?  We can answer these questions, but can’t wait around for someone to ask us.

Resource of Record

How often do you talk to your managers about what you could do?  Information they’re looking for?  Opportunities for improvements that you can provide, either through current or new elements of your platform?  Our managers only know what they know, so we need to educate them by getting in front of them and sharing our knowledge with them.

So how?  If you’re one of the many professionals following the advice of Brent Ozar(@BrentO), you’re already well on your way.  Blogging?  Make sure your boss is reading your blog, so that he’s aware of what you know and are thinking.  Presentations?  Make sure your management is aware that you’re speaking on technical topics and what those topics are.  Building your personal brand is as important to your current job as your next.

You also need to have an opinion.  Sure, we live by a creed of “it depends”, but when someone asks as “how” or “why”, we should have a good answer for them.  Physical or virtual?  Cloud or on site?  Should this index be added?  As thought leaders, we need to provide more than just options, we need to provide answers and the knowledge to back those answers up.

Throughout my life, I’ve had this concept of “having the initiative”.  Basically, it means that I try to take control of situations, not letting them take control of me.   This is very much in that vein.  By advertising my knowledge to those around and above me and selling my expertise, I become the first stop for a question instead of a second or a third.  If you were the first stop, what would do that for you?

Looking Forward

Last time we met (ah, such a wonderful time), I did a once over of my accomplishments for 2012.  While I was pleased with the results, we must remember that career development is an ongoing process.  With 2012 in the review mirror, it’s time to put my 2013 goals to paper.


I’m not going to lie, I really enjoy presenting.  It’s addictive and makes me think the tests are right(ENTJ, by the way).  I pushed myself to the edge on this last year by speaking at 5 SQL Saturdays, 2 Virtual Chapter meetings, a handful of user group meetings, and Rally.  This was a good stretch, so no reason not to match it.  In 2013, I will aim to:

  • Speak at 4 SQL Saturdays (and I’ve already got 3 on the books, which will be number 4???)
  • Submit to speak at the PASS Summit.
  • 3 chapter presentations (a mix of virtual and “meat-space”).

Note, I’m just submitting to Summit.  I have no illusions about this one, many people tried for years before they were accepted.  I need to get my foot in the water and start beefing up my presentations to Summit quality.  No, I won’t be doing Bob Ward(@bobwardms) or Adam Machanic(@adammachanic) level stuff, I’m quite happy in the 100-300 range, but I feel there’s a real need for that sort of stuff in the community and I plan to bring my A game.


Ugh.  Blogging is what I struggle with.  Not that I don’t have things to write about or I dislike writing, it’s more that I dislike making time to write.  It feels like homework (and it is, after a fashion).  Blogging, however, is a GREAT way to get ideas out of your head and self-document your work.  To that point, I plan on:

  • Blogging once a week.  (ALWAYS commit to a regular schedule)
  • Continue to focus on automation and monitoring.
  • Blog about my server inventory and automated restore testing processes.


In general, I’m in the camp that certification doesn’t necessarily prove competency.  Many of the smartest people I know don’t have any certifications at all.  However, I agree with Glenn Berry(@glennalanberry) that self-acquired certifications (i.e., you didn’t go to a boot camp) show a willingness to go the extra step, much like community involvement.  Also, having them doesn’t hurt your resume, an overall net gain in almost any case.  My plan for 2013:

  • Get the Microsoft Certified Solutions Associate (MCSA) by June.
  • Get the Microsoft Certified Solutions Expert(MCSE): Data Platform by end of year.

Seeeeeeeeeeeekrit Project

Wow, how’s that for vague?  That’s intentional, as I don’t want to let the cat out of the bag, but I want to put this to paper to hold myself accountable.  Basically, I had a really cool idea at this year’s Summit and I really want to go for it.  Keep your eyes open for more on this throughout the year.

It’s Gonna Be HUGE

As you can see, I’m loading up on 2013 like a starving man at an all you can eat buffet.  It’s exciting and intimidating, but most of all, it’s achievable.  Nothing on this list is out of my reach.  Also, many of these things fold into one another, such as my presentations meshing with my blogging meshing with my seekrit project (ah HA!  Parallelization!).  I’m ready to take it all on, ‘cause it’s gonna be awesome!