How To Choose A Topic For Speaking

“The human brain starts working the moment you are born and never stops until you stand up to speak in public.” observed Academy Award winning movie producer George Jessel. I think there is some truth to that for many of us.

As a regular speaker at conferences, SQLSaturdays, and other organizations, I’m often asked about public speaking. Some ask about preparation. Others ask about getting started. The most common question is about selecting a topic. That’s one question I can’t answer; I can only share how I do it.

Sharing Your Experiences

Let’s start with the mindset. The way I approach selecting a topic is to first remind myself that I’m not claiming to be an expert in the topic. In fact, I don’t claim to be an expert in anything, really. I don’t pretend to know everything about a subject.

When I speak, my goal is simple – to share my experiences and hopefully help someone else who’s about to go through something similar. Whether it’s troubleshooting a poorly performing server or helping to coach a new technical manager, I want to give them the benefit of my trials and observations. This takes the pressure off of me.

Selecting Potential Topics

As I think about potential topics, I usually consider a few things. First, I look for topics that I’m already pretty familiar with but would like to learn even more. Most every session I give requires me to do research. Preparing to teach something is the best way to really learn it. So, if you’re going to have to do some research, it may as well be in something that interests you, something you’d like to learn more about.

I also look for topics that are underserved in the community. Or put another way, I seek topics that have broad appeal but haven’t been done over and over again by other speakers. These topics aren’t necessarily obvious at first, but if you persist you can usually identify a few.

Finally, I tend to favor entry-level to mid-level topics. Sure, there’s a lot of glory in providing the very high end sessions, but the vast majority of attendees will not be ready for that depth of content. There’s a great need for entry-level to mid-level sessions. This goes back to the prior point: if other speakers tend to gravitate toward the high-end sessions, the mid-level sessions may be underserved in the community.

Creating An Abstract

Once you’ve selected a topic, the next step is to write the abstract.

Creating an abstract is an art. You’ve got to give people a reason to come to your session (or the program committee a reason to select your session for the conference). Stating just the facts about the session in a dry way won’t do that. Make it catchy. Make it compelling.

The title is the first impression they’ll get so you’ll want to put some thought into crafting a good title for your session. Consider titles like:

  • From Zero to Replication in 30 Minutes
  • The Four Pillars of Performance Tuning
  • Manage Your Calendar Or Someone Else Will

The body of the abstract supports and clarifies the title. I usually start with a description of the problem and then talk about the information I’ll convey in the session to help solve the problem.

A Sample Abstract

Consider this real-world abstract that I’ve delivered many times at conferences and Lunch & Learns.

Say Goodbye to Boring Meetings
Ever been in a meeting that drones on and on? It starts late, runs long, and doesn’t really accomplish anything. It’s a complete waste of everyone’s time. Worse yet, since nothing was resolved you’ll have to have a follow up meeting. Argh!

In this session you’ll learn some of the keys to conducting an effective meeting. You’ll gain practical tips for making your meetings more productive and dramatically improving one of the most inefficient parts of your day. You’ll also learn how to help improve meetings your don’t run.

Submitting the Abstract

Once you’ve created the abstract, share it was a few people that you trust to provide candid feedback. Ask them for help with refining your draft to a polished and professional form. Then you can submit it to the local user group, SQLSaturday, Lunch & Learn, or conference.

For More Information

A couple of years ago, I shared my experiences with and techniques for creating presentations in an article I wrote for Simple-Talk.

So what are you waiting for? Get out there and start speaking.

Got any other tips that I’ve missed? I’d love to hear from you with your tips for selecting a topic.

2010: The Year In Review

“Quitting smoking is easy; I’ve done it dozens of times.” the great American writer Mark Twain once said.

Although I’ve never been a smoker, I can relate to Twain’s sentiment. Setting a goal for yourself can be easy. If taken lightly, goal setting can be little more than creating a wish list of things you’d like to achieve in the future. However, the value of setting goals really is in defining your priorities and outlining a way to achieve the goals. This helps you to systematically live life in a way that is consistent with your priorities.

It’s the follow through and dedication required to turn the wish into a reality that’s tough.

My Goals For 2010

Almost a year ago, I shared my goals for 2010 with the blogosphere as a part of a meme that was going around at the time. Now it’s time to reflect on how I did this year.

Without a time of reflection, setting goals becomes a spark in a flash pan, a short burst of thought and enthusiasm without any real long-term commitment. Periodically reflecting on your goals helps to ensure that 1) the goals are still applicable, and 2) that you are making strides toward achieving the goals.

