Join Me at SQLSaturday #288 in Beautiful Ft. Lauderdale, FL
SQLSaturday is a training event for SQL Server professionals and those wanting to learn about SQL Server. This event will be held Jun 14 2014 at 3301 College Avenue, Davie, FL 33314. Admittance to this event is free, all costs are covered by donations and sponsorships. Please register soon as seating is limited, and let friends and colleagues know about the event.
Where Is It?
This event will be held on Jun 14, 2014 at Nova Southeastern University 3301 College Ave, Davie, FL 33314. You need to go to the Carl DeSantis building. Please note that the entrance to the building is located about 400 yards to the east of University Drive, on College Avenue. Click here for more information and see the map: Location
At What Time Does It Start?
The event will start at 8:30am sharp with a Keynote and WIT panel (auditorium), doors open at 7:30am. Please come early to get a free breakfast and your bag. A limited number of bags will be available.
Get In On My Pre-Con While There are Still Seats!
Title: 50 Things All SQL Server Developers Need to Know
The early bird discount of $99 closed on May 15th. The class fee is now $125 for all registrations made thereafter, so be sure to reserve your spot. Class size is limited and registration will be based on a first come first served basis. Read the registration page for more details about the class. But here's a quick overview:
In this session, you’ll learn:
1. Internal operations of the SQL Server query optimizer and caching mechanisms and their impact on T-SQL code performance, including ways to shortcut default behavior using trace flags.
2. Tricks, techniques, and metadata analysis needed to make T-SQL code, including queries and stored procedures, achieve top performance and maximum reliability.
3. A variety of patterns and anti-patterns in T-SQL coding that are common challenges for all but the most advanced database developers.
With these 50 tricks and techniques in your coding toolkit, you’ll be able to write T-SQL code that consumes less system CPU, memory, and IO, while being easier to maintain and offering faster performance.
I hope to see you there!
-Follow me on Twitter!
I was recently chatting with the current President of PASS, Thomas LaRock (Twitter | Blog), and Pieter Vanhove (Twitter | Blog), a prominent SQL Server consultant and expert in Belgium, about how I go about building and presenting a full-day technical seminar. In the SQL Server world, we tend to call these "pre-cons", as in pre-conference seminar, because they're typically offered as paid add-ons occurring prior to a full technical conference. We call them that even when they come at the end of the conference and, heck, when there's no conference at all.
Kevin and Kendal Van Dyke preparing to kick off a session at the PASS Summit 2013
Personally, I have developed and delivered six different pre-cons over the years. Four are purely technical and two are professional development oriented. I keep them up to date and deliver around six per year these days, though I've done as many as ten in a single year. (But that was because I had a daughter's wedding to pay for. Shameless plug - HIRE ME to deliver one of these in house.)
The Foundation of a Good Pre-Con Seminar is a Good Topic
There are a ton of perennially favorite topics which, once you write the session, you’ll be able to present over and over again. One interesting technique to choose a good topic, if you're not sure what you want to present, is to use Google Insight to see what are the most popular variations of a topic you feel strongly about. Here are some additional thoughts on choosing a topic:
1. The most popular topics are always focused on ‘help me do my current work better/faster/stronger’. Broad, but fundamental topics tend to draw bigger audiences than niche topics. However, some events have a large enough attendance that even niche topics will pack a room. And always remember that your event organizer's goal is to pack the room, no matter how much they like you.
a. The biggest winners in my market are server troubleshooting & performance tuning (for DBAs) and various topics on better SQL coding (for devs). That’s why a session on performance tuning or coding best practices will bring in more attendees than, say, a session on features in the newest release or professional development. That’s sad for me, since I love leadership and career training and have a really good full day pre-con on the topic, but they never bring in more than 1/3 of what the biggest tech session brings in. And don't forget - people love to hear about mistakes to avoid just as much as how to do things better. So "gotcha" topics can bring in just as many attendees as a best practices session.
b. Sessions that drill into a hot and hyped new technology tend to do really well too. So something like ‘Implementing Big Data with SQL Server’ can bring in a big crowd. But technologies that are too broad and ill-defined have the opposite effect on attendance. For example, many people still don't "get" Azure or cloud computing in general. So, while it's definitely a worthwhile topic, don't be disappointed if you don't put a butt in every seat.
c. Some pre-cons are feature-oriented, like Replication or Disaster Recovery. Many of these features are very cool, but are only available in SQL Server Enterprise Edition. For example, some of the Always On Availability Group features are EE only. Less people have Enterprise Edition than Standard Edition, so less people will come to an Enterprise Edition-oriented session. The features you plan to discuss will directly correlate to your attendance numbers. I'm telling you to avoid these topics, rather just expect it to have an impact in the size of your audience.
2. You will absolutely spend way too much time researching and developing your slide deck. So it’s also always good to choose a topic you want to learn more about. This’ll not only improve the attendees skills, but yours as well. Want to learn more about Hekaton? Then include it in your pre-con. Want to learn more about SQL Server query tuning? Write and deliver a session on it. You'll learn it better than you ever would, independently, because you know you'll get tough questions and you want to be prepared for those.
You Can Attract and 'Manage' Your Audience Through Your Abstract
This is the second most important step. You can’t control what your audience is like once they get into the room. But you can strongly influence who decides to come into the room in the first place with your session title and abstract.
Personally, I believe your title should immediately inform the reader of the topic and who is intended to reach, such as "Cutting Edge Debugging Techniques for the .NET Developer" or "Top 10 Mistakes New Tech Managers Make". The title is alone constitutes 60-75% (by my careful, non-scientific assessment) of what will drive an attendee to your session. In fact, many attendees never even read the session abstract, unless there are two sessions at the same time that seem equally worth attending. In that case, the abstract is often the tie-breaker.
Be sure that your abstract explains not only what the session is about, but what the topic is and why people should care about it. I can't tell you how many times I've seen a session abstract that names a specific, niche feature in the title but doesn't tell what that feature is in the abstract. I once saw a session whose title was, and I paraphrase, "Introduction to the Flux Capacitor". The abstract said I'd learn three cool was to use the flux capacitor and would see live demos of the flux capacitor in action. But it didn't say what tool the flux capacitor was used in (.NET? BI? Java? SQL Server? SharePoint?), who would use it, what it did, or why it matter. And I always like to include at least three high-level topics the attendee will leave having learned.
Having said all of that, I feel like there's no better write-up of how to write a top quality session abstracts that in the blog post by Adam Machanic (b | t) entitled "Capturing Attention: Writing Great Session Descriptions". This is such a good overview of doing abstract writing the right way that I wish technical conferences would make this required reading for their speaker submissions. (Are you listening SQL Saturday?)
Planning and Building Your Presentation
A lot of accomplished speakers who've done one-hour sessions become both excited and terrified about doing a full 7- to 8-hour session. And one of the first fears that people share with me is that they won't have enough to say or that they'll be able to fill the time. Believe me - this will not be your problem. In fact, if you properly research your presentation and read what other writers and bloggers have to say, you will have difficulty fitting everything you want to talk about within your allotted time.
Here are some planning tips I use for planning and building my sessions:
1. I estimate that I’ll speak 3 minutes per slide. Then I do the math for how many slides I can fit into the amount time I have in the given session slot. For example, a 75 minute session should not have more than 20’ish slides, taking into account some time for the introductory and closing slides, questions, and demos.
2. Attendees are idiots AND geniuses simultaneously. One surprising thing I’ve learned after averaging about 6 pre-cons per year for the last few years is that no one reads the session-level advice (i.e. whether it’s a 200, 300, or 400 level session). They always read the titles, and possibly skim the abstract, and then make their decision based on that.
a. Here’s an important part tip for your presentation: you will definitely have plenty, maybe even a surprising number, of attendees who don’t know the basics of your topic. For example, in a recent pre-con called "50 Things Every SQL Developer Should Know" that my buddy, Aaron Bertrand (b | t) and I presented at SQL Intersection, I now include a whole section discussing how the plan cache works and how to read execution plans. I clearly told attendees that they needed to know those things as prerequisites, but I’d say about 40-50% of the attendees in fact did not know the fundamentals.
b. At the same time: You will have attendees who are quite advanced. I try to identify those kinds of attendees early on (often by explicitly asking who has a lot of experience), then I try to include them as allies in the presentation. I ask their feedback a lot and give them a lot of eye contact. If there’s a question that seems tough, I might turn towards them and say “Have you ever seen that in your shop? How did you deal with it?” Usually, if they’re experienced and knowledgeable, then they love to share. It’s often as enjoyable for them to be recognized as smart as it would be to learn some big, new skill or technique. That helps keeps both ends of the talent spectrum equally happy.
3. Demos are the most stressful part of even one-hour sessions. It’s an order of magnitude worse in a day-long session. In my case, I strive for a high degree of deliberately assessed order and standardization:
a. Never install new software or change your configuration within 48 hours of your presentation. If some enterprise policy forces a change, assume the worst and retest all of your demos.
b. Include in the PPT notes panel the exact path and filename for a demo file that a particular slide relates to. It's not as important if you recently wrote the slide deck. But it becomes very important if you wrote the session a while ago and no longer know all of the facts cold about your demos. For that matter, I’m now putting a number prefix on all of my SQL scripts so I can see which to load into SSMS in what order. Also, SSMS orders open tabs automatically. So numbering them works much better than giving only an alphabetic name.
c. If you’re running short on time, explain the concepts and tell where attendees can find the demo scripts, but skip the demos themselves.
d. One thing I’ve started to do, especially for really complex or annoying demos (e.g. a demo involving multiple servers such as a big Availability Group), is to either screenshot the whole demo process or make a video of the demo using Camtasia. Then I show the slides or the video instead of the real work environment. That way I can illustrate the principles involved without ever risking something going wrong. Attendees don’t seem to mind at all.
e. This is so axiomatic that I shouldn't have to mention it, but just in case, create your demos in such a way that they require very little new typing. If you have to do more than change a parameter or two, then you need to work on your demos a bit more.
4. For goodness' sake, get to the room as early as is practical and get comfortable with the learning environment. Expect problems with setup. Many laptops have issues with certain types of projects and require a lot of tinkering to get working properly. And carry spare equipment for crazy and unexpected issues. Batteries for your wireless mouse is practical, of course, but other mind-boggling things can happen. For example, I've spoken at many facilities which did not have an electrical outlet anywhere near the podium. My lesson learned? I always carry a 3m extension chord.
Making the Session Memorable
There are several small tips and tricks you can use to make sure your session is memorable and well-regarded. (And when you have well-regarded sessions, you get invited to do more session. It's a positive feedback loop, engineers!) Here are some of my favorite techniques:
1. Work with a co-presenter. Personally, I love working with co-presenters. This might not be your cup of tea, since you have to split revenue, and I can respect that. But hear me out. On the one hand, the shared workload for both writing and presenting the pre-con is much easier. And don't forget that most of us aren't used to standing or speaking for 8-hrs straight. So being able to tag-team with another presenter off and on through the day can be like mana from heaven at times when you're flagging. On the other hand, audiences find dialogue much more entertaining than monologue. Have you ever noticed that the morning radio show on your drive to work is no longer a single, lonely DJ? There is almost always at least two and sometimes as many as a half-dozen people on the "!!WKRP Morning Team!! Caffeinate your day!!" show, and sometimes even skits and almost-comedy bits. People just enjoy that format more and it translates into measurably ratings for the radio stations. It will for you too.
2. Quiz the attendees as you go along. You want people to remember your session and, even better, recommend it to others. One trick that I learned when I was trying to master recall of names is to repeat a person's name back a time or two before the introduction concludes. You can use this tip, as a presenter, to help your attendees remember aspects of your session. After you've advanced the slide, find a reason to ask a question relevant to an earlier slide. In some cases, I've started to substitute old fashioned slide notes pages (i.e. a list of standard bullet points) for a quiz sheet, which is essential the same list of bullet points with a single key word as a fill-in-the-blank. The attendees will really get into making sure those blanks are filled it. If you miss one, they'll make you go back and tell them what goes in the blank. (Hooray! They were paying attention!) Make it fun. Tease them jokingly if they forgot something you just talked about. But keep the attendees engaged and mindful of the major lessons.
3. Provide useful takeaways. Attendees love to be able to reference a list of takeaways. Just think about all the great sessions you have ever been to before. They usually have some level of detail for you to consume easily and walk away with or reference later. They have clean demo scripts with lots of comments that would stand on their own without slides or someone speaking. They offer the attendee the ability to be immersed in the "here and now" and the ability to come back for a summary to jog their memory. In my case, I actually have a password protected area of my website where attendees can download the slide decks and demo scripts to all of my pre-cons. My theory being that the attendee has paid for this training, so I want to provide an incentive for them to view me as one of the Go-To references going forward, to encourage them to attend other pre-cons of mine, and to nudge them to promote me to others.
Well, that’s my BULK INSERT for pulling off a successful and repeatable pre-con. Have you done a full day training session yourself? What sort of techniques have you learned to make your session more effective and memorable? Share your thoughts and questions here.
-Follow me on Twitter!
I don’t know if you’re planning to attend the PASS Business Analytics Conference. But you'll be missing a ton of great content especially for data, analytics, and business intelligence professionals. There's still plenty of time to register and, if you use my discount code – BABS2B – you'll get $150 off the conference registration fee. There will be more than 60 sessions at the event by BA/BI experts from Intuit, Microsoft, SurveyMonkey, Wells Fargo, and more.
Last year’s inaugural event was quite the shindig, bringing in around 900 business analysts, data scientists, architects, and BI and IT professionals to connect, share, and learn how to get the most out of their data. This year’s conference promises even more real-world insights and best practices, how-to guidance, and strategic vision from some of the most knowledgeable and top-rated speakers in the industry.
Still don't know what kind of content I'm talking about. Then check out the recorded content, which is more or less a preview of the full PASS BAC from the February 5th webinar phenom known as the 24 Hours of PASS: Business Analytics Edition.
BEWARE: Not All Sessions Are Easy To Find
Those 60+ session abstracts of the PASS BAC I mentioned earlier are all on-line. That way you can easily plan in advance which sessions will be most useful to you. However, not all sessions are listed there. How so? Well, it turns out the sessions sponsored by vendors don't show up on the regular session lists. You have to jump to the PASS BAC Sponsors page and drill down on the upper-right side of the page from there to get the details.
I want to draw special attention to our Friday morning breakfast panel session, which is always very popular with attendees. (Srsly - I have plenty of people tell me that our panel discussions are one of, if not the most favorite and practical of the event). Here's what we're doing this year:
Title: Lessons Learned in Self-Service BI; Friday, May 9, 6:45am - 7:45am, Room 230A
Abstract: For years, when it comes to self-service BI the automatic assumption was the Microsoft Excel was the tool of first and last resort. Now, after many years of enriching the features of the data stack, Microsoft offers many different ways and tools to perform business analytics. Some approaches require heavy involvement from DBAs, SharePoint administrators, and other data and business specialists. Other approaches enable end-users to process their own analytics much more quickly and with less interaction from the IT organization. Which is most effective? Which is the easiest to rollout and maintain? There are pros and cons to each possible approach, as well as hidden and repeating patterns, that are hard to foresee unless you’ve actually been through multiple implementations.
Panel: SQL Sentry’s panel of renowned data analytics and business intelligence experts will discuss a variety of real-world obstacles and accelerators to a strong self-service implementation of business intelligence and analytics that is both useful, effective, maintainable, and inexpensive. This year's panel includes: Chris Webb (b | t ), Jen Stirrup (b | t ), Paul Turley (b), and Stacia Misner ( b |t ).
Come Join Us!
You can see the registration page at https://sqlsentrypassbaconference.eventbrite.com or by clicking on the image below. Two quick reminders. One, I know it's ridiculously early. But the content is always great and you get a high-quality hot breakfast. Two, I strongly encourage you to register since seating is limited and it always fills up.
Have any questions of your own, then feel free to plug them in here. I've got plenty of questions queued up already. But I'm always open to more. I hope to see you there!
-Follow me on Twitter!
The first big mistake I made as a DBA was coming to work with my zipper wide open. But I digress.
Hear one of my most popular session via streaming media at SQLSentry.TV!
Microsoft SQL Server is easier to administrate than any other relational database on the market. But “easier than everyone else” doesn’t mean it’s easy. And it doesn’t mean that database administration on SQL Server is problem free. And since SQL Server is constantly growing from small, home-grown applications, many IT professionals end up encountering issues that others had tackled and solved years ago. Why not learn from those who first blazed the trails of database administration, so that we don’t make the same mistakes over and over again. In fact, wouldn’t you like to learn about those mistakes before they ever happen?
This session will answer questions like:
- What’s the most common hardware-related mistake that DBAs make and why?
- How does Microsoft's own marketing buzz lull DBAs into complacency?
- Why do inexperienced database administrators make their own job more difficult and less efficient?
There is a short list of mistakes that, if you know of them in advance, will make your life much easier. These mistakes are the “low hanging fruit” of database administration. Once you apply the lessons learned from this session, you’ll find yourself performing at a higher level of efficiency and effectiveness than before.
Prizes for Sharing!
Share your stories with me in the comments of the Top 10 DBA Mistakes on SQL Server video webpage and I'll enter you in a drawing! I want to hear your stories of tragic DBA mistakes and blunders. Extra points for funny, absurd, or just plain incomprehensible mistakes. Extra points for mistakes that epitomize a pattern or a frequently encountered sort of mistake. After all, we're not just trying to get a chuckle from other people's problems, we're trying to learn from them so we don't repeat those mistakes.
The winner(s) will receive either a signed copy of SQL in a Nutshell (my most popular book), Microsoft SQL Server 2012 Management and Administration (my newest title, as co-author with Ross Mistry), or a license for SQL Sentry's uber-popular query tuning tool, Plan Explorer PRO (a $295 value).
-Follow me on Twitter!
Originally appearing at KevinEKline.com at http://wp.me/p3rOiF-1ww.
It was a dark and stormy night as the secret conclave assembled upon the wind-blasted prairie lands of anonymous South Dakota. It could have been anywhere in North America, so non-descript and featureless was the place. Lightning flecked the darkened sky as they came, in ones and twos, wearing their long, charcoal colored robes, cowls covering their faces. Each one bearing in their left hand, the hand-calligraphed vellum scroll describing the exact details and protocols of the secret gathering.
Reaching the place, they stood, silently and watchfully, all eyes upon the sole figure to wear any ornamentation, standing atop and in the center of a large metallic platform raise about a foot above the prairie grass. It was a long-abandoned ICBM launch tube. At the pre-appointed time, this tall and solitary figure, different from the others only because of his bright crimson sash, thrust a clenched fist skyward exposing a lithe, hirsute arm. Lightning burst across the sky. Some of the figures twitched and glanced about nervously, but all maintained their silence.
Setting his scroll before him, the figure then brought his hands to his cowl, throwing it back. And in another quick gesture, dropped the robe to the ground. Finally, he held his two hands together before his chest, locking them, and then slowly rotating for all the attendees to see that they were to join hands. They mimicked him in unison, dropping their robes and locking hands in a giant ring, one-hundred and one persons in total, ringing the platform. The assembled figures now looked much more common, in their street clothes and, now that they were able to see one another, were clearly relieved by sighting a variety of familiar faces, somewhat like this:
"You, the SQL Server Illuminati, are now assembled and convened! We are gathered together by our mutual lover for SQL Server and overall distrust of Oracle, MS Access, and Mimes!"
"Never trust a mime," they said in unison.
"I will now bestow your SECRET Illuminati names," said the speaker. "If you ever broach the sacred trust of the Illuminati, or should I say 'Illumin-NAUGHTY', " there were chuckles all around, "you will be forever forced to buy us drinks and may, upon our discretion, be roasted alive with a side of Mimes."
"Never trust a mime," they said in unison.
"I will now bestow the sacred and super secret names!" said the spokesperson. Stepping to the first person in the circle, he began "Raise your right hand and repeat your new SUPER SECRET name. I now dub thee:"
- Frances Fritzfancy Down-Underwear
- Daniel Dinsmore Tackadoo
- No-shoulders Sabrina
- DBA Zero, the Disease Starter
- Sistery Brothery Bob
- Nathaniel the Spaniel
- Floyd, the Austrian Tree Surgeon
- Ivan Drago-my-eggo
- Ford Prefect Danglebritches
- Wicked Fausto Fourteen-toes
- Name Withheld
- The Tarnosed Tarheel
- McWilliams Fancypants the Clairvoyant
- Checkpoint Charlie Chesthair
- Senator Cletus Scroffpossoum
- Balloonpopper Chillingsworth
- Flemish Finn, the Ambiguous European
- Jokestealer McGee
- Canadian Football Steve, "CFL"
- Beef-or-Chicken Tim Nubbins
- Oscar Ox-hands Operand
- Lil Gina Songbird, the Songbird Eater
- Hannibal Lecturer
- Stungun "Don't tase me bro" Edwards
- Chrystler Lebaron
- General Zod, the Deadlock Resolver
- Marx the Pumpkin-Patch Crooner
- Spasmodic Hilary, Subscriber
- Cthulhu Squidbeard, Publisher
- Stick-Legs McMutton, Distributor
- Prostate Dave, the Service Broker
- Miles Butterball, the Turkey Defroster
- Peter Parker, the Car Valet
- Crustytrousers the Stiff
- Lintstockings, the DBA Benjamin Disraeli
- DB Bedazzler
- Del Folksybeard
- No-banjo Burnes
- Cincinnati O'Gurk of Germany
- Phoenix O'Sullivan of Sweden
- Dallas O'Mally of Netherlands
- Doc Aquatic
- Louis "Mr Plausible" Ladyfingers
- Beatrice Benchmark Bewigged
- Change Data Capture Chalmers, Esq.
- Baron Von Snapshot
- Ghost Nose Cleanup
- Rollback Schmoleback
- Ambidextrous Stan
- Sherlock-Holmes-Hat Niall
- Thundertwine Workerthreads
- Pseudotable Abe the Deleted
- Fu Manchu Temptoodles
- Hard-flossing Ulysses
- Canadian Paul Pants-Too-High
- Deny Grant Revoke, the Complete Sentence DBA
- Commodore Sixty-Four, Born in 1964
- Mr Manx MacGruber, the Tailless Tool Guy
- Tommy "Lice-comb" Latches
- Nick Nolte
- Mad Microfiche Mladin
- Dora the Plan Explorer
- Honey Bunches of Amit
- Hugo Crispy Stillwagon, the Man with Handlebar Eyebrows
- Genius L. Cravat, the Gentleman DBA
- The Moor of Venice or, at least, Italy
- Sausage Patty McSavepoint
- Gil Sharpnails, the Back-Scratching Developer
- Craine "Too-Tall" Eyebrow-Smeller
- SOX Monster
- Magnus Shareware Shortwave
- Longtime Listener, First-Time Caller
- Colonel Kurtz Commit
- Winston Winnipeg WHERE Clause
- Sackfist, the Frenchhorn Fanatic
- Tinfoil Hat Tony
- Sir Francis Drank Drink Drunk
- Three-Bean Ortez, ORDER BY viscousity
- Muttonchops the Bionic
- Shirtstains the Myopic
- Mariah Duckface, the Selfie Queen
- Saves-Receipt Randy
- NULL, the Riddle-Maker
- Plegmatic Felix Fulltext
- If-This Then-That Alex
- ALTER TABLE Tabitha
- Forktongue Gavin Forks
- Overly Familiar Joseph
- Pring, Overlord of the DBA Jungle
- Pennywise, Bulk-Insert Foolish
- Astonishing Eyelashes Dana
- Zipcar Cloucester Cluck
- Strictly Local DB Henry
- Two-phase Commitment Shy Geoff
- Flaky-palms Antonio
- Semi-Join Sheryl
- Buffer Pool Shark McQueen
- Promiscuous Concurrency Peter
- Marky Mark and the Funky Socks
- Cheesehead Chuck, Owner the Most Productive Ear Canals in Canada
- Paul Randal
"Now, let the drinking begin!", said the spokesperson. A rousing hooray was raised, and so begin the first of the SUPER SECRET SQL SERVER ILLUMINATI meetings.
So, you might be asking, why would I share a SUPER SECRET story like this? And I have two reasons. First, I wasn't invited. And second, I was already buying a lot of the drinks anyway. So I figure, what's new?
Here's your challenge, can you match the SUPER SECRET name to the actual SQL Server MVP, author, blogger, or speaker KNOWING that the names are intended to obfuscate and mask the true owner?!?
Tell me your guess. I'll give you a prize if you win. And I promise to keep it a SUPER SECRET.
-Follow me on Twitter!
Me and Aaron Bertrand, SQL Sentry flagbearers.
One of the things we've been working on at SQL Sentry is building up institutional knowledge for the SQL Server community. There are three main ways that we're doing that on-line:
- Hard-core tech articles on SQLPerformance.com, edited by long-time SQL Server MVP Aaron Bertrand ( b | t ).
- Helping tune tough SQL Server transactions on Answers.SQLPerformance.com for free.
- Streaming videos at SQLSentry.TV.
In addition, our monthly eNews newsletter keeps you up to date on all the latest happenings on all of these websites. Please subscribe! I'll personally hug you if you do.
If you've never looked at any of these resources, a great starting place is our top 12 most popular blog posts of 2013 from the SQLPerformance.com website:
- I used to ask myself "Isn’t everyone bored with string splitting problems?". But this is such a perennial favorite, the answer is clearly "No. No, we’re not". Read more about splitting strings the right way – or the next best way here.
- Paul White ( b | t ) presents a definitive article on one of the most common SQL coding problems, parameter sniffing.
- CHECKDB is essential for good database maintenance, but it can also be a resource hog. Here are some ideas for lightening its load: Minimizing the impact of DBCC CHECKDB: DOs and DON'Ts.
- Jonathan Kehayias ( b | t ) steps out into licensing, the region labelled "Here be dragons" on the maps of most IT professionals, in this great article on performance problems appearing on SQL Server 2012 servers with CAL licensing.
- All processors are not equal in the eyes of SQL Server. Glenn Berry ( b | t ) tells you about the most important factors in choosing CPUs in these two articles.
- For SQL Server 2012, read here
- And for SQL Server 2014, read here
- Now here’s a perenial T-SQL problem that I’m glad to see summarized in one concise article, Best approaches for running totals.
- Erin Stellato ( b | t ) gives us a great review of the best practices around indexing foreign key constraints here.
- Generating number sets is a really valuable technique in many coding scenarios. Read about the most common scenarios here.
- Joe Sack ( b | t ) tells us all about troubleshooting CPU problems in this article.
- Ever wonder which is better – NOT IN, LEFT OUTER JOIN, NOT EXISTS, or EXCEPT? Find out in this excellent article by Aaron Bertrand.
- Paul Randal ( b | t ) helps dispel another commonly held myth about transaction log behavior here.
Have you learned anything new at SQLPerformance.com or gotten help at Answers.SQLPerformance.com? Please tell me if you have. It's always a big encouragement for me when I hear personal feedback that some of my hard work actually made a difference in your day.
-Follow me on Twitter!
Join me for a day of
Real World Database Configuration and Tuning for Microsoft SQL Server
Friday, March 14, 2014 from 8:30 AM to 4:00 PM (PDT)
Mountain View, CA
Click HERE to register Now! Seating is very limited!
This full-day training event combines a thorough overview of fundamental architectural concepts of the SQL Server relational engine followed by hands-on demos to reinforce each conceptual lesson. Since most technologists learn by doing, this training is designed to maximize the time attendees spend working with SQL Server. With ample demos, we’ll cover the spectrum of best practices as they relate to SQL Server configuration and performance tuning.
You will learn:
- The internals and architecture of SQL Server and how they interact during read and, separately, during write operations, including an overview of SQL Server caches, memory buffering and clean-up processes, and user activity handling.
- An introduction to bare-metal tuning of server hardware and storage configurations for database applications, including DASD, RAID, SSD, and SAN architectures.
- Important Windows and SQL Server configuration settings and trace flags, including special considerations for SQL Server running on VMs.
- Methods for benchmarking the performance of alternative configurations and settings.
- Designing databases for performance through indexing, statistics and cardinality, data types, and recovery mode.
- Monitoring and identifying performance bottlenecks and resolving performance issues, including PerfMon, traces and extended events, Dynamic Management Views (DMVs) and Wait Statistics.
- Advanced database structures including “Hekaton” in-memory tables and Columnstore indexes.
And, even better, come the following day to the free, full-day of training at the Silicon Valley SQL Saturday! I'll be there, hanging out and, y'know, doin' stuff. Or maybe not - doing stuff. But I'll definitely be at the SQL Saturday along with some of the best talent and top speakers in the SQL Server world!
I hope to see you there! (Please note that this is a complete different presentation, top to bottom, from the pre-con seminar I presented at the 2012 SQL Saturday in Silicon Valley.)
-Follow me on Twitter!
So you're plugging along in SQL Server Management Studio (SSMS) when it suddenly goes belly up. Now you're staring at various dialog boxes telling you that SSMS crashed. Usually the first dialog box you get will ask you if you'd like to close OR the program. If you choose to close the program, you'll be presented with the opportunity to recover your lost SQL scripts once you reopen SSMS, as shown above. (Image above courtesy of Aalam Rangi).
But let's say that closing the program represents a big issue for you due to lost time, productivity, etc. You want to go the other route - you want to DEBUG! So, what's the easiest way to get a crash dump or to debug SSMS from this state?
In my personal experience, the natural choice and the only choice I'm ever presented is to debug in Visual Studio. But I'm not really a Visual Studio guy. And I find that those times I've attempted to follow the debug route have left me with very little useful information.
But it turns out that, with a little earlier preparation, you can get a postmortem crash dump using a very nicely detailed set of steps detailed at at http://www.codeproject.com/KB/debug/automemorydump.aspx. In a nutshell, you'll use the Microsoft debugger WinDBG and, along with a few setting changes, configure your workstation to automatically take a memory dump when SSMS crashes.
Once you've got your workstation set up to automatically grab a memory dump upon a crash, you have to interpret the results. I'm not going to duplicate excellent guidance provided by Microsoft at the CSS SQL Server Engineering Blog. So be sure to give that post a read to flesh out your understanding of taking and reading memory dumps.
Equipped with this information and a few steps of preparatory work, and you're now ready to conquer SQL Server memory dumps!
Have you every had a crash in SSMS? How did you troubleshoot and resolve the problem? Let me know what you think.
-Follow me on Twitter!
These would be good mentors - me plus Adam Machanic, and Klaus Aschenbrenner
Not long ago, John Sansom (Twitter | Blog) kicked off a SQL Community Project #DBAJumpStart by asking 20 successful and experienced SQL Server professionals this exact question:
"If you could give a DBA just one piece of advice, what would it be?"
I wrote up my Advice for the Aspiring DBA post here, while John collected the entire set of responses here within the DBA JumpStart collection. Part of my advice, indeed of several of the contributors, was to find and build a strong mentor-protege relationship. But what does that really mean? What does a mentor do for you?
First of all, a successful mentor acts on behalf of their protege, with an eye to the their profession development and, if they work for the same company, for the betterment of their mutual employer. Here are several things successful mentors do:
- Model the behavior a protege should emulate: In the IT world, there are few areas where the protege has bigger blind spots than in handling interpersonal situations. Yes, we're great at handling technology, but not so good with politics and persuasion. So when you encounter a mentor who effectively models confidence, competence, professionalism and integrity, you can be certain that his is a person to emulate. (And as a potential protege, keep in mind that you don't want a mentor who acts in a way that you don't want to emulate).
- Move the mentor-protege relationship forward: I personally believe that the onus is upon the protege to initiate and carry most of the water in the relationship. But a successful mentor will stay cognizant of the status of the relationship and help to keep it moving in a positive way. We want a mentor who notices when we've disappeared or gone quiet for a couple months.
- Introspection: It's rare for a mentor to be approached by a person without ambition. The flip side is that ambitious people are often somewhat less introspective and attuned to their own flaws. Just like with coaches in sports, mentors in your profession help the protege understand their strengths and weaknesses and how to amplify or mitigate them, respectively.
- Sponsorship: Good mentors know that learning skills takes practice. Consequently, a good mentor is on the lookout for ways to apply the skills and abilities of their proteges. In my own case, I frequently try to connect my proteges with speaking and volunteering opportunities that increase their prestige, introducing them to important contacts, and helping to broker new relationships.
- Wisdom: Sometimes a protege needs help with personal matters that aren't work or career related. In many situations, a good mentor will help their protege work through emotion issues and explore, in a respectful way, an open dialog that can help the protege gain perspective on their situation. This might be a scenario like working through a confrontational work situation which is actually motivated by a emotional reason that is simmering just beneath the surface.
- Teach: Depending on the work environment, good mentors can teach key technical skills needed to be successful in a particular job. In a sense, they teach competency. But in technology, so many of our successes are driving by non-technical factors. I've found over time that my mentors taught me important lessons in setting priorities, recognized the true motivations of people I interact with, and focusing on results-oriented activity.
- Inspire: Whenever I begin a new mentor-protege relationship, I begin with values and passions. What does my protege really care about? What get's them excited about the day ahead? Many times proteges don't even realize why they're earning their daily bread, aside from the paycheck. And many other times, proteges have no idea what they can achieve. As a mentor, we want to awaken creativity and inspire the protege to act upon those creative impulses. "I want to become a recognized authority and speak at events all over the world!" is something I hear frequently from proteges. Yes. It's definitely in your grasp. But how does the protege react after their first disastrous presentation. Many, who don't have a mentor to bolster their spirits and make the ordeal an uplifting learning experience, throw in the towel and vow to never make that mistake again. Good mentors can help them to see through the hard times to the even better times ahead.
If you've made it this far, you're probably digesting all of the recommendations. And perhaps you're thinking about times in the past where you had a mentor who you respected and who provided you with a lot of help. I'm sure that they didn't do every single thing on the list. But they probably did several if not most of the activities on the list.
Whether you're currently a mentor, or a protege, or hope to be one or the other in the future, keep in mind the behaviors that enable a mentor to succeed. As a protege, look for these behaviors in your mentor. Ask for them, if need be. As a mentor, take an inventory of whether you do enough of these to truly be a valuable and trusted confident of your protege.
By giving of ourselves, as mentors or proteges, we build much stronger relationships based on amity and intimacy. In our go-go, hyper-fast internet-driven world, that's one thing I never get enough of.
What's your opinion? What was your best mentor like?
-Follow me on Twitter!
The following is an excerpt from Kevin and Joe Webb's (Blog | Twitter) monthly IT Pro eNewsletter.
You're Leading in More Ways Than You Realize
It's that time of year again. The sights and sounds of modern-day gladiators clashing on the gridiron field. If you're a football fan, there is no better time of year.
In football, the quarterback is the de facto leader of the offense of team. Late in the game it is to him that the team looks to snatch a last minute come-from-behind victory from certain defeat. That's a lot of weight to put on one man's shoulders.
Yet the quarterback is leading his team in more ways than one. Sure he calls the signals and distributes the ball to other players through hand-offs or passes. But it is his demeanor that sets the tone for the rest of the team.
If the quarterback is visibly frustrated, if he comes to the sideline throwing his helmet, if he blames others for mistakes, if he hangs his head in despair, the team becomes rattled and loses confidence.
On the other hand, if the QB is mindful of his attitude, if he is poised and confident in spite of adversity or mistakes, the team rallies around him and is motivated to perform at an elevated level.
The team will mirror the characteristics of its leader; it will perform only as well as its leader.
The same can be true in business. As the leader of your team, your direct reports will feed off of your attitude and demeanor. Keep that in mind the next time your team faces adversity.
So, how is your attitude? What tone are you setting for your team?
The 2004 PASS Board of Directors
On December 19, 2013, the PASS board of directors (BoD) proposed a small and targeted set of bylaw changes in response to CA relinquishing the BoD seats they were entitled to as a Founding Partner in the professional association.
How Did CA Get Involved with PASS?
You might be wondering "How did a company that doesn't seem to make a lot of SQL Server tools get a seat on the board of this huge, international SQL Server professional association?"
It's a bit of a shaggy-dog story, so I'll sum it up quickly. Back in the late 1990's, there was a large and successful database tools company known as Platinum Technology. Platinum was instrumental in establishing other successful professional associations, such as IDUG, and as an independent software vendor who made add-on tools for database administrators, wanted to encourage similar growth in the SQL Server niche.
Platinum put one of their executives, Steve Vandor, in charge of the initiative to start a SQL Server professional association, who in turn sought out and won additional buy-in Microsoft to get the ball rolling. An initial meeting was convened in early summer (aside, this was only foundational meeting I wasn't present for) with community members, professional association management executives, and executives from Microsoft and Platinum. Papers were signed. Plans were made. Then, Platinum was acquired by CA.
(Feel free to read more about CA and its relationship with PASS, if you like).
What Did CA Ever Do for PASS?
It seems pretty obvious to anyone who's ever been to a PASS Summit the sort of contribution that Microsoft makes to the community. They're there in a big way, especially in the last several years. Kudos!
But what about CA? You might be aware the CA sponsors the data architecture virtual chapter monthly meetings. And that certainly makes a lot of sense considering the strength of their great data modeling product, ERwin. And you may recall, if you'd attended PASS Summits in years bygone, that CA used to have a large presence in the exhibit hall. But for the average rank-and-file member of the organization, you probably hadn't seen or heard much from CA of late.
But that doesn't mean the CA wasn't doing good things for PASS. As I described in my blog post Do You Have One of “the Three W’s” to Sit on a Board of Directors?, the CA BoD members were particularly strong in the third "W" of wisdom. It's hard to quantify the ROI for PASS by having Rick Bolesta and Neil Buckwalter on the BoD since wisdom doesn't come with an industry standard metric. But let me assure you that it was significant.
The quality of decision-making was always improved by having these two at the table and, perhaps most significantly of all, Rick and Neil provided the greatest degree of continuity that the board had. No one else had served as long on the BoD or been through as many ups and downs as these two. Although I have full confidence in the BoD, there's a certain nostalgia for me that there won't be anyone on the board who was there from the beginning. This is a natural and good thing for organizations, to mature to the point of a new generation of leadership unencumbered by older generations. But I think that the context and historic insight that Rick and Neil could provide will be missed.
Ok, So CA Was Good for PASS. What's the Hidden Issue?
Let me start off by saying that I believe that the proposed changes are absolutely appropriate and valuable. They're also very well written to be targeted and directly address the problem at hand.
But there is a hidden issue present in the changes. Say what? Let me explain. While it's not explicitly written anywhere, PASS leadership has always attempted to balance the formulation of the BoD to ensure a good mix among the various stakeholders in the community. That is to say, it's important that the BoD contain a good mix of directors from consulting, corporate IT, the vendor community (full disclosure: I work for a vendor), government/not-for-profit, and other groups. There have been times in the past where most people seeking director positions were independent consultants. This makes a lot of sense for the candidate, since they'd be the most likely type of person to see an upside for their service. But I'm sure you can imagine a scenario where a BoD overly tilted toward one group or another, say a BoD composed entirely of consultants, might set strategy that didn't serve the other constituencies in the best way possible. however those attempts at balancing the board were strictly informal and, basically, not institutionalized. In other words, there's no formal set of checks-and-balances. (The establishment of the Executive Committee was one of the few checks-and-balances written into the Bylaws).
So the hidden issue is this: the PASS Bylaws contain only one explicit stipulation for the stakeholder composition of the BoD. It ensured that CA and, by extension a proxy for all of the vendor community, got a seat at the table.
You might point out that the BoD is not intended to be a representative body, like the Congress or the UK House of Commons. True indeed. Directors at-large do not have "constituencies" in the same sense as elected officials. On the other hand, it's an important part of a large, public professional association that the various needs of its constituent parts have a voice in the strategic direction of the organization. PASS certainly recognizes this and is taking steps to create governance structures that will boost is rapid growth around the world, outside of its long-standing base of North America and Europe. A global re-balancing is definitely at the top of the list.
But is that the only modification needed? Now that CA is stepping away from the BoD, it might be time to investigate the merits of allowing specific constituencies within the community of voice in the wider community.
What do you think? Do constituencies need representation in the professional association? Or are we done with this conversation?
I want to hear what you think!
-Follow me on Twitter!
This post is part of the SQL Community Project #DBAJumpStart by John Sansom (Twitter | Blog).
"If you could give a DBA just one piece of advice, what would it be?"
John asked 20 successful and experienced SQL Server professionals this exact question. I share my own thoughts with you below and you can find all our answers together inside DBA JumpStart, a unique collection of inspiring content just for SQL Server DBAs.
Be sure to get your free copy of DBA JumpStart.
John Sansom recently asked me and 19 other bloggers “What’s the one bit of advice you’d give a junior database administrator (DBA) to achieve greater career success?”. I'm really looking forward to seeing what the other bloggers have to say. The folks that John hand selected are all top-notch and will, I’m certain, be providing true nuggets of wisdom.
I’m wondering if my advice might be a bit different than what the other bloggers will be giving you. For some reason, I’ve got it in my mind that you’ll be getting more technically-oriented counsel from many of them. In my case, I've not only spent many years as a hard-core enterprise DBA, but I've also made the leap into management and leadership in some very large and successful IT organizations. And so I thought I would go "off road" a bit compared to others by providing advice about a more decidedly non-technical approach to career growth for the IT technologist.
You could probably make an argument that I'm providing two distinct pieces of advice. But I believe that these two seemingly incongruent thoughts are in fact like threads which are deeply intertwined:
1. Find and grow a strong relationship with the very best mentor you can, and, to…
2. Spend as much time as possible on deliberate practice of your technical skills.
Now, I’ll explain what I mean.
Mighty Mentors Cultivate Powerful Protégés
In the first thread, I tell you to find and grow a relationship with the best mentor you can find. But what does 'the best mentor' look like? Of course, in an IT career, a good mentor is certainly one with above average technical competency. But with the grow of outstanding, high-quality bloggers, you can read lots of great technical advice on almost a daily basis from the likes of Paul Randal and the team at SQLSkills.com, Brent Ozar and his team, Adam Machanic, Aaron Bertrand, the Microsoft SQLCAT, and many others. That somewhat lessens the need to have a technical mentor just over the cubical wall.
And in our case, the very best mentors are the ones who provide not just technology wisdom, but wise counsel about office politics, the social fabric of the work, and work/life balance. So that means you’ll want to identify a friendly person at least a few years more advanced in their career than you who have both a career and personal values that you’d like to emulate. This might potentially be your current boss. But in many work environments, a boss in another department might be a better choice since you might want advice about dealing with your boss, deadlines, or other things that are a little tougher for your line manager to advise on impartially. It might also be a person who’s not a boss at all, but someone with real world experiences that are valuable and applicable to your situation in life.
Some companies have formal mentoring programs. That’s great. Take advantage of it, if it’s available. But here’s the tricky part – it’s really up to you to plant the seed of a relationship and to cultivate it to fruition. I’ve encountered many people over the years who said “I had a great mentor, but we eventually lost touch”. Maintaining that relationship falls to you, not the mentor. So make it happen and invest the time and energy into it that it needs to thrive.
One of the things that good mentors do is to help you see your blind spots. In this case, blind spots mean a couple distinct things. Your first blind spot might be in terms of promote-ability and social conduct. For example, we all need someone who likes us enough to say “Better stop bringing the garlic & basil salad in for lunch before the big monthly meeting. No one wants you to open your mouth for the rest of the day”. IT pros are notorious for being a bit unrefined in the social sphere and so it’s always a significant way to set yourself apart when you get good advice about how to best dress and behave in your current corporate culture. Another significant blind spot many of us have is our broader “brand”. Are you known for thoroughness? Do people say good things about you and your work? A strong mentor will help you understand your own brand and how the consequences of your actions, which might not be obvious to you, will play out over the coming days and weeks. Finally, and this is where I bring in the second thread of this advice, your mentor may advise you to burnish your technology skills.
That thought leads me to….
Deliberate Practice Leads to Definitive Improvement
When you encounter a deficiency in your skills or an area where you’re strong and want to get even stronger, research has shown an absolute causal link between mindful, deliberate practice and improved performance. In study after study, researchers find that performance-minded professionals, from musicians to managers to top-dollar athletes, who spend time in focused concentration to improve their skills will achieve prodigious capabilities. It requires many hours and lots of repetition. But it’s literally a proven fact that practice makes perfect.
And to further tie this back in with your mentor of things both technical and social, you need to practice the soft skills in a mindful way just as you should be practicing your Transact-SQL programming, query turning, and database modeling. Your mentor will help you identify the areas where you need to improve – then go do it, just like Nike says in their commercials. “Just do it”.
Too busy fighting fires? Then make time for practice, just as you should make time to interact with your mentor, preferably at the start of your day before you jump in to your regular workday. When you probe many top-caliber IT professionals, you’ll find that a surprising large number of them start their day with “quiet time” for study and reflection. So should you. And once you make it such a habit that it becomes part of your daily or weekly routine, you’ll find in retrospect that your skills and your career hit a tipping point on the day you got “deliberate” about it.
Sounds simple, doesn’t it?
Many times you get highly technical advice from highly technical people. And that is 100% useful and valuable to advance your career. But when you examine the most successful IT people, you’ll usually find that it’s neither their skills nor their knowledge set them apart from everyone else in the IT world. Other people in their organization are just as skilled and knowledgeable. It’s almost always a set of well-honed non-technical skills combined with a strong technical talent built through an awareness of their own strengths and weaknesses. If you enlist a mentor to help you suss out your strengths and weaknesses and who will help you to successfully navigate office politics and combine it with deliberate, mindful practice in both technology and soft skills, you’ll be unstoppable. Now – go forth and conquer.
Let me know what you think. What's your input? How would you mentor a junior DBA? What would you add to the mix?
I hope to see your response here or on John's page.
-Follow me on Twitter!
I had the privilege last week of talking with Richard Campbell (t), Microsoft MVP and host of the very popular RunAsRadio podcast, a sister-show to the worldwide phenomena known as .NET Rocks!. I had the privilege of meeting Richard and his partner at .NET Rocks, Carl Franklin (t), a few years back at the DevLink conference and we've made it a point to stay in touch ever since. Just as an FYI, there are lots of great DBA and database dev topics from the .NET Rocks podcast here (http://www.dotnetrocks.com/tag.aspx?tag=Data), including an appearance I made back in 30-May-2013.
Here's the write-up Richard used to describe the show:
Richard talks to Kevin Kline about what's coming in SQL Server 2014. Yes, the database continues to evolve and Kevin digs into many of the new features. The conversation also jumps into the NoSQL movement and it's many forms, including making simple data storage easier for developers as well as the creation and management of big data solutions. Kevin also talks about the impact of new licensing models and new hardware of SQL, and how the role of the database in the organization continues to evolve.
LISTEN to Kevin and Richard on RunAsRadio.
What sort of things would you like to hear about in the future? Trends? Specific technologies? Best practices? Let me know!
-Follow me on Twitter!
Don't forget about the cool services from SQL
Sentry for Summiteers, like the free
area shuttle and the printed
area maps! Details are in a 5-part series by our CEO, Greg Gonzalez, at http://greg.blogs.sqlsentry.net/.
Are you coming to Charlotte next week for the PASS Summit? Let's connect! When ever it's open, I'll be in the Exhibit Hall at the SQL Sentry booth unless I'm delivering a session or something of that nature. Here's the sessions I've got on the calendar -
Tue, Oct 15:
- First-timers Get to Know Your Community with Kendal Van Dyke (Blog | Twitter), 2:45-3:45 and 4:00-5:00 PM
- First-timers Orientation Panel Discussion (moderator), 6:00-6:45 PM
- Opening Ceremonies and Quizbowl, until 8:00 PM
Wed, Oct 16:
- Keynote, Blogger’s table
- Session: Convince Me - Persuasion Techniques That Get Things Done, 10:15-11:30 AM (Room 212 A-B)
Thu, Oct 17:
- Keynote, Blogger’s table
- PASS pictures immediately following the keynote of former presidents
- Luncheon, PASS WIT, 11:45-1:15 PM
- Session with Aaron Bertrand (blog | twitter) : 10 Query Tuning Techniques Every SQL Programmer Should Know, 5:00-6:30 (Ballroom A)
Fri, Oct 18:
- Session: How to Avoid Living at Work: Lessons from Working at Home (moderator), 8:00-9:30 AM (Room 217 B-C)
- PASStv Interview, 9:40-9:50 AM
- Luncheon, Birds of a Feature table lead, Professional Development / Interviews / Job Search
- Late night - The SQL RacerX Richard Petty Driving Experience private event
I hope to see you there.
-Follow me on Twitter!
(Originally appearing at http://kevinekline.com/2013/10/09/wait-statistics-in-sql-server/).
When it comes to troubleshooting in relational databases, there's no better place to start than wait statistics. In a nutshell, a wait statistic is an internal counter that tells you how long the database spent waiting for a particular resource, activity, or process. Since wait statistics are categorized by type, one look will quickly tell the variety of problem that needs your attention, assuming you know meaning for Microsoft's lingo for each wait type.
(As an aside, wait stats were implemented in the earliest days of relational database computing because the early RDBMSes ran on multiple operating systems. So the database vendors needed a reliable method of troubleshooting database performance which was independent of the OS).
Wait stats help you clue in to the best approach and path for troubleshooting. For example, if your top wait stat showed a lot of time spent on acquiring locks, you could pretty well rest assured that trying to tune networking latency would be a total waste of your time. Conversely, wait stats could also help you understand that perhaps the 'usual suspects' of poor database performance (IO, CPU, etc) weren't actually worth consideration.
Because wait statistics are broad, they're typically where you start your troubleshooting process but not where it ends. That's because wait statistics don't actually point to the smoking gun that's causing the true performance problem. For example, let's say your SQL Server is experiencing an unusually high amount of RESOURCE_SEMAPHORE waits. Resource semaphores relate to query compilation and reserving memory for queries as they're being compiled. But on a busy system,WHICH of your queries are contributing to this wait? It can require a lot more investigation to figure that part out. (I've considered spending some more time in future posts walking through the entire troubleshooting process. If you're interested let me know in the comments).
Now, in SQL Server, it is possible to determine the wait stats accrued by a given thread or even a specific query or transaction. But this information is only retained by SQL Server while "in flight". Long-term retention of wait stat information is only for the broad categories.
WAIT STATS THEN...
For some historical perspective, you have to go back to the white paper SQL Server 2005 Waits and Queues (By Tom Davidson) to see where it all began for SQL Server. (http://download.microsoft.com/download/4/7/a/47a548b9-249e-484c-abd7-29f31282b04d/Performance_Tuning_Waits_Queues.doc)
Prior to SQL Server 2005, wait stats of a sort where identifiable using the DBCC SQLPERF(UMSSTATS) and DBCC SQLPERF(WAITSTATS). These commands are still around, btw. You can see these early indications of UMSStats (User Mode Scheduler) and wait stats in Microsoft KB articles like Description of WAITTYPE and LASTWAITTYPE (http://support.microsoft.com/kb/822101) and other early blog posts.
Wait Stats started to come into major prominence when folks like Joe Sack (blog | twitter)
(http://blogs.msdn.com/jimmymay/archive/2009/04/27/wait-stats-by-joe-sack.aspx) and Jimmy May (blog | twitter) started to write about them (http://blogs.msdn.com/b/jimmymay/archive/2009/04/26/wait-stats-introductory-references.aspx)
And if you didn't get them then, you definitely need the SQL Server Diagnostic Queries by Glenn Berry (blog | twitter) , which have a number of wait stat queries already written for you. Glenn started this collection of queries back in 2005 and has kept it up to date ever since. The latest version of queries are at http://sqlserverperformance.wordpress.com/2012/07/08/sql-server-2012-diagnostic-information-queries-july-2012/.
I also started to put a lot of attention on them, such as when MCM and UK MVP Christian Bolton (Blog | Twitter) and I did the webcast The 5-Minute SQL Server Health Check (http://sqlblogcasts.com/blogs/christian/archive/2009/11/16/webcast-now-on-demand-the-5-minute-sql-server-healthcheck.aspx).
...AND WAIT STATS NOW
Nowadays, wait stats are quite well documented. You can get a great review of all of the wait stats for SQL Server simply by looking at the Books Online (BOL) topic (http://msdn.microsoft.com/en-us/library/ms179984.aspx).
The downside of Microsoft's documentation in BOL is that it tells you a nice bit of info about each of the wait stats, but not how to remediate them if they are turning into a problem on your SQL Server. But times have changed - there's so much good information that all you need (most of the time) is to perform an internet search for 'SQL Server my_problem_wait_stat' and you'll probably get at least one good hit by Microsoft customer support or an MVP blogger. All you need to do before the search is to find the type of wait stat that's causing the problem.
These days, all you need to
solve a wait stat problem is an
internet search for 'SQL Server
There are also a couple good books and eBooks on the topic. Kalen Delaney's Inside SQL Server books, especially Chapter 2 in the edition sitting on my shelf, are outstanding. Joes2Pros also has a nice, succinct book on wait stats here (http://joes2pros.com/?wpsc-product=sql-wait-stats-joes-2-pros).
Jonathan Kehayias (blog | twitter), of SQLSkills.com, has a great eBook in short form for free and a longer, more comprehensive version for a small fee. (https://www.simple-talk.com/books/sql-books/troubleshooting-sql-server-a-guide-for-the-accidental-dba/) at Simple-Talk.
What are your favorite wait stat resources? Have you written a blog post that broadens or deepens our knowledge of wait stats in SQL Server? If so, I'd love for you to post a comment here with a link back to your article! Let me know what you think. Thanks,
-Follow me on Twitter!