SQL Server with Mr. Denny


July 7, 2011  2:00 PM

How HyperBac worked for me

Denny Cherry Denny Cherry Profile: Denny Cherry

I recently installed HyperBac on a clients SQL Server to reduce the amount of space needed to store their backups.  Specifically we were looking to reduce the amount of space the log backups took, but I was curious to see how much space the full backups would be reduced by.

The full backups were ~53 Gigs in size, and the transaction logs averaged about 800 Megs every 12 minutes.  After installing HyperBac, we reduced the full backups down to ~14 Gigs, and the log backups down to about 150 Megs every 12 minutes.  Additionally the full backup went from 57 minutes down to 14 minutes greatly reducing the amount of time that the production disks have extra IO load on them.

Installation and configuration was very simple.  I just installed the software on the server, thankfully with no reboot required and changed the backups to use hbc as the file extension instead of .bac and .trn.

Overall the space savings for 1 days worth of backups went from 107 Gigs to 35 Gigs.  This allowed us to save a very large amount space on the backup drive, removing the need to purchase more storage for the back drive for a long time to come.  All in all, well worth it for the few hundred dollar price tag of the software.

Denny

July 5, 2011  2:00 PM

What does WITH (NOLOCK) actually mean

Denny Cherry Denny Cherry Profile: Denny Cherry

Contrary to popular belief WITH (NOLOCK) isn’t actually the SQL Server “Turbo” button.  While it may appear that way, there’s actually some stuff going on in the back that makes it look this way.  Understanding what is happening is critical to using WITH (NOLOCK) correctly.

When you use the NOLOCK query hint you are telling the storage engine that you want to access the data no matter if the data is locked by another process or not.  This is why is can make it appear that the query is just running faster as you are no longer waiting for other processes to complete their writes, you are simply reading what ever is in the buffer pool or on disk at the time that you get to it.  This leads to a problem called dirty reads, meaning that you may not be getting the same values that you would get it you were to run the query again.  This isn’t necessarily a bad thing, just something to be aware of.  Usage of the NOLOCK hint may be just fine in your application, or it may be incredibly bad.

When other users are making changes (insert, updates and deletes all do this) to the data in the tables within the database, they take locks on the pages which they are modifying.  These locks tell the SQL Server that no one else can use these pages until the change has been completed.  Once these locks have been released your select statement can continue until it either finishes or comes to another page which is locked.

When using the NOLOCK hint you ignore the locks and read what ever data is available at the time.  This can cause problems when joining foreign keys as you can end up with different data being returned if the foreign key value is updated (depending on the execution plan that your SELECT statement uses).

Many people believe that one reason that NOLOCK works is because the execution plan changes when you use the NOLOCK hint.  This isn’t true.  The NOLOCK tuning hint isn’t used by the query optimizer, but instead by the data access engine as this isn’t used to change the way that the data is found, but instead it simply changes the way the locks are accessed as the data is read from the buffer cache and/or the disk.

Hopefully this will give a little insight into what is happening when you use the “SQL Turbo button”.

Denny


July 1, 2011  2:00 PM

SQL Server Consolidation at #SQLExcursions

Denny Cherry Denny Cherry Profile: Denny Cherry

The fifth and final session that I’ll be presenting at SQL Excursions is on SQL Server Consolidation.  There are lots of ways to consolidate SQL Server databases, and some times the wrong method of consolidation is selected by people.  Knowing all of the options when working on a SQL Server Consolidation project is key to a successful consolidation project.  In this session we’ll look at how to evaluate which consolidation option is best for different kinds of databases so that you can maximize your SQL Server infrastructure and minimize consolidation costs without impacting post consolidation performance.

I hope that the sessions that Tom and I are presenting at SQL Excursions sound interesting and would help you and your employer succeed in your future projects.  Personally I feel that the costs to go to an event like this are minimal compared to the massive savings that a company could realize over time from the information which their DBA would be able to bring back to the office.

If you haven’t signed up yet, now is the time.

See you in Napa September 22nd-24th,

Denny


June 30, 2011  6:13 PM

Take a virtual motorcycle ride around Ketchikan, AK

Denny Cherry Denny Cherry Profile: Denny Cherry

A few weeks ago I went on SQL Cruise with Kris (my wife) and a bunch of other SQL geeks.  When the ship was stopped in Ketchikan, Alaska while a bunch of people were going in the water (crazy right?) I hopped on the back of a Harley and went riding through town as part of a motorcycle tour.  Well Kris was smart enough to purchase a little high def video camera that I was able to strap to the front forks of the motorcycle so I could record the video, and here it is.  It’s hosted by Facebook as they allow for longer videos than YouTube, but it’s in three parts because they only allow 20 minute long videos.

