What Is a Time Series Database?

A time series database (TSDB) is a database built specifically to store and query data that’s tied to timestamps. This could include things like sensor readings, stock prices, server metrics, or IoT data. Basically anything where the when is just as important as the what.

Standard relational databases can technically store this kind of data, but they weren’t designed for it. Time series databases are optimized from the ground up for time-ordered data, which means they’re faster, more efficient, and more practical for time-heavy workloads.

Read more

JSON Indexes in SQL Server 2025

Before SQL Server 2025, indexing JSON data meant creating a computed column to extract the value you cared about, then indexing that column. It works, and it’s still a solid approach, but it requires you to know upfront which paths you’ll query, maintain separate columns for each one, and keep those columns in sync with any schema changes. SQL Server 2025 introduces JSON indexes as a native alternative. It’s a single index structure that covers the JSON column directly, without the computed column overhead.

JSON indexes are currently in preview and only available in SQL Server 2025 on-premises. They aren’t available yet on Azure SQL Database, Managed Instance, or Fabric. That said, things could be different by the time you read this article.

Read more

What is a Serverless Database?

In the context of cloud databases, a serverless database is one that automatically manages all server resources for you, including scaling up and down based on actual usage, even scaling to zero when not in use. Unlike traditional databases where you provision specific server capacity upfront, serverless databases dynamically allocate resources as needed and charge you only for what you actually consume.

The term “serverless” doesn’t mean there are no servers involved. Servers still exist, but you don’t have to think about them. The cloud provider handles all capacity planning, scaling, and infrastructure management automatically in the background.

Read more

Understanding JSON_CONTAINS() in SQL Server 2025

JSON_CONTAINS() is a new function introduced in SQL Server 2025 that lets you check whether a value exists at a specific path in a JSON document. It returns an integer. This is 1 if the value is found, 0 if not, and NULL if any argument is null or the path doesn’t exist. That makes it a natural fit for WHERE clauses when you’re filtering rows based on JSON content.

It’s currently in preview (although this will almost certainly change soon) and only available from SQL Server 2025.

Read more

JSON Data Type in SQL Server: What It Is and How to Actually Use It

SQL Server added native JSON support back in SQL Server 2016, and as of SQL Server 2025, it officially introduced a dedicated JSON data type. If you’re on an older version, you’ve probably been storing JSON in NVARCHAR(MAX) columns and parsing it with functions like JSON_VALUE() and OPENJSON(). That still works, but the new JSON type gives you validation, better storage, and cleaner semantics.

And along with the JSON type, we get some new JSON related features. Let’s take a quick walk through.

Read more

What is Database Normal Form?

When you’re designing a database, you need some way to organize your data that makes sense. You could just throw everything into one massive table, but that leads to problems pretty quickly. Duplicate data everywhere, weird update issues, and a general mess that’s hard to maintain.

Normal forms give you a framework for organizing data in a way that avoids these problems. They’re a series of rules or guidelines that help you structure your database tables properly.

This process of organizing data according to normal forms is called normalization, and it’s one of the fundamental concepts in relational database design.

Read more

Understanding SQL Server’s Query Plan Cache

The query plan cache (also called the plan cache or procedure cache) is an area of SQL Server’s memory that stores compiled execution plans for queries and stored procedures. When you execute a query, SQL Server compiles it into an execution plan (basically, a set of instructions for retrieving and processing data). Now, instead of recompiling that plan every time the same query runs, SQL Server stores it in the plan cache for reuse.

This caching mechanism significantly improves performance. Compiling a query plan requires CPU time and resources. The optimizer must analyze statistics, evaluate indexes, consider join orders, and make numerous decisions about the most efficient execution strategy. By caching plans, SQL Server avoids repeating this work for queries that execute repeatedly.

Read more

Complete Guide to SQL Server Data Types

SQL Server provides a solid set of system data types that handle everything from storing tiny integers to massive text blobs. Understanding these types is an important part of designing efficient databases, mainly because picking the right data type can save storage space and improve query performance.

This article breaks down all the data types available in SQL Server (as of SQL Server 2025), organized by category. Each type includes its max length, precision, scale, and whether it can be nullable.

Read more