My Professional Goals for 2010

In January I set the following goals (there is more detail in the original post):

  • Write a business plan for a new venture I’m considering.” This year I gave considerable thought to how this new business may take shape. I did some research and investigation. As a result, the concept morphed into something slightly different that my original idea. I think it’s better and more likely to succeed now as a result. I didn’t document a formal business plan so I fell a little short of this goal. Grade: B+
  • Post a minimum of 72 blogs to my professional blog site.” This is my 66th blog post of 2010 so I came pretty close to my goal of 72 postings. I may get a few more in but I’ll likely miss the 72 mark. I feel that I made progress toward becoming a better writer during th year. Grade: A-
  • “Schedule and have a Weekly Review at least 40 times this year.” This has been my Achilles Heal. Making the time and having the discipline to regularly review my outstanding items and determine what I’d like to tackle in the upcoming week has been tough. On the weeks where I’ve done it, it’s felt great! Unfortunately, I regularly let me “trusted system” get out of date so conducting the review becomes much more of a chore. I’ve got to do better in this respect. I have found software and some routines to help though. Grade: C

My Personal Goals for 2010:

  • “Double the amount of pasture that I have fenced.” I made some progress here by getting a new paddock fenced and added to the rotational grazing plan, but I didn’t double the space. There’s still work to do. Grade B-
  • “Read at least 5 books on preparedness, survival skills, or sustainability on the farm.” I love reading. I’m not a fast reader so it takes me some time to get through a book, but I do enjoy reading books. This year, I met my goal of reading 5 books in the categories mentioned. Those weren’t my only books; I read a lot of other business and faith-based books as well. Grade A
  • “Paint three rooms in our house.” I got one room painted and slightly redecorated this year. Grade C
  • “Resolve an ongoing plumbing issue.” Although I resolved several new plumbing issues in our 100+ year old house this year, the issue I truly had in mind when I created this goal is still outstanding. Grade D

No Excuses

I also accomplished some other noteworthy items in 2010 that were not on my radar at the start of the year. Foremost in this list would be an addition to our family. We now have five kids so as you can imagine, that alone keeps us quite busy.

I also became a BSA Certified LifeGuard during the summer. (Now I have a fall back plan just in case this whole database and business thing doesn’t work out for me. <grin>) And I helped orchestrate a successful SQLSaturday in Nashville by serving as the Chairperson for the event.

I’m typically my harshest critic when it comes to performance. There’s always something I could have done better. Overall, despite falling a bit short on some of my goals for 2010, it was a good year and I’m pleased with the accomplishments.

Your Turn

So how about you? How did you do with your goals this year? Blog your review and post a link to it in the comments below.

Kevin Kline (twitterblog) and Tim Ford (twitterblog), you guys both called me out for the meme last January so I’m specifically interested to hear how you faired with your goals.

When Were The Statistics In SQL Server Last Updated?

When SQL Server receives a new query, the Query Optimizer undertakes the task of identifying a good plan to resolve the query. It considers a number of different factors as it analyzes the query and maps out a way in which to retrieve the information requested. Dr. DeWitt did an amazing job of explaining this process in understandable terms at the 2010 PASS Community Summit.

Whether or not the query optimizer deems an index to be useful in resolving a query largely depends on the information contained in the statistics for that index.

If the statistics are outdated and do not accurately represent the distribution of values in the table, the query optimizer may not produce an optimal plan for resolving the query. Misleading statistics may result in the optimizer not using an index when it should, or using an index when it would be more efficient to scan the table. Statistics also influence the logical join order and physical types selected.

That’s why it is crucial that the statistics be updated regularly. How often? Well, that, of course, is going to depend on the data being stored, the frequency of updates, inserts, and deletes to the table, etc. It could be nightly; it could monthly. It just depends.

So, how can you tell when the statistics where last updated for an index?

The following query demonstrates this in SQL Server 2005/2008. It makes use of the sys.indexes and sys.tables catalog views, along with the STATS_DATE() function, to retrieve the date that each index was last updated for every user table in the current database.

SELECT AS Table_Name
   , AS Index_Name
   ,i.type_desc AS Index_Type
   ,STATS_DATE(i.object_id,i.index_id) AS Date_Updated
   sys.indexes i JOIN
   sys.tables t ON t.object_id = i.object_id
   i.type > 0
   ,i.type_desc ASC
   , ASC

In SQL Server 2000, a similar query can be run.

