Have you ever noticed when you are working on a query for SQL Server and the second time you execute the query it runs much faster than the first time you had executed it? There is a reason for this and most likely it is caused by your buffer.

When you’re SQL Server starts there are a few things that happen in regards to the memory. One of these is SQL Server is going to start to claim memory space from the Operating System for it to use. Inside this memory space that is has captured SQL Server then allocates space for a buffer.

A SQL Server buffer is a space that SQL Server uses to store data pages based on data that has been accessed recently. As data is retrieved from disk the data is placed in the buffer. This is done because reading from memory is much faster than reading from storage. 15 years ago when the storage was much slower than it is now, this was a critical part of making SQL Server faster. And with such a wide gap in the performance differences between storage and memory many DBA’s found performance benefits in adding more memory to the SQL Server as a way that they could keep more pages in memory for faster access.

Fast forward to 2014 and look into storage performance and you will see so many different changes you may not be thinking you are looking at the same thing. The use of SAN technology is common with small companies and the storage spindle speed is faster than it has ever been before. We have seen the introduction to SSD (solid state drives) that removes all the moving parts in the storage. These changes have made a big difference in the performance we can now get out of our SQL Server installs.

SQL Server 2014 takes advantage of these new storage options by giving us the ability to use a buffer extension file. Think of this as a page file that we all know and love however this is for you database, and is intended to reside on the new faster storage we have access to. A Buffer Extension creates that middle level between storage and memory, and works well when you see your SQL Server needs a little extra memory and yet you have already maxed out your memory in your hardware.

At the 2014 PASS Summit I am going to spend some time showing attendees how to enable this buffer extension, and a couple of the things that you should watch out for. This Pre-Con all about Real World End to End Performance Solutions is going to be a great event.

Avoid Technology Debt

Posted: September 19, 2014 in Events

Can you afford to miss this free training class? See the end of this post on how to sign up.

Have you ever been in a situation where you are working on implementing a SQL Server based solution and you need to make a decision about the technology that could impact the rest of the project? How do you know the decisions you are making are the right ones, and do you know what the downstream effects are of the decision you are about ready to make?

The wrong decisions can leave you with mounds of technology debt, or in other words issues that you are going to have to go back and correct before you can move forward with new development. Less than optimal decisions may leave you with performance issues, reliability concerns and even recovery problems.

John Morehouse and I are going to spend a day in a very small and engaging session reviewing how we look at these issues. We have the crime data for Chicago going back 10 years and1 you will see how our case study addresses many of these decisions. A few of the many topics we will cover are:

  • Enterprise and Database Architecture
  • Database Infrastructure
  • Indexing Strategies

The class will be near the Denver Technical Center on September 26th. We plan to start close to 8:30 AM and wrap up around 4:00 PM. If you can attend please let me know as soon as you can because seats will fill up, RSVP by sending me an email here.

When: September 26, 2014

Where: XTIVIA, Inc. – Centennial Office Location – Building C

XTIVIA Conference Area

7200 S. Alton Way, Building C

Centennial, CO 80112

What’s on the Schedule?

Posted: September 8, 2014 in Events

For the next couple months I am going to be running around crazy. I figured I would take a few minutes to post my schedule. If nothing else to remind me of where I am supposed to be.

Tuesday Sept 9th – I will be doing a session with my good friend John Morehouse (T|B). We will be speaking at the 24 Hours of Pass, this will be a free event. It is designed to give everyone an opportunity to get a taste of the PASS Summit without the travel.

Sept 13th – I will be headed over to Kansas City to Speak at SQLSaturday #300. I always enjoy going to Kansas City. It’s a great time and the team there does an awesome job putting everything together for the event. The session in KC that I will be doing is Outages; Dispatchers, Cops and Detectives

Sept. 21st – I am staying a bit local, Denver is hosting SQLSaturday #331. I can’t think of many things better than doing an event so close to home, I don’t have to take a plane or an extended drive in the car. In Denver I will be speaking about Managing a 0 Downtime Shop.

