Additional Articles


External Article

How to Measure Replication Latency in SQL Server AlwaysOn Synchronous Availability Groups

Synchronous replicas in SQL Server Availability Groups promise no data loss, but they don’t promise zero delay; under heavy load they can still fall behind. This article shows how to measure and track that hidden replication delay using SQL Server performance counters, so you can see how well your system keeps up during IO‑intensive operations and plan maintenance more safely.

2025-09-17

External Article

A Rolling Filtered Index in SQL Server

I recently resolved an issue where a query pulling data from the last 30 days would time out due to the table’s size and the lack of a supporting index. Creating a supporting index is possible, but not ideal; it will be very large and may not be useful for most queries and use cases. I wonder how I could implement a filtered index that follows time and is always limited to the last n days.

2025-09-10

External Article

How to Script Dimensions with data build tool (dbt) Macros

In this article, we’ll revisit the dimension models we created. We wrote the entire SQL statement for the dimension by hand, and the dimensions themselves were very rudimentary; they lacked a surrogate key and there were no audit columns (such as insert date and update date). We’ll show you how we can expand the dimensions using Jinja, but also how we can minimize development effort by baking reusable patterns into the Jinja code.

2025-09-03

External Article

Picking the ON or WHERE Clause for the SQL Predicate

Helping people solve T-SQL problems is one of my favorite hobbies. Someone messaged me the other day with a complex query that was almost complete except for one issue. He needed to perform a LEFT OUTER JOIN but had to filter based on a value from the right table. However, when he added the filter, SQL removed rows from the left table. The task was to decide where to place the SQL predicate: in the ON or WHERE clause.

2025-09-01

Blogs

Giving AI Agents Visibility Into SQL Server with MCP

By

I’ve been thinking a lot lately about what it actually takes to make an...

The Book of Redgate: Profits

By

Redgate is a for-profit company. We look to make money by building and selling...

Session Materials for Techorama & DataGrillen 2026

By

I’ve uploaded the slides for my Techorama session Microsoft Fabric for Dummies and my...

Read the latest Blogs

Forums

Even When You Know What You're Doing, You Can Screw Up

By Grant Fritchey

Comments posted to this topic are about the item Even When You Know What...

The New Software Team

By Steve Jones - SSC Editor

Comments posted to this topic are about the item The New Software Team

Database Mail in SQL Server 2022

By Abdellateef Ibrahim

Comments posted to this topic are about the item Database Mail in SQL Server...

Visit the forum

Question of the Day

The string_agg function

We create the following table and then insert some records in it:

create table t1 (
   id int primary key,
   category char(1) not null,
   product varchar(50)
);

insert into t1 values
(1, 'A', 'Product 1'),
(2, 'A', 'Product 2'),
(3, 'A', 'Product 3'),
(4, 'B', 'Product 4'),
(5, 'B', 'Product 5');
What happens if we execute the following query in both Sql Server and PostgreSQL?
select id, 
category, 
string_agg(product, ';')
                 over (partition by category order by id
                 rows between unbounded preceding and unbounded following) as stragg
from t1;

See possible answers