SQL Server with Mr. Denny


June 10, 2015  6:00 PM

Buffer Pool Extension File Location

Denny Cherry Denny Cherry Profile: Denny Cherry
SQL Server, SQL Server 2014

If you are planning on using Buffer Pool Extension (BPE) in SQL Server 2014 or SQL Server 2016 you need to think about where you want to put the BPE file on the SSD, especially as it relates to the Windows OS Security on the file system.  The most important think to remember when placing the BPE file on the hard drive is that you want to place it into a folder, not directly into the root of the drive.  The reason for this is that the Windows OS has User Access Controls (UAC) enabled which will prevent the SQL Server from writing to the root of the drive.  Even if you have UAC disabled today (which I don’t recommend) if it gets enabled in the future this could cause problems with access to the BPE file.  It is much easier to simply put the file into a folder and not have to worry about UAC biting you.

Denny

June 10, 2015  5:58 PM

Recommended reading from mrdenny for June 05, 2015

Denny Cherry Denny Cherry Profile: Denny Cherry
SQL Server

This week I’ve found some great things for you to read. These are a few of my favorites that I’ve found this week.

This weeks SQL Server person to follow on Twitter is: way0utwest also known as Steve Jones

Hopefully you find these articles as useful as I did.

Don’t forget to follow me on Twitter where my username is @mrdenny.

Denny


June 3, 2015  6:00 PM

Why don’t the memory usage numbers from Task Manager and vSphere match?

Denny Cherry Denny Cherry Profile: Denny Cherry
Performance Monitor, Performance monitoring, SQL Server, Task Manager, VMware vCenter

This question comes up a lot. Windows Admins and DBAs see one number in Task Manager and the VMware Admins see another number in vSphere. And often the VMware Admins want to reduce the amount of memory that the server has available because of the memory utilization number. Here we see two screenshots from a server at a client’s site. One from task manager and one from vSphere.

TaskManager     vSphere

You can see that according to vSphere the VM is using about 37 Gigs of it’s memory, when the host has 60 Gigs allocated.  Looking at Task Manager we see that all the memory is in use (43 Gigs with Windows saying that 18 Gigs is available).  When I look at the PLE for this server, the number is shockingly slow, just 44 seconds (the server is a replication distributor so that actually makes sense).  But we can still see a major disparity in the numbers between Task Manager and vSphere.

So who’s right?

That’s the problem, they both are.

Task Manager is right because that’s the amount of RAM in use within the OS.  vSphere is also right because it’s showing the amount of memory which has been recently used (I’m not really sure what recently actually means in this instance).  The problem is that the vSphere number isn’t measuring things in a way that makes sense for a database server (SQL, Oracle, DB2, MySQL, etc.).

Database platforms store data in memory in order to make that data available for use as needed without hitting the disks again.  Just because that data hasn’t been used in an hour (well outside what VMware considers to be “Active”) doesn’t mean that the data should be purged from RAM forcing the database to read the page back from the disk.  After all RAM is cheap, and high speed disk isn’t.  If the VM admin forces the amount of RAM to be lowered they aren’t allowed to then complain that SQL is pushing the disks harder, because that is exactly what will happen.

The Active Guest memory value is useful for servers running IIS, application servers, etc.  For SQL Server it’s useless as databases manage their memory much differently than most other applications.  The VM admins are going to need to start trusting that when the DBAs request 64 Gigs of RAM that they actually know what they are talking about.

Thanks,

Denny


May 29, 2015  6:00 PM

Recommended reading from mrdenny for May 29, 2015

Denny Cherry Denny Cherry Profile: Denny Cherry

This week I’ve found some great things for you to read. These are a few of my favorites that I’ve found this week.

This weeks SQL Server person to follow on Twitter is: heigesr2 also known as Rick Heiges

Hopefully you find these articles as useful as I did.

Don’t forget to follow me on Twitter where my username is @mrdenny.

Denny


May 25, 2015  6:00 PM

Database Point In Time Recovery vs. Storage Point In Time Recovery

Denny Cherry Denny Cherry Profile: Denny Cherry

It’s no wonder that people in our industry have such a hard time figuring out what platforms can actually perform what features. Probably one of the most confusing is the phrase “Point In Time Recovery”. Both databases and storage (and virtualization) people use this phrase and it means two VERY different things depending on who is saying it.

Database People

What database people use this phrase they mean that they want to be able to restore the database to any point in time.

Storage and Virtualization People

What storage and virtualization people mean is that they can restore the system to the point in time that the snapshot was taken.

 

The test that I always provide people with is that, if I can a phone call today saying that the database needs to be restored to January 17, 2015 at 1:34:14pm can your solution meet that requirement without knowing about the requirement back on January 17th.  If the answer is yes, then you have point in time recovery, if the answer is no then you do not have point it time recovery.