Sept. 26th – I will be doing an invite only event on approaching real world SQL Server design issues in Denver. This is going to be a full day event full of useful information.

It looks like I will have the first half of October to move to Mission Texas with a short 1 week engagement in Dallas. Plans are still coming together for that. However after I get settled in to Mission Texas and start the next stage of my life where I learn how to say All Y’All I will be headed to the best SQL Server event of the year where I will be doing a full day pre-con for the PASS Summit, and a standard session at the PASS Summit. As if that is not enough for one week, I will also be attending the MVP Summit.

Now if I can only find some time to go take some pictures of the leaves changing colors here in the Colorado Mountains…

I hope to see you at one of these upcoming events.

Back From 2014 CodeStock

Posted: July 17, 2014 in Events

Last week I had the privilege to speak at CodeStock in Knoxville, TN. I have to admit that I was not all that pleased at taking a red eye flight, but that is all on me. The city of Knoxville was nothing but a good experience. I found myself just amazed at how pretty that city is. The location for the event was awesome, and the food in Market Square was great as well. In addition to the great event that was organized the attendees were very kind. All in All I had a great experience, and for the first time in my life I was called ‘Shug’ short for Sugar.

My slides and a couple short scripts can be found here. If there was something I mentioned you wanted to see and I forgot to post it please send me a note and let me know.

 

Thanks,

Chris

All Day Pre-Con Event

Posted: June 25, 2014 in Events, News

 

John Morehouse and I were sitting around during a recent SQL Saturday talking about what experiences we learn the most from and how we can use that to help us when we are speaking at an event of some sort. We found that being able to relate the topic that we were teaching back to an example that attendees can relate to worked really well for us. So have some crazy brain storming we came up with this idea.

We both are sitting down with some requirements and some data. We will both have the same environment yet we are going to work independently to see who can come up with the better solution. The goal will be something measurable and when we meet at the PASS Summit in November we will see who as the best solution. Here is where you come in… If you want to see what solution wins and why it does you will be able to. We will be presenting this as a Pre-Con to the 2014 PASS Summit.

As we talked about the idea more and more we decided that we can make the session a bit more realistic, so we are going to spend the afternoon making changes to our environment and to the winning solution to see how it works with the requirement changes that always jump into projects. We will test things like versions of SQL Server and when you change the hardware. So if you are ready, come join us, I can assure you there will be a lot to learn and we are going to have a lot of fun doing it.

In the red corner representing Colorado Springs, standing tall at 5 foot 6 nothing but attitude. Armed with a staggering 17 years of experience for a right hand and striking fast wit for the knock out on the left. Your 5 year SQL Server MVP, Pass Regional Mentor, and Colorado Springs User Group leader… Chris Shaw.

In the blue corner, backed by corn huskers and fire fighters, a true hero dedicated to destroying poor database performance and the sharing of database knowledge. Lighting fast reflexes and in depth knowledge is unleashed to deliver lethal blows. The towering, the intimidating and the inspirational to so many… John Morehouse.

In case you wanted to see the official Abstract we included it here. We hope to see you there. To register check out this link.

Real World End-to-End Performance Solutions

Do you ever wonder how other people approach real world business objectives from start to finish? The success of a project can be hampered from decisions that are made before a single row resides in a database, and yet often there is no one single best solution, because different people will approach a problem from different angles and there are countless variables along the path that are critical to success. If you make a mistake at the beginning, costly redesigns may haunt you for years to come.

 

In this powerful yet entertaining full-day pre-conference session, we will start with two different database professionals with two different skill sets. The speakers both have very different ways of approaching a project (and are both set in their ways!), but both have the same measurable goal. Whose process runs faster? Join this session and see the results.

 

In other words . . . “Let’s get ready to Rumble!”

 

What may appear as the end of the session is really only the beginning as variables and limitations are added and various questions are answered: What happens to our project when we are forced to use GUIDs (Globally Unique Identifiers), or when we push our solution to the cloud? Does the introduction of new hardware improve the overall outcome of our test? Do we see faster performance with SQL Server 2014 over SQL Server 2012? Join us and find out!

