Blue number notebook

How SQL Server stores data types: integers and decimals

This week we’re going to look at how numbers are stored. This post will cover integers (TINYINT, SMALLINT, INT, BIGINT), and decimals (DECIMAL, which is the same as NUMERIC). If you’d like to read the previous posts in this series of how SQL Server stores data types, here’s what we’ve covered: Bit columns Dates and
-> Continue reading How SQL Server stores data types: integers and decimals

brown and white clocks

How SQL Server stores data types: dates and times

This post dives into how SQL Server stores date and time data types in memory and on disk. But first, a note about endianness: CPUs manufactured by Intel and other vendors process binary values in reverse order (known as little-endian), with the least significant byte in a binary value first, and the most significant (i.e.
-> Continue reading How SQL Server stores data types: dates and times

SQL Server 2019 on Docker no longer runs as root by default

In my home lab I have an Ubuntu virtual machine that runs both SQL Server 2017 and SQL Server 2019 in Docker containers.

After SQL Server 2019 Release Candidate 1 was released, when I performed my usual migration to get the latest version, I noticed that the command line for the SQL Server instance was different.

I used sudo docker ps -a --no-trunc to see the full command, which is emulated below (note: this output is heavily abbreviated).

[…]

Accelerated Database Recovery in SQL Server 2019: Choose your own filegroup for the version store

An exciting new feature in SQL Server 2019 is Accelerated Database Recovery (ADR). Resulting from a combination of magic beans and smart software developers (I might be wrong about the beans), there is a good chance that you will find yourself using it. Not only can ADR dramatically improve recovery time with database restores, but
-> Continue reading Accelerated Database Recovery in SQL Server 2019: Choose your own filegroup for the version store

PASS logo

The importance of backups

I have been selected to present a second session for the PASS Summit in November this year. I wrote a few weeks ago about the Linux Learning Path and being a part of that, so I was certainly not expecting this. My second topic is about backing up, testing, and restoring SQL Server backups if
-> Continue reading The importance of backups

Containers and data: you gotta keep ’em separated

There was an interesting conversation on Twitter recently, between Grant Fritchey (blog | twitter), Kenneth Fisher (blog | twitter), Anthony E. Nocentino (blog | twitter), Vicky Harp (twitter), and me about containers and SQL Server. Here’s the summary tweet: Already mentioned, you can use a persisted storage volume to keep your databases around (thanks @_randolph_west
-> Continue reading Containers and data: you gotta keep ’em separated

My IT department installed an antivirus with SQL Server

Time for another short blog post, and this one combines two topics I am very passionate about: security, and SQL Server performance. Let’s start by talking about “antivirus” and what that means in today’s world. The term antivirus (AV) itself is outdated; traditionally, AV products detected malicious activity through fixed patterns of code or patterns
-> Continue reading My IT department installed an antivirus with SQL Server

Using a home-grown Azure Blob Storage solution for SQL Server backups

I’m here for the small organizations, the shops that can’t afford expensive solutions to maintain their environments. I’m here for them because that’s me: the one-person consultancy. I’ve built stuff that’s useful to me, and then made it available for free on GitHub. My first SQL Saturday session, way back in 2015, was the public
-> Continue reading Using a home-grown Azure Blob Storage solution for SQL Server backups

It’s a UNIX system. I know this.

Jurassic Park was a great film. Steven Spielberg brought technology into the film era in a major way with computer generated dinosaurs and some now-classic film lines, many of which came from Jeff “Dreamboat” Goldblum. One other line that seems to be making a comeback is the title of this post, uttered by the character
-> Continue reading It’s a UNIX system. I know this.

Proposed SQL Server defaults: disable lightweight pooling

(This post was updated on 5 February 2022.) A few months ago I suggested that the following settings should be the default for most SQL Server instances. Set cost threshold for parallelism to 50 Disable lightweight pooling if it is enabled Disable priority boost if it is enabled Set optimize for ad hoc workloads to
-> Continue reading Proposed SQL Server defaults: disable lightweight pooling