The problem is really just a phrasing issue more than anything else.  In reality both the database backup solutions and the storage/virtualization backup people (think array snapshots, Veeam, etc.) can do point in time restores.  Database backups done with the transaction logs can restore to any point in time, while the storage and virtualization folks can restore to pre-defined points in time.  While the phrases are the same, the actual meaning behind them is VERY different.

When talking to storage and virtualization folks who want to take away the ability to do backups from the database team we need to get a clear understanding between everyone involved as to what is expected on the database backups, and from a technical perspective not from a marketing / sales / English language perspective.

Denny


May 22, 2015  5:49 PM

Recommended reading from mrdenny for May 22, 2015

Denny Cherry Denny Cherry Profile: Denny Cherry
CDC, SQL Azure, SQL Server, SQL Server 2005, VMware vSphere, Windows Azure

This week I’ve found some great things for you to read. These are a few of my favorites that I’ve found this week.

This weeks SQL Server person to follow on Twitter is: jscottmoss also known as Scott Moss

Hopefully you find these articles as useful as I did.

Don’t forget to follow me on Twitter where my username is @mrdenny.

Denny


May 20, 2015  4:00 PM

India Here I Come

Denny Cherry Denny Cherry Profile: Denny Cherry
IT conferences, SQL, SQL Server

I’m thrilled to report that I’ll be presenting at the first SQL Server conference in India later this year. The conference organizer Amit Bansal made the official announcement last week. A new conference is a huge undertaking for the organizers, and bringing in speakers from outside the US is a huge commitment as international airfare isn’t cheap.

The conference is this August 27th-29th in Bangalore, India and includes a day of precons, which I’ll be delivering one of. The event team is currently putting together a survey for the local community to see what precon session they’d like to see the most, so once the results of that survey are in I’ll know what session I’m presenting.

I look forward to seeing India for the first time and I look forward to meeting new people at the conference.

Once I’ve presented my first session I’ll have officially presented on four continents (North and South America, Europe and now Asia). Only three more to go (granted one of them is a lot harder than the other two.

Denny


May 15, 2015  8:45 PM

Recommended reading from mrdenny for May 15, 2015

Denny Cherry Denny Cherry Profile: Denny Cherry

This week I’ve found some great things for you to read. These are a few of my favorites that I’ve found this week.

This weeks SQL Server person to follow on Twitter is: MilosSQL also known as HP

Hopefully you find these articles as useful as I did.

Don’t forget to follow me on Twitter where my username is @mrdenny.

Denny


May 13, 2015  4:00 PM

Know Your Monitoring Scripts

Denny Cherry Denny Cherry Profile: Denny Cherry
SQL

If you are running monitoring scripts against your SQL Server database you need to know what those scripts do. As even a pretty basic monitoring script can cause some pretty big problems. Recently I was called to look at a large SQL Server who’s CPU had run up to almost 100% and users were getting huge numbers of timeouts.

Looking at the server using sp_whoisactive I could see massive waits in tempdb all on PAGELATCH wait types. Looking at sys.dm_exec_requests I could see that everything that was waiting was waiting on page 2:1:128. This was a pretty strange page ID for everything to be waiting on. Do I busted out DBCC PAGE and looked at the headers for the page. This page belongs to the system object sysobjvalues which stores meta-data about tables. The only reason that one of these system objects like this should be locked is if there’s an open transaction which created an object and never rolled back.

So I switched to the tempdb database and ran DBCC OPENTRAN. This showed a user transaction had been hanging around for about 90 minutes (it took a while for me to get the call and get VPNed in) and this session belonged to a user not the application. They checked with the user and he didn’t have any sessions running in SSMS.

So I ran DBCC INPUTBUFFER for the session with the open transaction and saw a query which was querying against various DMVs. So at some point this query window was used to begin a transaction, then create a temp table then do stuff (either with the temp table or without it). The transaction was never rolled back or committed so SQL hung onto it’s locks on those system objects, effectively preventing the application from creating temp tables or other temporary objects.

As soon as I killed this session, which forced it to roll back the application processes were able to begin flowing through the system again and everything got back to normal within about a minute or so.

So it just goes to show that you don’t have to be running some complex query against the SQL Server for all hell to break loose. One open transaction with a few small locks taken in just the right place can cause some serious problems pretty fast.

Denny


May 8, 2015  11:22 PM

Recommended reading from mrdenny for May 08, 2015

Denny Cherry Denny Cherry Profile: Denny Cherry
SQL, SQL Server

Microsoft Ignite was great, but I still found the time this week to find some great things for you to read. These are a few of my favorites that I’ve found this week.

This weeks SQL Server person to follow on Twitter is: murilocmiranda also known as Murilo Miranda

Hopefully you find these articles as useful as I did.

Don’t forget to follow me on Twitter where my username is @mrdenny.

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: