SQL Server is a massive, complex product.
One DBCC command can have over one hundred thousand lines of code.
Once you’ve learned the basics… creating tables, inserting data, backing up databases… then what?
The daily routine of a database developer or DBA often doesn't involve internal structures.
I’ve been driving for 30 years but don’t know the parts to my car’s engine. Well, I’m not mechanic either.
If you want to understand how SQL Server really operates then you have to undertake a study of how the two core engines of SQL Server work with one another.
The storage engine stores data and the optimizer processes queries.
This course will provide you with a solid foundation in storage internals. We are going to cover how data is stored at a very low level.
You’ll learn the vernacular specific to the page and several new commands that will provide us with some deep insight into what any how SQL Server stores data.
We will cover the data row structure and the transaction log and by the end of this course you’ll understand how data moves in SQL Server.
This knowledge will help you troubleshoot SQL Server at a level most DBAs simply don’t grasp. We will look at examples and code syntax to determine what works and what doesn’t.
Any relational database is a collection of objects, the table being the most fundamental.
However, what they are and what they do are two different things. Relational databases have entities called transactions that transfer and manipulate data.
This course will focus on how and what these transactions are moving.
Thanks for you interest in SQL Server Internals.
I’ll see you in the course!!!
Are you at the right place?
I want to make sure this course is right for you.
Use the code provided in the course for the examples and demos throughout the course.
When storing data in SQL Server it's all about the page.
Let's learn about it in this lecture.
There are two kinds of system data types in SQL Server.
Let's define them in this lecture.
We use two undocumented tools to get a forensic like look at our data structures.
Undocumented just means not supported, these are safe to run on any test box.
Let's take a look to see if SELECT * is really worse than Select column1, column1... etc.
I'll give you the tools in this lesson to find out either way.
Let's conclude what we've learned in this section.
Not that many new terms but understanding what they do is critical to understanding the storage engine.
Let's go over these now.
Page are grouped together into 8 contiguous rows called extents.
Let's learn about these extents in this lecture.
Pages move between the buffer pool and the disk subsystem.
Let's find out the specifics of how they move in this lecture.
In this lesson we will take a brief look at partitions
Let's demo partitions we learned about in the previous lesson.
What is an allocation unit? Let's find out in this lecture.
A heap is a table without a clustered index. Let's learn about it in this lesson
Let's do a demo on how allocations work in a heap.
Clustered indexes sort the data on disk. Let's learn about them in this lesson.
Let's take a brief look on clustered index allocations.
Let's complete a demo on clustered indexes.
Let's learn how non-clustered indexes work.
Let's look at the overhead caused when altering a table.
Let's cover a few terms we learned in this section
Let's detail the parts of the transaction log.
What is an LSN and what are the three sections of numbers that comprise it?
Transaction logs don't continue forever. Let's learn how the wrap around.
This is a great function that gives us critical insight into what's in the transaction log.
Truncate is indeed logged. Let's learn to what extent it's logged.
Let's add another function to find out who dropped an object.
Let's use a unknown function to dump the entire contents of a physical transaction log.
I've been a production SQL Server DBA most of my career.
I've worked with databases for over two decades. I've worked for or consulted with over 50 different companies as a full time employee or consultant. Fortune 500 as well as several small to mid-size companies. Some include: Georgia Pacific, SunTrust, Reed Construction Data, Building Systems Design, NetCertainty, The Home Shopping Network, SwingVote, Atlanta Gas and Light and Northrup Grumman.
Experience, education and passion
I learn something almost every day. I work with insanely smart people. I'm a voracious learner of all things SQL Server and I'm passionate about sharing what I've learned. My area of concentration is performance tuning. SQL Server is like an exotic sports car, it will run just fine in anyone's hands but put it in the hands of skilled tuner and it will perform like a race car.
Certifications are like college degrees, they are a great starting points to begin learning. I'm a Microsoft Certified Database Administrator (MCDBA), Microsoft Certified System Engineer (MCSE) and Microsoft Certified Trainer (MCT).
Born in Ohio, raised and educated in Pennsylvania, I currently reside in Atlanta with my wife and two children.