SELECT AS Table_Name
   , AS Index_Name
   ,STATS_DATE(,i.indid) AS Date_Updated
   sysobjects o JOIN
   sysindexes i ON =
   xtype = ‘U’ AND IS NOT NULL
   , ASC

These queries can be useful while troubleshooting and diagnosing performance-related issues. Sometimes, it’s as simple as outdated statistics.

Dynamic PowerShell

I learned something new while giving my PowerShell session at the PASS Community Summit a couple of weeks ago.

Big Idea

One astute attendee asked if it was possible to create dynamic PowerShell in a script. Or put another way, can you define a PowerShell statement in a variable and then tell PowerShell to execute the contents of that variable. I’d never tried that so I didn’t know the answer. I said as much and speculated that it was possible and that I’d check into it for him.

Fortunately, there are a lot of really smart and knowledgeable people at conferences; not all of them speak. That can sometimes be intimidating; it can also be very helpful. Another attendee came up to me after the session and showed me this little script.

Executing Dynamic PowerShell

In the script, the $cmd variable is assigned a literal value that is itself a PowerShell statement. You could substitute any valid PowerShell statements in place of Get-Process. The second line is where it gets interesting. Enclosing the variable in parenthesis and prefacing it with an ampersand tells PowerShell to evaluate the contents of the variable and execute those dynamically.

$cmd = ‘Get-Process';

When I ran this script, I received a list of processes running on my local computer.

With this simple example, you may ask “What’s the point? Why not execute Get-Process directly?” I can see instances where you may need to dynamically build statements that include aspects that are not known at design-time. For example, passing in a sort or filter criteria, a machine name, or even a SQL Server instance name.

I wish I’d gotten the name of the attendee that showed this to me; I’d give him credit for this. So to the unknown Posher, thank you.

The World’s Largest

Each year, the Georgia Bulldogs and the Florida Gators meet on the college grid iron in what’s called the world’s largest cocktail party. I’ve never been; in fact I’m probably not welcomed since I’m an alumni of a rival school, the Auburn Tigers. War Eagle!

You Can’t Handle The SQL!

Last week, I attended another “world’s largest” event: the PASS Community Summit. With over 3,000 attendees, it’s the largest SQL Server-only event in the world. There are over 150 break out sessions, it has several rooms for hands-on labs complete with Microsoft folks to help you with specific SQL issues, and there are plenty of exhibitors there to see.



It’s got more technical content that your mind can absorb without exploding. Don’t believe me? Just watch Dr. David DeWitt’s Thursday morning keynote address and then tell me how your brain feels. Mine rapidly turned to mush as neurons overheated while struggling to process everything he said.

We Are Family!

But I don’t really think of PASS in those terms. No, to me all of the education at PASS is just a side benefit; it’s the icing on the cake. I think of the Summit as the World’s Largest SQL Family Reunion.

Each fall at this community event, I have the opportunity, no the absolute pleasure, to spend time with friends from around the world. It’s a special week that I look forward to all year long.

Some of the traditions are deeply rooted and planned months in advanced. This year’s SQL Karaoke found over 80 people belting out the tunes in American Idol-like fashion.

SQLKilt is another tradition growing in popularity. Plus there are the breakfasts, the dinners, and the after parties.


But my favorites are the impromptu gatherings. Having coffee with a friend from Europe, sharing a lunch table with someone I’ve only met through Twitter, and bumping into good friends from other states in the hallways. That’s what gets my blood to pumping and brings a smile to my face.

The technical content is good, but it’s the relationships that matter most to me.

So, to everyone I saw in Seattle last week: Know that I cherish the time that we got to spend together. And if we didn’t get a chance to catch up, let’s not let that happening again next year.

This community rocks.

See you all again next year.

The PowerShell CookBook

“A script club.” That’s what a friend of mine said when he was telling me how he’d learned the basics of PowerShell. I did a double take. “You had a user group meeting at a strip club?!?!” He laughed and clarified, this time enunciating more clearly.

cutting board image

Last week at the PASS Community Summit in Seattle, I delivered a session called The PowerShell CookBook. In it, I demonstrated some scripts that I use when auditing SQL Server instances. I showed how to programmatically collect a list of SQL Server instances and then iterate through each instance to gather information about its configuration parameters, databases, and jobs.

As promised in the session, I’ve made the scripts available for you to use and tweak to suit your own needs.

If you were in the session, thanks for coming! I hope you found it worthwhile! After the session, someone asked if I’d be willing to deliver the session remotely to their user group. The answer is yes; just contact me using twitter, email, or a comment to this blog and we’ll work out a time.

