SQLServerCentral Article

Unlocking Interoperability: A Guide to Foreign Data Wrappers in PostgreSQL and Aurora PostgreSQL AWS RDS

Unlocking Interoperability: A Guide to Foreign Data Wrappers in PostgreSQL and Aurora PostgreSQL AWS RDS As a database professional, I often encounter scenarios where data is fragmented across various systems. In today's distributed IT landscape, it's not uncommon for critical business information to reside in different databases, perhaps an on-premise PostgreSQL instance for legacy applications, […]

SQLServerCentral Editorial

Life's Little Frustrations

As with others, I've had to deal with death in the family recently. Some other family members are dealing with cancer (a few friends too). Happily none of us has recently been a disaster zone, but that's happened too. So yeah, big, nasty scary stuff happens in life. However, for most of us, most of […]

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.

Blogs

T-SQL Tuesday #192: What career risks have you taken?

By

I’m honored to be hosting T-SQL Tuesday — edition #192. For those who may...

AI: Blog a Day – Day 3: LLM Models – Open Source vs Closed Source

By

Continuing from Day 2 , we learned introduction on Generative AI and Agentic AI,...

How to Parameterize Fabric Linked Services in Azure Data Factory for Azure Devops Deployment

By

Quite the title, so let me set the stage first. You have an Azure...

Read the latest Blogs

Forums

how to write this query?

By water490

hi everyone I am not sure how to write the query that will produce...

Rollback vs. Roll Forward

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Rollback vs. Roll Forward

Foreign Keys - Foes or Friend?

By utsav

Comments posted to this topic are about the item Foreign Keys - Foes or...

Visit the forum

Question of the Day

Fun with JSON I

I have some data in a table:

CREATE TABLE #test_data
(
    id INT PRIMARY KEY,
    name VARCHAR(100),
    birth_date DATE
);

-- Step 2: Insert rows  
INSERT INTO #test_data
VALUES
(1, 'Olivia', '2025-01-05'),
(2, 'Emma', '2025-03-02'),
(3, 'Liam', '2025-11-15'),
(4, 'Noah', '2025-12-22');
If I run this query, how many rows are returned?
SELECT *
FROM OPENJSON(
     (
         SELECT t.* FROM #test_data AS t FOR JSON PATH
     )
             ) t;

See possible answers