I'm Speaking at SQLBits 2022!

I’m proud to announce that I will be speaking at SQLBits! I had the absolute pleasure of speaking at SQLBits in the past, both in person and virtual, and experienced first hand how great this event is and cannot wait to get back and speak again (in person)! And this year, I have several sessions with some of my best friends on our data community!!! One on building and deploying container based applications in Kubernetes and the other on deploying SQL Server in Kubernetes

Updated Pluralsight Course – Configuring and Managing Kubernetes Storage and Scheduling

My updated course “Configuring and Managing Kubernetes Storage and Scheduling” is now available on Pluralsight here! If you want to learn about the course, check out the trailer here, or if you’re going to dive right in, check it out here!

This course teaches you how to decouple state and configuration from your Pod’s lifecycle using persistent storage and configuration as data and how to schedule Pods to Nodes in your Kubernetes cluster.

Understanding SQL Server IO Size

This blog post shows you how NTFS stores data, what the NTFS Allocation Unit means, and how SQL Server performs IOs of variable size.

How NTFS Stores Data on Disk

A Master File Table (MFT) is the data structure that describes files and directories on NTFS. In Figure 1, you can see an MTF record has several sections describing the metadata about the file and pointers to blocks that make up the file. A block, also referred to as a cluster in Windows, is an abstraction over one or more physical structures (sectors or pages depending on the media) presented by the underlying disk. A block/cluster is also the atomic allocation unit from a file system and has a configurable size. On NTFS, this is referred to as the NTFS Allocation Unit Size and is a configurable attribute of the file system. By default, it is 4KB and can be as large as 2MB. Since a block is a unit of allocation, if a file is between 1 byte and the file system’s allocation unit size, it will take up exactly one block/cluster on the file system. As the file grows, more blocks/clusters are allocated to represent the file. The MFT data structure tracks which blocks make up a file. The block allocator of the file system will try to ensure blocks are physically adjacent on the disk and groups them together in runs.

Configure SQL Server on Linux for Active Directory Authentication

In this post, we’re going to walk through configuring Active Directory authentication for SQL Server on Linux. We will start by joining the Linux server to the domain, configuring SQL Server on Linux to communicate to the domain, and then use adutil to create our AD users and set up Kerberos for SQL Server login authentication.

Before getting started

First, let’s get some environment requirements set. We’ll need an Active Directory domain, a Linux host to install SQL Server on, some DNS records for that host, and the DNS client on that host configured for our environment. Here are the settings I used in this walk-through.

Updated Pluralsight Course – Configuring and Managing Kubernetes Networking, Services, and Ingress

My updated course “Configuring and Managing Kubernetes Networking, Services, and Ingress” is now available on Pluralsight here! If you want to learn about the course, check out the trailer here, or if you’re going to dive right in, check it out here!

It’s time to dig deeper into Kubernetes networking! You will learn Kubernetes cluster networking fundamentals and configuring and accessing applications in a Kubernetes Cluster with Services and Ingress.

This course targets IT professionals that design and maintain Kubernetes and container-based solutions. The course can be used by the IT pro learning new skills and the system administrator or developer preparing for using Kubernetes both on-premises and in the Cloud.

SQL Server on Physical Machine Best Practices

The intent of this post is a quick reference guide based on the recommendations made on Pure Storage Support page in the Microsoft Platform Guide. The target audience for this blog post is for SQL Server DBAs introducing them to the most impactful configurations and settings for running SQL Server on physical machines on Pure Storage.

Physical Host Configuration

Check with your hardware vendor to see if they publish a guide for SQL Server-specific configurations for their server platforms. Here are my thoughts on general guidance around CPU configuration and power management.

Measuring SQL Server File Latency

This post is a reference post for retrieving IO statistics for data and log files in SQL Server. We’ll look at where we can find IO statistics in SQL Server, query it to produce meaningful metrics, and discuss some key points when interpreting this data.

The Source DMF

The primary source for file latency data is the dynamic management function sys.dm_io_virtual_file_stats. The data in this DMF is per file. The query below joins with sys.master_files.

Best Practices for SQL Server on VMware - Distilled

The intent of this post is a quick reference guide based on the recommendation made in “Architecting Microsoft SQL Server on VMware vSphere” April 2019 version. The target audience for this blog post is for SQL Server DBAs introducing them to the most impactful configurations and settings for running SQL Server in VMware.

For the explanations for each of these settings and how to configure the base VMware infrastructure, please read the “Architecting Microsoft SQL Server on VMware vSphere” guide and consult with your VMware administrators and experts.

Setting Permissions on Files Inside a Container for SQL Server

This post will walk you through setting file permissions on database files copied into a container. The SQL Server process sqlservr running in containers runs as the non-privileged user mssql. The appropriate permissions on files are needed, so the SQL Server process has the proper access to any database files, log files, and backup files.

Start up a container

First up, let’s start up a container. Here’s we’re starting up SQL Server 2019 CU11 and attaching a Docker data volume for our persistent data.

My Desktop Setup - Updated

Every once in a while when I’m recording a Pluralsight course, I’ll take a photo of my desk to let people see the behind the scenes of the process. Well, my friend Steve Jones (@way0utwest) encouraged me to write a desk setup post…so here we go!

My Desk

Desk

Autonomous SmartDesk 2 - Home Office

Most standup desks come at a much higher price point, and this one lands somewhere between $379-$500 depending on the features. While it’s pretty minimalist, it gets the job done. I have several presets for various heights depending on the current task I’m performing. One tip for those who record audio, I always stand when recording. It helps me with enunciation and also controls the tone of my voice better. A standing desk is a must if you’re going to be recording production quality audio. I think there are some health benefits too to standing desks. :)