See you next time!

Join Me This Week At PASS

This week at the PASS Community Summit in Seattle, I’m delivering two full length sessions, one lightening session, and chairing a committee meeting to discuss the election process. If you’re attending the conference, I hope you’ll join me at one of these sessions.

Using Covering Indexes (Wed 1:30pm)

Covering indexes can dramatically reduce disk i/o and improve performance. In this 5-minute Lightening Session, I’ll show you how you can make better use of your nonclustered indexes and reduce Key Lookups.

Conducting Effective Meetings (Wed 3:00pm )

Ever been in a meeting that drones on and on? It starts late, runs long, and doesn’t really accomplish anything. It’s a complete waste of everyone’s time. Worse yet, since nothing was resolved you’ll have to have a follow up meeting. Argh! In this session you’ll learn some of the keys to conducting an effective meeting. You’ll gain practical tips for making your meetings more productive and dramatically improving one of the most inefficient parts of your day.

PASS Election Review Committee Community Meeting (Wed 4:30pm)

The PASS Election Review Committee will host a community feedback session to discuss the PASS election procedures. We’d like your input as we strive to improve the selection of the future leaders of PASS.

The PowerShell CookBook for the DBA (Thurs 1:00pm)

The best DBAs work hard so that they don’t have to, well, work hard. In this session, we’ll discuss how you can use the PowerShell cmdlets and snap-ins to create scripts that automate the more mundane tasks in your role as a DBA or developer. We’ll create scripts that check the status of SQLAgent jobs, verify the configuration of your servers, and retrieve information from your SQL Server database. You can even store your results in a database table if you’d like. This session is mostly demos with only a few PowerPoint slides to get us started.

If you’re in Seattle, be sure to stop by and say hi at any of these sessions or in the hallways. I’m always up for good cup of coffee.

The Future Of PASS Elections

Am I stirring up a hornets nest or beating a dead horse bringing up a the PASS elections the day before over 2,500 SQL Server professional converge on Seattle for the 2010 PASS Community Summit? I’m not sure, but I suspect I’ll find out within 24 hours.

So, why would I revisit a topic that was so prevalent and divisive in the SQL community just a few short months ago?  Well, I’ll tell you.

In my posting entitled “A Community Divided“, I made the following observation.

At fault here are the procedures that governed the election process. I have every confidence that those procedures were far better than in prior years. Yet in this case, as extreme as it may be, they fell woefully short. I think that the one thing on which we can agree is that we don’t want to find ourselves in this predicament twelve or twenty-four months from now. We want to learn from this, take corrective action, and move forward.

I still believe that to be the case.

And so does the PASS Board of Directors.

We Can Do Better

A couple of weeks ago, the PASS Board reached out to me. They were interested in creating a committee of people from the SQL community to review the procedures and policies that govern the elections. They asked if I’d be willing to lead such a committee.

I was a bit skeptical at first. I do not want to be a part of any committee whose job is to sanction the elections of 2010. Nor do I have time to serve on a committee that is simply designed to go through the motions because the end is already defined.

I had several good conversations with the PASS Board and I believe my initial skepticism was misplaced. I left with the sense that the PASS Board is genuinely interested in improving the current election process. They assured me that the purpose of the committee is to review the current process and make recommendations for going forward. There is nothing off limits; everything is on the table.

The Election Review Committee (ERC)

I agreed to help with this committee. Over the past couple of weeks, we’ve put together a good team of SQL professionals to serve on the committee. Many of the names you’ll recognize. Some you may not. But all are willing to devote some time to help make difference.

This is a diverse group. Each brings a different perspective and background to the committee. I’m excited about working with each of these individuals. I respect their passion and their ability to tackle and resolve tough problems. You’ll notice that 5 of the 7 are members of the community; only two are actively sitting on the PASS Board.

Providing Feedback

Most of ERC will be in Seattle this week for the PASS Community Summit. Please feel free to stop any of us and share your thoughts about how the PASS elections can be made better; we want to hear your voice as we form our recommendations to the PASS Board.

I’m working with PASS to provide some additional channels for feedback both during the conference and afterwards. Look for more details as they are available; I’ll post them here and they’ll be announced as part of the PASS keynotes and daily updates.

Vote For The SQLRally Pre-Con Seminars

Do you know a real-life Pointy Haired Boss? Maybe you don’t work for him, but I bet you’ve met one.

