Tracking CPU Use Over Time

SQL Server
A question that I've seen come up frequently just recently is, how to track CPU use over time. Further, like a disk filling up, people want to know how to predict their CPU usage, so that they can easily decide "now is when I upgrade the hardware". Well, the bad news is, that ain't easy. CPU Use Over Time There are a bunch of ways to look at processor usage. The simplest, and probably most common, is to use the Performance Monitor counters such as '% Processor Time'. Query this, you can get an average of the processor usage at a moment in time. Ta-da! Fixed it. I thought you said this was hard Grant. Well, hang on. Are you running on a single processor machine? If so, cool, maybe…
Read More

Containers: Upgrading SQL Server from 2017 to 2019 RTM

Containers
Throughout the pre-release of SQL Server 2019, I was demoing an effectively instant, and magical, container upgrade from 2017 to 2019. However, when I finally downloaded the release bits in a new image, the magic went away. In fact, I got errors, so what happened? Non-root User In SQL Server 2017, the containers were running as root. The thing is, you're basically setting up your instance to run as administrator of the system. We all know that's a no-no. So, in SQL Server 2019, Microsoft fixed this and now the SQL Server instance within the Linux container runs as mssql, much better. However, this immediately causes issues when we're doing an in-place upgrade using a volume on a 2017 container to move to 2019. We're not root any more. Let's…
Read More

Your First Jupyter Notebook

Tools
In April, I said I was going to start learning Jupyter Notebooks. It's November. Let's get going with your first Jupyter Notebook. A quick aside before we start. I think one of the huge strengths that is going to come out of these things is as a runbook. You can share a notebook with someone, they can run the queries on it against their own systems and return the book, with the results to you. That's going to be extremely useful as a troubleshooting tool, but has all sorts of other functionality as well. I strongly suggest you start learning these things, as I am. Azure Data Studio There are a number of ways to create and consume Jupyter Notebooks, but I want to focus on the functionality around data…
Read More

Docker, Git and DBATools

DevOps, Professional Development
For those who don't know, last week was the PASS Summit. It's an amazing event every year, but this last week, I saw a ton of indications that our peers are spotting the changing technology landscape largely defined by three tools, Docker, Git and DBATools. None of those indications resonated quite as much as this tweet from Kevin Hill: 3 things I can no longer justify ignoring: #dbatools Git and #Docker for my dev SQL work@cl @sqldbawithbeard @Kendra_Little and @unclebiguns @GFritchey, I blame you 🤪😂There’s more but those are top 3— SQL Cyclist (@Kevin3NF) November 9, 2019 There are a million things to learn about in our rapidly shifting technological landscape, but I think this assessment, especially the way it was put, "no longer justify ignoring" really nails some of…
Read More

You Are A Coder

DevOps, Professional Development
So, you say you're a DBA. I say you're not. You say you're a system administrator. I say you're wrong. We are all coders now. Every single one of us. You are a coder. Put down the brick and let me explain. Automation There was a time when I would give a presentation to a room full of people and ask, "Who is using PowerShell right now?" and get, 15 hands out of a hundred. Last week at SQL in the City in London, the same question came up and most of the room raised their hands. What's changed? Automation. Automate all the things!!! The simple fact of the matter is, anything easy, repetitive, and quantifiable is, has been, or shortly will be, automated. You should not be spending your…
Read More

Talk To Me At PASS Summit 2019

PASS
I say this all the time, but shockingly few people take advantage. Say hi to me. Please. I'm going to be at PASS Summit next week. I'll be presenting several times, multiple sessions, both community and Redgate. I'll be at the Redgate booth. I'll be walking the halls. I'll hang out at the Community Zone (on the Skybridge) when I can. Heck, I may even attend a session. I want to talk to you. Understand, I may not have a lot of time to sit down and have a long chat. However, please, stop me (unless I'm running because that means I'm late for something), and say hello. This is your formal, open invitation, please, talk to me at PASS Summit 2019. This is what I look like:
Read More

Well Trained Staff

Professional Development
I've had the opportunity in the last month to do a couple of different consulting visits, one private and one through my employer, Redgate. The goals of each of the visits was different, but I received an impression at each that I want to share. We couldn't be talking about two more different organizations. One is a large, global concern, headquartered in the US (named with permission, ChannelAdvisor, go here to get a job after you read about them). The other was a more mid-sized (although with quite a few more servers, as in hundreds more) concern focused in a single European country. I can't share more detail about the organizations than that. Sorry. Teaching Educated People Going into these, I expected to have to lay a lot of groundwork…
Read More

Passwords = A Good Thing

DevOps, Professional Development
Those my friends are, in my opinion, one of the single most wonderful things on earth, white chocolate macadamia nut cookies. Now, you may not like those. So, picture your own, special, favorite indulgence. Not a common indulgence either. Something truly lovely and special. Something important to you. Got it? Good. Now, I want you to equate that indulgence, whatever it might be, with the fundamental security of your systems. Let's imagine for just a moment, that you're developing a new system using the ElasticSearch database, one of the most popular data management systems on the planet right now. Did you know, by default, the basic and trial versions of ElasticSearch have security disabled? So, probably, if you're in development, you started with a trial version. If you just moved…
Read More

Every Execution Plan Is An Estimated Plan

SQL Server
I consider myself to be the most responsible for making such a huge deal about the differences between what is labeled as an Estimated Plan and an Actual Plan. I walked it back in the second edition of the Execution Plans book. Hugo and I completely debunked the issue in the third edition of the Execution Plans book. That is the one you should all be referencing now. As I like to joke, the guy who wrote the first two editions of the book was an idiot (and lest anyone take offense, let's be clear, I'm the idiot). Now, I'm trying my best to make this whole issue more clear. Let's talk about the "different" plans you can capture in SQL Server. Estimated Plan This is where you have a…
Read More

Database Fundamentals #23: Filtering Data

Database Fundamentals, SQL Server
If you've been reading these Database Fundamentals posts, you've already seen the WHERE clause because of your use of it when manipulating data with DELETE and UPDATE statements. It's also been used several times earlier in this series to limit the values returned from a SELECT statement. The primary places where people run into trouble with T-SQL is in the JOIN criteria and the WHERE clause criteria. This occurs because they don’t understand well enough what the filters and operators they’re using will do. They end up returning too much data because they didn’t us the WHERE clause or misapplied it. They also filter too much data out. Just remember, there are even more functions than we go over here in this series. While these basic operators answer most needs,…
Read More