Does this sound familiar?

8:00 PM and you are watching your favorite TV show Survivor when out of nowhere you are interrupted with an on call page. You log on to check the servers, and for some unknown reason “it” has hit the fan and the server is spiraling out of control (By the way, if you don’t know what sound is makes when “it” hits the fan just say MARINEEE out loud). You grab your DBA hat, some Mountain Dew and you settle in to take care of the problem and walk away the hero. But, it’s not going just as plan… It’s now 3:30 AM and for one reason or another you are still working. It appears that all the planets have aligned and you are facing one issue after another. Just as you think you have a handle on the cursed issue that is keeping you awake at this time of night some new issue shows up and you realize that you will be enjoying your next breakfast at your desk.

If you have been a production DBA for some time I assume that you have a few stories that you could tell me, I know I have more than a few that I often share when I am speaking at events. I think these are the moments that define production support staff. It is difficult to fight off the frustration, the lack of sleep and the stress of having a production environment down. Seasoned administrators become the way they are based on these experiences and use them, to better their skill sets. As the “Crisis” is occurring different decisions are being made…

  • Do you apply a hotfix?
  • Do you reboot the system?
  • Is it time to look at restoring the whole thing?
  • How much do you worry about collecting evidence to find the root cause compared to spending that time correcting the problem?
  • And many, many more.

However, I believe there is one question that is more important than any other, and you need to ask yourself this question over and over again. Are you in the state of mind to make good decisions?

The self-pride that most of us have would default the answer to the question as yes. We don’t want to think there is a point that we can act and react logically. However, we have to remember we are human, and no matter the experience we can fall victim to the stress. When we do, we may be less likely to apply best practices such as documenting each step we take or double checking each action before we move to the next task. The end result is when a crisis occurs the stress is the natural fall-out. As the problem increases and progresses you may find yourself needing a backup, or trying to find a backup and what if that backup us bad… the stress kicks up a notch. Life gets real, when you start to operate without a safety net.

Example: A few years ago I was in one of those book studies a company required. The coach was going on about how people don’t make me mad, only I make me mad and we can control when we are mad. I tried to explain my point to the coach, that human nature comes in and sometimes there are just situations where some issues are just going to raise emotions that are going to make people mad. I provided the example of my father. I lost my father 21 years ago just a few days after my 21st birthday, and well this is a very sensitive subject for me to this day. At one point many years ago, someone insulted my father. Was I mad? Oh you bet I was, and I don’t care what anyone says, the person who insulted my father made me mad. I can control my reaction to my emotion but not the actual emotion itself.

Granted the example is not a technical one but with all the emotion that is going on during that discussion was that the right time for me to make critical decisions? When stress reaches a new level you have to stop and ask yourself if you are in the state of mind to make the critical decisions that need to be made in the time of a crisis.

If you answer yes to the question and you can do so without any doubt, then proceed with applying good practices for troubleshooting and correction issues that are in production.

If you answered no or even a not sure, then it is time to re-evaluate the situation. The easy answer is that it is time to step away from the situation and get someone to take over for you, but what if you can’t? What if you are the only resource and if stepping away means that you are just going to prolong the problem then what do you do?

  • First you need to start triple checking every move you make. You may think that code you are executing is in the right database, but check again. I have dropped a database in production on accident, and I can tell you that the second I hit execute, was the same moment I realized I was connected to the wrong server. I will go one step more and say I will start disconnecting all my sessions, and will not re-connect until I am ready to execute.
  • After you have checked for the third time, now write it down. For years people have been preaching document what you do, yet I very rarely find this to be the actual case. But if you are of the mindset where you should really be in bed… Well document everything before you do it. Why, well the mere action of writing it down may trigger that thought in your head that says wait, is this the correct thing to do.
  • Nothing helps me more then when I explain what I am doing to someone else. It doesn’t even have to be a DBA, or someone who has any understanding of what I am doing. The process of explaining verbally helps me double check that I am thinking about all the downs stream impacts.

