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!
I was just looking at my upcoming tour dates, trying to get my head around the fact that I'll be logging about 40,000 miles in just 8 weeks. What's not to love about working with our fine TSA Agents dozens of times in the next couple months, I ask you? I'm doing a few more webcasts for local user groups around the USA, as well as making appearances in Stockholm, Antwerp, and Tel Aviv.
San Diego SQL Saturday
September 21, UCSD Extension
Stay classy, San Diego! I just finished catching up with lots of old friends (and by that I mean "friends who are really old") at SQL Saturday 249. It was a lovely day at the UCSD Extension, where hundreds of us gathered for a big, ol' nerdstravaganza. If you attended either of my sessions, I've posted the fully refreshed slide decks in my Slides. Thanks for all of the great comments and feedback!
Rochester SQL Server User Group (Webcast)
September 25 (REGISTER)
In this free session, I'll be talking about Ten Dev Skills to Make Your DBA Happy. What's it about? Stereotypes abound for different types of people in the IT world. Developers think DBAs are control freaks. DBAs think developers are unruly cowboys. How do we overcome these differences? If you’re a developer, your best strategy is to manage your DBAs’ anxieties and demonstrate your competence and credibility. Attend this session to learn about 10 techniques that developers can apply to their code which will calm your DBAs’ fears and earn their admiration.
This session is specifically for the Rochester SQL Server User Group and PASS chapter, but anyone is free to attend.
NashvilleTech (NCSS) Leadership Breakfast
September 26, 8-10 AM CST; NashvilleTech, 120 White Bridge Rd, Nashville, TN 37205 (REGISTER)
In this free breakfast workshop, Joe Webb and I will discuss the fundamental difference between influence and authority and how you can achieve a high degree of influence without having explicit authority. We'll also share eight techniques for effectively influencing IT professionals so you can best win support for your initiatives. If you're an IT pro in the Nashville area, then this is a session you won't want to miss! Details and registration at Leadership & Influence.
September 27, October 25
This is my hometown regular monthly SQL Server User Group and PASS chapter meeting, held at lunchtime on the last Friday of the month. Venue details are at http://nashville.sqlpass.org/, while discussions are on the NashSQL LinkedIn page.
PASS Summit 2013
October 15-18, Charlotte
I'll be taking part in four sessions at this year's huge PASS Summit in Charlotte, NC:
- Convince Me - Persuasion Techniques That Get Things Done is a 75-minute session specifically designed for IT pros to learn how to persuade our peers and bosses. We, as IT people, tend to fall into the same traps when it comes to soft skills like communication and calls to action. This session will help you prepare for when you need to change the minds of others and convince them to see things your way.
- Ten Query Tuning Techniques Every SQL Programmer Should Know is a 90-min session that my good friend and coworker, Aaron Bertrand, and I are presenting. We're going to use lots of SQL query demos to illustrate ten importent techniques, patterns, and antipatterns every developer should know.
- How to Avoid Living at Work: Lessons from Working at Home is a full, 75-minute panel discussion with some of the top talent in our industry including: Thomas LaRock, Karen Lopez, Erin Stellato, Grant Fritchey, Andy Leonard, Aaron Bertrand.
- The Women in Technology Luncheon on Thursday will focus on "Beyond Stereotypes: Equality, Gender Neutrality, and Valuing Team Diversity". Last year we had over 700 attendees for this packed session, sponsored by SQL Sentry. Make plans to be there early to get the best seats.
I'm also a mentor in the First Timers Program on Tuesday and, of course, spending lots of time in the exhibit hall at the SQL Sentry booth. Come see me in the exhibit hall if not in my sessions!
If you haven't registered, use our exclusive registration code SQLSUM13 for $150 off the registration cost. And be sure to check out these informative blog posts about things to see in do in Charlotte and near the conference center during the event:
Las Vegas, October 27-30 (REGISTER)
I'll be celebrating another birthday in Vegas at the DevIntersection conference. And, if you're trying to decide what events to go to, remember that everyone who registers for DevIntersection has their choice of a Surface RT or an XBOX One. Wow! (REGISTER for the DevIntersection conference). This is a great event for IT people with a wide skill set, such as developers, system admins, and IT pros with multiple areas of responsibility.
My cohort in crime, Aaron Bertrand, will be presenting two sessions with me. The first, a regular session, is Ten Query Tuning Techniques Every SQL Programmer Should Know, which takes you through 10 of the most problematic patterns and anti-patterns when writing SQL queries and how to deal with them all. Loaded with live demonstrations and useful techniques, this session will teach you how to take your SQL Server queries from mundane to masterful.
The second session is the Tuesday evening keynote, entitle Monitoring and Performance Tuning for AlwaysOn. In this session, we cover the basics of SQL Server AlwaysOn high availability technology. With Availability Groups and FCIs, SQL Server 2012 AlwaysOn has dramatically expanded the possibilities for high availability and improved resource management. However, to reach the full potential of these new features, better management tools are required. We show you how to do as much monitoring as you can using the native tools, then we present our revolutionary new software which, among many other things, provides enhanced visibility and manageability for advanced AlwaysOn topologies.
And of course, we'll be hanging out in the Exhibit Hall. Come see us!
SQL Rally Nordic
Stockholm Sweden, November 4-6 (SQL RALLY NORDIC HOME)
This outstanding event just gets better every year. I'll be presenting my popular session SQL Server Internals & Architecture on Day 2 of the event, along with Top Ten Administrator Mistakes on SQL Server. If you register by Oct 5th, you'll get 50 Euros off the registration price. There are also some great pre-conference seminars on tap from outstanding speakers like Adama Machanic, Brent Ozar, Davide Mauri, and Kalen Delaney. If you've never taken a class from one of them, you're in for a treat!
SQL Server Days
Antwerp Belgium, November 7-9 (SQL SERVER DAYS HOME)
Belgium is home to some of the most beautiful cities in Europe. And this fall, not only do I get to present at the SQL Server Days conference, I also get to deliver a pre-conference seminar! My Thursday pre-con, Real-World Database Configuration and Tuning for SQL Server 2012, is a full day of configuration, performance tuning, and troubleshooting advice, tips, and techniques. If you're into serious SQL Server tuning, then this fast-paced, full-day session is for you!
Then, on Friday, I'll be delivering the session Ten Things Every Developer Should Know, which I often called "Ten Things Every Developer Should Know to Keep Their DBA Happy", which is an important session for SQL Server users who spend most of their time on database development activities, rather than on administration. DBAs and developers often clash. So this session is for you if you've ever had to deal with an annoyed or annoying DBA.
NAYA College Training
Tel Aviv Israel, November 22-27, (SQL SERVER MARATHON HOME and DETAILS for my 3-day course)
I'm really looking forward to spending some time in Israel this fall. The session is put on by Naya College and is a three day class intended for database and IT professionals who want to build performance optimized systems from the bare metal up through the OS, SQL Server, and on into their application. And if you have specific questions and you think you might attend, let me know so that I can prepare a solid answer for you. Spread the word!
SQL Cruise 2014
Miami, Jan 25 - Feb 2 (2014 SQL CRUISE DETAILS)
Tim Ford (blog |twitter) has put together another outstanding roster of trainers for this 8-day cruise through the Caribbean isles. In a testament to the growing popularity of the SQLCruise, the 2014 cruise was nearing peak capacity just a few days after Tim opened registration. There are just a couple seats left, so get your registration soon to secure your seat.
Here's a new post from my website, with many thanks to Microsoft DPE for the Central Region, Keith Mayer (blog | twitter), for these great tips!
- Windows 8.1 RTM and Windows Server 2012 R2 RTM bits available on MSDN and TechNet subscription sites. This is the version I'm waiting for since it fully preserves the Start menu.
- Note that updates are expected between RTM, now, and GA, October 18th. Be sure to check Windows Updates 2-to-3 times weekly if installing these bits. I'm not saying they're unstable. But they are definitely changed frequently as the dev team makes final tuning and tweaking changes.
- New Virtual Labs on Windows Server 2012 R2 and R2 Essentials:
- TechNet Eval Center – Don't forget that TechNet has been sunsetted and has only 90 days or so left before you'll need to switch to MSDN for product bits.
- Currently, Windows 7, Windows Server 2008 R2 and Office 2010 have been added with more expected in coming weeks: http://technet.microsoft.com/en-US/evalcenter/dn407368
- Here's an interesting new development - Microsoft has caught wind that many of us have to frequently install older versions of the bits. For example, it's not uncommon for a DBA to need to install SQL Server 2005. You'll now be able to get those bits from your TechNet/MSDN subscriptions under their "Previous Products" area.
- Windows Azure Updates:
- Scheduled Auto-Scaling of VM’s, WebSites and Cloud Services
- Automated SQL Database exporting to Storage Account
- SQL Database Premium Tier offers reserved capacity
- Here's a great blog (http://weblogs.asp.net/scottgu) to stay on top of when SQL Server is your primary cloud focus. New features in this release include SQL Server Always On Clusters Supported on Windows Azure – High Availability, Disaster Recovery, Read-Only Secondaries for Offloaded BI.
- IE 11 Release Preview for Windows 7 releasing later this week – W3C Resource Prioririties, GPU acceleration, WebGL, ECMAScript 6, new “F12” Developer Tools. Look for details on the IE Blog ( http://blogs.msdn.com/b/ie/ ) later this week.
- There's a new App Studio for Windows Phone that's entirely web-based. Wow! No real coding and it's all done on-line. It's for Windows Phone Apps from Browser-based App Templates / Submit enabling you to directly upload them to the Windows Phone store. Get involved with the program at http://apps.windowsstore.com. There's also a cool looking App Builder Rewards program where you get points towards prizes for getting involved with the program: https://build.windowsstore.com/rewards/.
- Trade-in your iPad, Get $200 towards a Microsoft Surface: http://content.microsoftstore.com/en-us/offers. Might be useful if you have an older iPad that's just collecting dust.
- “Early Experts” for Windows Server 2012 R2:
- New wave of “Early Experts” study group targeting new features in Windows Server 2012 R2
- Scenario-based, but also mapping to new R2 certification exam objectives
- First online meetings beginning in October – 3rd Thursdays from 6:30PM-8:30PM
- Launching this month at http://aka.ms/EarlyExpertsR2 with FREE EBOOK offer. (A $10 value on the online bookstores).
- New Online Step-by-Step Lab Guides
Let me know if this info is valuable. Many thanks,
-Follow me on Twitter!
I know a lot of you regularly read my blog either on my home page at KevinEKline.com, on SQLBlog.com, or one of the locations where it's syndicated. And you may also regularly take in my content on SQLSentry.TV or my monthly column on Database Trends & Applications magazine.
Click the image to see my new weekly video series on SSWUG.org!
Now I'm adding a new video format to the mix, in partnership with my friend Steven Wynkoop and SSWUG.org. I've been a frequent speaker in the SSWUG virtual conferences over the past several years and, we thought, why not make this a more frequent occurrence than twice per year?
For the next several episodes, I'll be discussing new features that will be released in SQL Server 2014. However, I'd love to make it interactive. So if you have any topics that are keenly interesting to you which are part of my regular repertoire (SQL Server, SQL, other database platforms like Oracle, database design, enterprise architecture, cloud computing, professional development, and leading IT teams), then please drop me a note. I'd love to hear from you.
-Read more content at KevinEKline.com
-Follow me on Twitter!