
The Hidden Cost of MAXDOP: CPU Spikes, Query Slowdowns, and What We Learned
Introduction In our TB-scale production system, a few queries had MAXDOP 4 hardcoded into them. The goal was to improve reporting performance. Instead, CPU usage spiked and the entire server slowed down—even simple queries were affected. This article e …
Oracle ASM: Monitoring and Managing (Part 2)
In the first part of this series, we explored the fundamentals of Oracle Automatic Storage Management (ASM)—a powerful volume manager and file system integrated with Oracle Database. ASM simplifies storage by abstracting physical disks into disk groups …

SQL Server Reporting Services is Dead. Is SSIS Next?
It’s official: SQL Server 2022 was the last release for SSRS. At SQLBits this week, Microsoft announced that SQL Server 2025 won’t include SSRS. Instead, all SQL Server 2025 customers will get free licensing for the on-premises Power BI Report Server ( …
How to Choose the Right Tool for MS SQL to PostgreSQL Migration
This whitepaper serves as an in-depth guide for database administrators (DBAs), software engineers, data architects, and even semi-technical managers who are planning or evaluating a migration from Microsoft SQL Server (MS SQL) to PostgreSQL. The migra …

Replacing a Column in a Large Active SQL Server Table
In a previous post I showed how to use a batching strategy to remove large amounts of data from a table while it is being used. Today I will apply the same technique to another common problem- changing the datatype of a column. A common use of this is …
[Video] Office Hours on the Cruise Ship
I’m on a Med cruise, and I stopped the boat today in Corsica to make sure your questions from https://pollgab.com/room/brento got the answers they deserve. I started by mentioning that I’m using a 360 degree camera, but the file size on that video was …

Getting started with Azure Database for PostgreSQL Flexible Server
Along with its many other cloud services, Microsoft now offers Azure Database for PostgreSQL Flexible Server, a database-as-a-service platform based on the PostgreSQL open-source database system. DBAs, developers, analysts, and other users who are fami …

[Poll] How Often Do You Run Maintenance Tasks?
How often do you run backups, corruption checking, index maintenance, and statistics updates? Click here to take the anonymous poll. After you fill it out, you’ll be able to see the average responses from other folks. I’ll circle back next week and sha …

Inside the Walls of Azure SQL MI
Welcome to the prologue article for a three-part series where I try to infiltrate the OS layer of Azure SQL Managed Instance and uncover a few surprises Microsoft didn’t expect me to find. Before we dive into the rabbit holes, let’s zoom out. In the cl …

Free Webcast Next Thursday: Tuning Indexes to Avoid Blocking
Indexing can make or break your SQL Server performance. You need just the right balance: enough indexes to speed up your queries, but not so many that they drag down your inserts, updates, and deletes. Join me as I introduce the “5 & 5 indexing gui …
DevOps vs. SRE: Bridging the Gap, Not Building Walls (Part 1)
Understanding the Divide — DevOps vs. SRE Explained The conversation around DevOps versus Site Reliability Engineering (SRE) is becoming increasingly common in modern software and platform engineering teams. These two frameworks aim to optimize how we …

How to process images and analyze charts with AI
In this article, we will see how to handle images with AI. Sometimes we need to import the text from images into SQL Server. In this article, we will use ChatGPT to convert text from images into text. If you want to know more about ChatGPT, you can rea …
Replicating MySQL databases in Docker Containers
In my prior article, “Running a relational database with Docker”, I showed how to spin up a Docker container with an instance of MySQL running in it. I also showed how you can persist data even when you blow away the container and recreate it by connec …
Dimensional Modeling Case Study Part 3 – Dynamic Days Dimension
Background In this case study series, we’ve explored how to use age and tally tables to support various forms of banding by denormalizing them into a single dimension table. Each banding, such as age groups or day ranges, is built upon a base level of …
Load Data into Snowflake Using Native Snowflake Connector for Python: From Small to Large Datasets
In our ongoing exploration of Snowflake data loading strategies, we’ve previously examined how to use pandas with SQLAlchemy to efficiently move data into Snowflake tables. That approach leverages pandas’ intuitive DataFrame handling and works well for …