Sometimes going back-to-the-basics is the best way to fully understand something. Some of us have been doing things in a certain way for so long that we’ve missed a very basic / important point. So… SQLskills is introducing a SQL101 series of blog posts to do just that – get back to the basics! These will be posts hitting some of the core / critical points around technologies that we often see used the WRONG way or where there are many misunderstandings that lead to serious problems.

This is the landing page for all posts in the SQL101 series and will update automatically to include links to new SQL101 posts as they are published.

Enjoy!

  • Capturing DBCC CHECKDB Output
    by Erin Stellato on May 8, 2020 at 1:00 pm

    If you haven’t experienced database corruption in your SQL Server career and had to pore over DBCC CHECKDB output, you’re a lucky soul.  If you encounter corruption, the most important thing you can have is the output, because this helps determine your next course of action. Step 1 First, you need to be running CHECKDB […] The post Capturing DBCC CHECKDB Output appeared first on Erin Stellato. […]

  • SQLskills SQL101: Why are Statistics so Important?
    by Kimberly Tripp on January 20, 2020 at 2:43 am

    In my years working with SQL Server, I’ve found there are a few topics that are often ignored. Ignored because people fear them; they think they’re harder than they actually are OR they think they’re not important. Sometimes they even think – I don’t need to know that because SQL Server “does it for me.” […] The post SQLskills SQL101: Why are Statistics so Important? appeared first on Kimberly L. Tripp. […]

  • SQLskills SQL101: Why do some wait types need to be ignored?
    by Paul Randal on May 23, 2018 at 10:50 pm

    SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. Wait statistics analysis is one of my […] The post SQLskills SQL101: Why do some wait types need to be ignored? appeared first on Paul S. Randal. […]

  • SQLskills SQL101: Why does repair invalidate replication subscriptions?
    by Paul Randal on April 4, 2018 at 8:19 pm

    SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. Whenever I’m teaching and recovering from corruption, […] The post SQLskills SQL101: Why does repair invalidate replication subscriptions? appeared first on Paul S. Randal. […]

  • SQLskills SQL101: Is the recovery interval guaranteed?
    by Paul Randal on March 21, 2018 at 11:48 pm

    SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. One of the concepts I find people […] The post SQLskills SQL101: Is the recovery interval guaranteed? appeared first on Paul S. Randal. […]

  • SQLskills SQL101: Why does my heap have a bunch of empty pages?
    by Paul Randal on January 24, 2018 at 7:11 pm

    SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. Here’s a question I’m often asked (paraphrasing): […] The post SQLskills SQL101: Why does my heap have a bunch of empty pages? appeared first on Paul S. Randal. […]

  • SQLskills SQL101: Using Backup to URL for Azure VM Migrations
    by Tim Radney on December 11, 2017 at 2:00 pm

    Beginning with SQL Server 2012 SP1 CU2, we’ve been able to backup SQL Server directly to the Windows Azure Blob service. This makes migrations to Azure virtual machines much easier for getting databases staged as well as actual migrations. I’ve used this method numerous times with client migrations due to its simplicity and ease of […] The post SQLskills SQL101: Using Backup to URL for Azure VM Migrations appeared first on Tim Radney. […]

  • SQLskills SQL101: How can corruptions disappear?
    by Paul Randal on October 17, 2017 at 7:23 pm

    As Kimberly blogged about earlier this year, SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. Every […] The post SQLskills SQL101: How can corruptions disappear? appeared first on Paul S. Randal. […]

  • SQLskills SQL101: Should you kill that long-running transaction?
    by Paul Randal on October 10, 2017 at 3:16 pm

    As Kimberly blogged about earlier this year, SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. One […] The post SQLskills SQL101: Should you kill that long-running transaction? appeared first on Paul S. Randal. […]

  • SQLskills SQL101: Running out of ints and bigints
    by Paul Randal on October 3, 2017 at 3:39 pm

    As Kimberly blogged about earlier this year, SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. We’re […] The post SQLskills SQL101: Running out of ints and bigints appeared first on Paul S. Randal. […]

  • SQLskills SQL101: Recovery Models Matter
    by Tim Radney on September 20, 2017 at 3:13 pm

    I was recently working with a client when I noticed a job about shrinking transaction logs. I asked the client about the job and found out that they had a weekly scheduled processes to switch the recovery model of a database from full to simple, shrink the transaction log, and then switch back to the […] The post SQLskills SQL101: Recovery Models Matter appeared first on Tim Radney. […]

  • SQLskills SQL101: Readable secondary performance problems
    by Paul Randal on August 16, 2017 at 3:11 pm

    As Kimberly blogged about earlier this year, SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. Yesterday […] The post SQLskills SQL101: Readable secondary performance problems appeared first on Paul S. Randal. […]

  • SQLskills SQL101: Log shipping performance problems
    by Paul Randal on August 15, 2017 at 6:56 pm

    As Kimberly blogged about earlier this year, SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. One […] The post SQLskills SQL101: Log shipping performance problems appeared first on Paul S. Randal. […]

  • SQLskills SQL101: REBUILD vs. REORGANIZE
    by Paul Randal on August 3, 2017 at 7:06 pm

    As Kimberly blogged about earlier this year, SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101. Often […] The post SQLskills SQL101: REBUILD vs. REORGANIZE appeared first on Paul S. Randal. […]

  • SQLskills 101: The Other Bad Thing About Clearing Procedure Cache
    by Erin Stellato on July 27, 2017 at 4:44 pm

    Every time you execute a query against SQL Server, it goes through optimization and compilation and a query plan is generated. Most of the time that plan goes into cache (there’s always exceptions, which is a discussion for a separate time), which means that the next time that query executes, SQL Server can use the […] The post SQLskills 101: The Other Bad Thing About Clearing Procedure Cache appeared first on Erin Stellato. […]

  • SQLskills SQL101: Validating SQL Server Backups
    by Tim Radney on June 16, 2017 at 3:18 pm

    At the Spring SQLintersection conference, I presented my session Understanding SQL Backups and Restores. During this session I primarily talk about how to create a solid recovery strategy and how to restore SQL Server backups. I cover full, differential, transaction log, and piece-meal restores. During the session, I stress how important it is to practice […] The post SQLskills SQL101: Validating SQL Server Backups appeared first on Tim Radney. […]

  • SQL 101: Parallelism Inhibitors – Scalar User Defined Functions
    by Jonathan Kehayias on June 7, 2017 at 8:51 pm

    As Kimberly blogged about recently, SQLskills is embarking on a new initiative to blog about basic topics, which we’re calling SQL101. We’ll all be blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all […] The post SQL 101: Parallelism Inhibitors – Scalar User Defined Functions appeared first on Jonathan Kehayias. […]

  • SQLskills SQL101: NUMA Support in SQL
    by Jonathan Kehayias on May 26, 2017 at 12:13 pm

    I’ve blogged about NUMA and SQL Server in the past and how SQLOS automatically handles NUMA configurations for SQL Server by default, meaning typically as a DBA you don’t need to customize any configuration options for SQL Server to optimize it’s internal structures for NUMA systems.  I’ve also talked about vNUMA issues in virtual machines […] The post SQLskills SQL101: NUMA Support in SQL appeared first on Jonathan Kehayias. […]

  • SQLskills SQL101: Database Maintenance for Azure SQL Database
    by Tim Radney on May 17, 2017 at 10:16 pm

    I’ve been presenting on Azure SQL Database to groups all over the world. A common question that I’m asked is around maintenance on Azure SQL Databases. Since backups are handled by the platform, some think that index and statistics maintenance and consistency checks are also handled by the platform. This just isn’t the case. The […] The post SQLskills SQL101: Database Maintenance for Azure SQL Database appeared first on Tim Radney. […]

  • SQLskills SQL101: File Extensions for SQL Server Database Files
    by Tim Radney on March 31, 2017 at 11:55 pm

    I recently had a client reach out to me about database performance dropping drastically. I asked if anything had changed recently on the server and they told me that all they had done was increase the number of files for tempdb from 1 to 8 per best practice. Knowing that this shouldn’t have a negative impact […] The post SQLskills SQL101: File Extensions for SQL Server Database Files appeared first on Tim Radney. […]

  • SQLskills SQL101: Updating SQL Server Statistics Part II – Scheduled Updates
    by Erin Stellato on March 29, 2017 at 1:00 pm

    In last week’s post I discussed the basics of how automatic updates to statistics occur in SQL Server.  This week I want to talk about scheduled (aka manual) updates, because as you might remember, we really want to control when statistics are updated. In terms of updating statistics you have multiple options, including: Update Statistics […] The post SQLskills SQL101: Updating SQL Server Statistics Part II – Scheduled Updates appeared first on Erin Stellato. […]

  • SQLskills SQL101: Partitioning
    by Kimberly Tripp on March 27, 2017 at 1:57 pm

    Continuing on our path to understanding the basics and core concepts, there’s a big topic that’s often greatly misunderstood and that’s partitioning. I know I’m going to struggle keeping this one an introductory post but I’ve decided there are a few critical questions to ask and a few very important things to consider before choosing […] The post SQLskills SQL101: Partitioning appeared first on Kimberly L. Tripp. […]

  • SQLskills SQL101: Updating SQL Server Statistics Part I – Automatic Updates
    by Erin Stellato on March 23, 2017 at 1:00 pm

    One of my favorite topics in SQL Server is statistics, and in my next two posts I want to cover how they are updated: either by SQL Server or by you. We’ll start with updates by SQL Server, and these happen automatically. In order for automatic updates of statistics to occur, the AUTO UPDATE STATISTICS […] The post SQLskills SQL101: Updating SQL Server Statistics Part I – Automatic Updates appeared first on Erin Stellato. […]

  • SQLskills SQL101: Indexes on Foreign Keys
    by Kimberly Tripp on March 21, 2017 at 1:41 pm

    As many of you know, we started our SQLskills SQL101 series a couple of weeks ago… it’s been great fun for the whole team to go back through our most common questions / concerns and set the record straight, per se. We’ve still got a lot of things to discuss but indexing is one of […] The post SQLskills SQL101: Indexes on Foreign Keys appeared first on Kimberly L. Tripp. […]

  • SQLskills SQL101: Indexing Basics
    by Kimberly Tripp on March 14, 2017 at 2:53 am

    SQLskills introduced our new SQL101 recently and well… indexing is something that everyone needs to get right. But, it’s not a simple task. And, as I start to sit down to write a SQL101 post on indexing, I suspect I’m going to struggle keeping it simple? However, there are some core points on which I will focus […] The post SQLskills SQL101: Indexing Basics appeared first on Kimberly L. Tripp. […]

  • SQLskills SQL101: The SQL Server ERRORLOG
    by Erin Stellato on March 9, 2017 at 2:00 pm

    One of the most useful logs you can review when there’s a problem in SQL Server is the ERRORLOG.  It may not always be the answer to your problem, but it’s a good place to start. When you initially install SQL Server it only keeps the most recent six (6) ERRORLOG files, in addition to […] The post SQLskills SQL101: The SQL Server ERRORLOG appeared first on Erin Stellato. […]

  • SQLskills SQL101: Trace Flags
    by Erin Stellato on March 2, 2017 at 2:00 pm

    “You should always use trace flag X for a SQL Server install.” “Have you tried trace flag Y?” “We fixed the problem using an undocumented trace flag.” If you’re new to SQL Server, you might have heard or read some of the above statements.  If you’ve never used a trace flag, you might wonder why […] The post SQLskills SQL101: Trace Flags appeared first on Erin Stellato. […]

  • SQLskills SQL101: Azure SQL Database Pricing Models
    by Tim Radney on March 1, 2017 at 1:51 pm

    Microsoft has implemented a database-as-a-service/platform-as-a-service environment known as Azure SQL Database. In this environment, the hardware and instance configuration is taken care of for you. In this environment, you manage and support the databases. Finally we have a production ready cloud database. When looking at pricing models, you will find DTUs, eDTUs, and DSU, which of […] The post SQLskills SQL101: Azure SQL Database Pricing Models appeared first on Tim Radney. […]

  • SQLskills SQL101: Stored Procedures
    by Kimberly Tripp on February 22, 2017 at 4:18 pm

    Sometimes going back-to-the-basics is the best thing to do to fully understand something. Some of us have been doing things in a certain way for so long that we’ve missed a very basic / important point. So… SQLskills is introducing a SQL101 series of blog posts to do just that – get back to the […] The post SQLskills SQL101: Stored Procedures appeared first on Kimberly L. Tripp. […]