SQLServerCentral Editorial

Databases and Disasters

I was just reading about how the Philippines are working to update their databases in support of faster and better responses in the case of an emergency. While I do volunteer for some of the local emergency services, I'm right at the bottom of the heap as just a radio operator. I don't have any […]

SQLServerCentral Article

When INCLUDE Columns Quietly Inflate Your Transaction Logs

In this article, I wanted to test a common assumption we DBAs make – that adding INCLUDE columns to indexes is harmless. I created a FULL recovery test database with a realistic wide Orders table containing extra large VARCHAR columns to simulate an ERP workload. I ran updates and measured transaction log backup sizes before and after adding INCLUDE columns to a nonclustered index. The results shocked me. The update without INCLUDE columns generated a 10 MB log backup, while the same update with INCLUDE columns produced over 170 MB – a 17x increase in log volume. I explain why this happens: INCLUDE columns are physically stored in index leaf rows, so updates affecting them write bigger log records. I also clarify that updating key columns generates even more log than INCLUDE updates because it involves row movement (delete + insert), but INCLUDE updates still cost more log than if those columns weren’t indexed at all. The takeaway is clear – INCLUDE columns are powerful, but they silently increase transaction log generation, impacting backup sizes, replication lag, and DR readiness. Always measure their real cost before deploying to production.

SQLServerCentral Article

Cassandra Springboot Integration With Redis

Article Overview In this article we will learn how to integrate a Spring boot application with Apache Cassandra database and Redis cache. This is an extension to one of our previous articles which demonstrates the steps to set up Apache Cassandra and how to integrate is with Springboot, link shared below. https://www.sqlservercentral.com/articles/cassandra-springboot-integration In this tutorial […]

SQLServerCentral Editorial

People Make Odd Choices

One of my favorite things about going to in-person events is just the time when we're sitting around chatting, out in the hallway, over at the vendor booths, maybe in the speaker room. Any of them. Inevitably, you start to get what I would call "sea stories" (Navy & Coasties, "war stories" for the pickles, […]

Blogs

The Evolution of Data: From Databases to Spark to Lakebases

By

The circle cylinder of life Maybe you’ve noticed all the twenty somethings tight rolling...

Why Microsoft Fabric Signals the Next Wave of Data Strategy

By

In today’s data-driven economy, organizations are no longer asking if they should invest in...

PostgreSQL Timeline: History and Evolution

By

PostgreSQL, often referred to as Postgres, is a powerful, open-source object-relational database system that...

Read the latest Blogs

Forums

How a Legacy Logic Choked SQL Server in a 30-Year-Old Factory

By Chandan Shukla

Comments posted to this topic are about the item How a Legacy Logic Choked...

When INCLUDE Columns Quietly Inflate Your Transaction Logs

By Chandan Shukla

Comments posted to this topic are about the item When INCLUDE Columns Quietly Inflate...

Databases and Disasters

By Grant Fritchey

Comments posted to this topic are about the item Databases and Disasters

Visit the forum

Question of the Day

The Updated Columns List

I have this table in SQL Server 2022:

CREATE TABLE CustomerLarge
  (CustomerID               INT NOT NULL IDENTITY(1, 1) CONSTRAINT CustomerLargePK PRIMARY KEY CLUSTERED
 , CustomerName             VARCHAR(20)
 , CustomerContactFirstName VARCHAR(40)
 , CustomerContactLastName  VARCHAR(40)
 , Address                  VARCHAR(20)
 , Address2                 VARCHAR(20)
 , City                     VARCHAR(20)
 , CountryCode              CHAR(3)
 , Postal                   VARCHAR(20)
)
GO
If I check the columns_updated() function return in a trigger, what is the data returned?

See possible answers