All told the tour was about 3.5 hours long (the SD card ran out of space a little before the end), but after cutting out where we stopped to look at stuff, take pictures, etc. there is about 48 minutes of actual video of me riding around the city (the camera tipped down for about 10 minutes as well, so I cut that out as well as it wasn’t much fun to look at the front fender).  There are about 38 miles of paved road in the city, and we road for about 45 miles so we covered most of the town.

[kml_flashembed movie="http://www.facebook.com/v/10150290696208638" width="400" height="300" wmode="transparent" /]

[kml_flashembed movie="http://www.facebook.com/v/10150290738158638" width="400" height="300" wmode="transparent" /]

[kml_flashembed movie="http://www.facebook.com/v/10150290752693638" width="400" height="300" wmode="transparent" /]

Denny


June 30, 2011  2:00 PM

SQL Excursions and Index Internals #sqlexcursions

Denny Cherry Denny Cherry Profile: Denny Cherry

The fourth session that I’ll be giving at SQL Excursions will be on index internals.

In this session we’ll dig into the internal structures of indexes.  We will explore the differences between clustered and non-clustered indexes, what’s laid out within each page of the indexes and how the SQL Server uses the data within the indexes to find rows quickly.

Knowing how indexes actually work is key to understanding why indexes improve query performance.  Knowing that indexes will help performance is good (and hopefully you know this), but knowing how the index actually works is even more important so that you can make proper indexes so that you aren’t making extra indexes that aren’t needed as having to many indexes will actually slow down SQL Server not make it faster.

If you haven’t signed up yet, now is the time.

See you in Napa September 22nd-24th,

Denny


June 29, 2011  2:00 PM

High Availability and SQL Excursions

Denny Cherry Denny Cherry Profile: Denny Cherry

My third SQL Excursions session I’d like to talk about is going to be about high availability.  There are lots of high availability options for SQL Server, especially when SQL Server “Denali” is one of the high availability options.  In this session we’ll be looking at all the available HA options so that you understand all the options, and when each of the various high availability options should be used.  Not all high availability options are created equal, and using the wrong high availability option could be just as bad if not worse than not having a high availability option.  When you don’t have a high availability option you know it, when you have the wrong one you have a very false sense of security.

If you haven’t signed up yet, now is the time.

See you in Napa September 22nd-24th,

Denny


June 28, 2011  2:00 PM

Lets learn about Virtualization at SQL Excursions

Denny Cherry Denny Cherry Profile: Denny Cherry

The next session from SQL Excursions that I want to talk about is my session on virtualization.  During this session, we will be talking about some best practices about running SQL Server in a virtual machine so that you can get the best performance possible out of your virtual SQL Servers.  We will also look at when is a good time to not visualize your SQL Server.  With VM World happening just a few weeks before there should be some great new VMware (and probably Hyper-V as well) announcements happening just before SQL Excursions, so you can be sure that the information we’ll be presenting is very up to date, and we’ll probably to talking about some futures for one or both platforms as well.

Being able to get SQL Server up and running within a virtual machine is key in today’s IT world.

If you haven’t signed up yet, now is the time.

See you in Napa September 22nd-24th,

Denny


June 27, 2011  7:39 PM

SQL Excursions Sessions

Denny Cherry Denny Cherry Profile: Denny Cherry

As SQL Excursions is getting closer, I wanted to talk a little about the sessions that I’ll be presenting at the event which I’ll be doing over this week.  The sessions that I’ll be presenting are:

  • Storage
  • Virtualization
  • High Availability
  • Indexing Internals
  • Server Consolidation

All told I’ll be presenting for about 8 hours over the two days, with Tom LaRock (blog | @sqlrockstar) presenting over the other 8 hours.  Because this isn’t a traditional conference not all the sessions will be locked in at an hour long.  Some may be longer, some shorter depending on how the day moves along.  The goal with these sessions is to get the questions answered, not to get the session presented in the time allotted.

The first session on the list above is Storage, so I’ll start with that session for today’s blog post.  During this session on storage I’ll be talking about some of the more advanced storage options which are available for storage array tuning as well as data replication and how these can be used to improve your storage performance not just for your SQL Servers, but overall for your entire environment as well as to reduce your backup windows.

If you haven’t signed up yet, now is the time.

See you in Napa September 22nd-24th,

Denny


June 27, 2011  2:00 PM

#SoCalCodeCamp Slide Decks

Denny Cherry Denny Cherry Profile: Denny Cherry

This weekend at the Code Camp I gave three presentations. Here are the slide decks in case you wanted to download them.