In my consulting practice I’ve met a lot of them. They were once good technical people. So good in fact, they got promoted; it’s the natural progression in business. But they didn’t make the transition well. They knew how to do techie but they didn’t realize that moving from techie to a technical manager would require some new skills. When faced with pressure and stress they withdraw and do what they do best, the technical stuff, and ignore the real source of their stress, the managerial stuff. And they fall flat on their faces.

Voting Booths

Surely Smart People Can Be Good Managers

They can, and don’t call me Shirley (rimshot).

This is the premise of a series of blog posts called “So I Got Promoted, Now What?” that I’ve been writing recently. In the series, I’m discussing how technical people can leverage and build upon the skills that they already have to succeed in their new role as a technical manager.

I’m also adding to that and turning the concept into a one-day seminar that I can deliver to clients and in other venues like SQLRally May 11-13, 2011, in Orlando, Florida.

Vote For The SQLRally Pre-Con You’d Like To See

My Pre-Conference Seminar submission for SQLRally was selected as one of the three finalists for the Miscellaneous (aka the Professional Development) category. Now it’s up to the community to vote for the session you’d like to see.

Voting doesn’t mean you’re registering to attend. It doesn’t even mean that if you do attend SQLRally, that you’re obligated to the Pre-Con. It simply means that you think that the session you voted for would be of interest and is needed in the community.

There are three really good sessions from which to choose (listed in the same order as on the ballot).

  • Finding Your Dream Job by Chris Shaw and Steve Jones (1/2 day).The job market is becoming more and more competitive all the time as employees become more and more efficient at accomplishing more work and employers look to reduce their headcounts. This session will present the attendee with practical tips, tricks, and skills for enhancing their marketability. They will learn how to better use networking to their advantage, both online and offline, develop a technical blog, and build a better resume. Once someone has an interview, we provide them with techniques to prepare for the interview, and how to not only impress the potential employer, but also assess if this is the job they really desire.
  • So I Got Promoted, Now What? by Joe Webb (full day). “In a hierarchy every employee tends to rise to his level of incompetence.” That’s the premise of Dr. Laurence Peter in his 1969 book, “The Peter Principle: Why Things Always Go Wrong.” We’ve all seen instances where someone who is very good with technology is promoted and flounders. Horribly. And the worse they do, the more stress they feel. And they flounder even more. So what happens? They don’t make changes in their daily work required by the new position. In this session, you’ll learn how to do your job better once you’ve been promoted. You’ll become aware of the new dynamics required by your new role so you adjust and excel. You’ll learn how you can leverage the same successful tactics that made you a great technologist in your role as a director, manager, or team lead.
  • Leadership and Team Management Skills for the Database Professional by Kevin Kline (full day). Most IT leaders earned their promotions based on technical competency, not on leadership or managerial skills. Technical leaders rarely advance into leadership positions with the complex mix of social and soft skills that best facilitate their success and the success of their teams. Successful IT leaders require a combination of: Earning the respect of your team, A deep understand of effectively motivating technology professionals, Specific skills to lead database professionals competently that broadly fall into the categories of: Coaching team members to effectively meet goals and deadlines, Facilitating change and navigating organizational disruptions, Promoting communication within the team and with management Keeping teams and projects on task and within scope, Dealing with difficult team members, Practicing good team time management techniques. This one-day seminar equips attendees with training content, fun exercises, and reference material to further develop their leadership potential and achieve excellent results, both for themselves and for their teams.

Of course, I’d like for you to vote for my session, but frankly speaking I don’t think you’ll go wrong with any of them. I know the other speakers. They know their material and do a bang up job presenting.

What I do ask is that you make your voice heard and vote for the session you’d go to if you were to go to a session.

Where Is The SQL Server ErrorLog File?

I seldom lose things; I just cannot find them as quickly as I’d like. This is true for keys, tools, and yes even ErrorLog files on SQL Server.

On the servers that I configure, I have a standard way of doing things. I set them up using some industry best practices and some standards that I’ve developed over the years. On those servers, I can find the ErrorLog file quickly since it is in a predictable place for me.

Using T-SQL To Find The ErrorLog File

In my consulting practice, I regularly work with SQL Servers that I did not configure. For those servers, I must discover where things are. One technique that I use is to ask SQL Server itself where things are. For example, the following T-SQL query will return the location of the ErrorLog file.


It will return something like the following:

E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG

This technique is particularly useful when I’m examining the ErrorLog in a PowerShell script. I blogged about that The Power Of RegEx in PowerShell.


Get every new post delivered to your Inbox.

Join 33 other followers