I am curious, is there something that you do? How to you protect yourself and just as important how do you protect what you are working on from mistakes?

 

Team Work

Posted: May 9, 2014 in Career

When people talk to me about my time in the Marine Corps I am often asked about boot camp, they want to know if it is as rough has Hollywood makes it out to be. Do the drill instructors yell at you and do they continually insult you and try to break you down. Well the truth is… yes they do, but if you think about why I am sure you will understand and it comes back to team work. Consider this, in the movie A Few Good Men,

I eat breakfast 300 yards from 4000 Cubans who are trained to kill me“. –Col. Jessep

If you think about the full concept of this statement; you might ask; why doesn’t Col. Jessep fear the 4000 Cubans that are trained to kill him, why does he casually get up each morning and enjoy his breakfast.

Later the Col. refers to how people can rest easy sleeping at night. The mission of a drill instructor is to train young men and women to become Marines, and being a Marine means you are part of a team, a team that works together so well that when a Marine looks to his left and sees another Marine, that he or she knows they can sleep sound, their team mate will take care of them just as they would themselves. Granted working in the civilian world this may sound a little drastic, at least I hope it does. I hope you don’t low crawl to your desk to avoid the Customer Service department so the snipers don’t have a clear shot. However, I do think there are things that can be learned from how Marines are a team.

I could tell many stories about Marines not getting along with each other. Sometimes to the point of fist fighting, however when there is a mutual goal in sight, the accomplishment of that goal overrides any ill feelings towards fellow Marines. Having a Clear Goal and defined tasks to complete the goal help manage the relations that impact the team. When a team member is falling short, then his or her fellow Marines are responsible to bring them back up to where they need to be. It doesn’t matter if one team member is failing; the goal is still the most important thing. When we look at how we approach IT work, when we focus on what needs to be done, hopefully the team performs as a team and meets those expectations.

What happens when a lagging Marine cannot keep up in the hike, or can’t shoot as well as they should? How do they approach a team member who falls short? Marines are part of a family, a brotherhood and if a family member is in need of assistance then the family is responsible to help them. Maybe a brother needs help to move, or a grandparent has health issues, hopefully the surrounding family is there to help accomplish the goal. How do you handle this in the business world? The same way, team members will need help from time to time, it may be the need to cover an on-call shift, and it might be learning a new skill. As a member of the team it is your responsibility to help, remove obstacles that get in the way of completing a goal.

Most work as a Marine is accomplished in Squads. Each individual in the squad may have different areas where they consider the responsible party; there might be a Medic, a Communication expert, someone who is a mechanic for example. In business I can see how teams are created with the same methodology; a database team might have a replication expert, a tuning expert or someone who works well with Active Directory. Teams that work well together have shared goals/responsibilities as well as the individual ones. If we look at the example of a Marine squad the whole squad may have the mission to patrol an area, and each team member contributes with their skills and individual responsibilities. As a DBA Team we are no different, our goal is to support the company database, if the database slows down it is the responsibility of the team to get the performance issue corrected.

Have you taken a look at the team you work with? Do you know where the individual skills that each team member has contributes to the overall goal of the team? It may just be a good time to reflect on how your team works together and how you can help others on the team. Some tasks that individuals consider a waste of time, such as documentation are critical if someone else on the team needs to jump in and help accomplish the goal. If one aspect of the goal is forgotten or neglected, then the overall goal is at risk. Imagine if the Medic in the Marine Squad is unable to help with a medical issue because he is not in physical shape enough to keep up with the team, not only did the Squad lose the medic and is down a person, but if another team member gets hurt and requires medical attention, the squad is now short 2 members. The goal is now at risk.

Actions of team members and team leaders need to be focused on either helping individuals to do their part in reaching the overall goals or the overall goal itself, if team member cannot contribute to reaching the overall goal then quickly they become a liability.

How is your team work?