What’s New in Manageability for Microsoft SQL Server Code-Named Denali
Indexing Internals
Using SQL Server Denali’s Always On

If you attended the sessions, don’t forget to rate the sessions on SpeakerRate.com/mrdenny.

Denny


June 23, 2011  1:02 PM

How to find out to someone is cheating on a job interview

Denny Cherry Denny Cherry Profile: Denny Cherry

If you are the person giving the technical interview you’ve got a couple of jobs on your hands.  First is the most obvious, to gauge the technical skills of the person sitting in front of you.  The second is to see if the technical skills that they are presenting to you are actually their own, or if someone has coached them to get past your technical interview.  The third is to see if they’ll be a good person to fit on your team.

Gauging Their Technical Chops

This is the most obvious thing that needs to be done, as this is the whole reason that they are there sitting in front of you.  You need to make sure that what’s written on their resume is actually what they know.  Before you start giving them the third degree, make sure that the resume that you have is actually the correct one.  Often recruiters will make some slight adjustments to the person’s resume so that the experience listed more closely matches your job requirements.  They are doing this because they don’t get paid unless you hire their client, and the only way that’s going to happen is if their client matches the requirements on your post posting.

Once the person in front of you has said yep, that’s mine or they’ve given you a corrected one (I always bring a couple of copies with me just in case) the grilling can start.  Start by asking some basic questions about everything listed on their resume that they know about.  It’s OK if you jump around, it’ll make them think more and you’ll get more realistic answers from them.  For things that they say they are an expert level on, dig into those topics.  Ask crazy obscure stuff if needed, really see how well they know it.  I like asking people to rate themselves on a 10 point scale on various topics.  Also ask them how their co-workers would rate them on the topics.   If you are sitting in front of me, and you tell me that you are a 9 out of 10 on index tuning, you had better at least know who Kimberly Tripp is (being able to name her favorite food and the name of her company is some bonus points).  You also better know some pretty good information about the B-Tree structure that SQL Server uses, how SQL navigates the tree, etc.

Some people believe that they need to ask the exact same questions to every person that they interview, and this isn’t true.  Every interview should be customized for the person that you are talking to.

Are they blowing smoke up your back side?

Depending on how well someone was coached this can be a bit harder.  The deeper you dig into a topic the easier it’ll be.  If they have to sit a think for a minute for each answer, that’s probably a sign that they don’t know the answer.  If they take a kind of wandering path to the answer they probably know it on their own, they just need to find it in there.  If they can only answer the basic questions on anything you ask, they were probably coached (see my point above about asking them if the resume you have is correct).  Let them know that not knowing a few answers is OK.  Not everyone knows everything about everything in SQL Server.  If they say that they do they are lying.

One thing to note, is that if they just get up and leave they probably figured out that you’ve figured out that they don’t know squat.

Are they are good fit for your team

Once you’ve figured out if they are a good technical fit for your company, you need to see if they will be a good social fit for your team.  Get the team (or some of the team) together with the person and just chat and see how it goes.  The talk can be about the weather, sports (yuck), food, SQL, what ever, as long as HR isn’t going to fire anyone for the topic at hand (the smoking hot receptionist probably isn’t the best topic).  Someone could be the best technical person ever, but if they aren’t a good social fit with the team, there is going to be some major friction at some point and that isn’t going to serve anyone at all.  Now I’m not saying that you need to be best friends with this person from day one, but you need to be able to fight, argue and agree with each other without coming to blows and without anyone’s ego getting to bruised.  This is especially true of junior and senior level people.  Junior level people need to be able to take criticism without wanting to quit or kill you, and senior level people need to be able to have people ask them questions without feeling the need to kill everyone in the room.

Hiring a specialist without having a specialist around

One of the problems that I’ve seen a lot of companies have when it comes to hiring new staff, if that they don’t have a specialist in that field that can conduct a really good interview.  For example, it takes a knowledgeable VMware person to interview a VMware admin candidate, just like it takes a knowledgeable Windows admin to interview Windows admin candidates.  For times like this it might be good to bring in a person from the outside that can be trusted to conduct the technical interview.  Paying for a few hours of a senior consultants time to do the technical part of the interview can safe you a lot of time and money if you bring the wrong person on.  You want someone who is going to conduct the actual interview.  A pre-written set of questions isn’t going to help you out much.  A proper interview needs to be a fluid conversation not just a caned set of questions.

While this outside person doesn’t necessarily know the specifics of your shop, you can give them the run down pretty quickly about the technology that you have, the problems you’ve faced, and they can craft this into an interview when talking to the candidates.  For the record, I am more than happy to help out with this if you need a hand, just drop me an email.

Denny


Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: