Press "Enter" to skip to content

Curated SQL Posts

SQL Agent Job Logging Outputs

Eitan Blumin shares some recommendations:

In many SQL Server environments, DBAs configure SQL Agent jobs with retry attempts (which is a smart move to handle transient issues gracefully). But with it comes a hidden pitfall that often goes unnoticed:

Retry-enabled job steps can silently overwrite logs or cause runaway log growth, depending on how the output file is configured.

The culprit? Improper use of append settings and missing time-based tokens in output file paths.

Read on to learn more.

Leave a Comment

Adding Timeouts to Pester Tests

Adam Bertram runs out of time:

Have you ever had a Pester test hang indefinitely, blocking your entire test suite? Maybe it’s waiting for a network response that never comes, or stuck in an infinite loop. Without proper timeout handling, one bad test can ruin your entire CI/CD pipeline.

In this article, you’ll learn how to implement robust timeout handling for Pester tests using PowerShell runspaces, ensuring your test suite always completes in a predictable timeframe.

Click through for the code and explanation.

Leave a Comment

Troubleshooting SQL Server Memory Pressure

Tom Collins has troubleshooting tip for us:

Receiving a regular  ” There is insufficient system memory in resource pool ‘default’ to run this query”  message in the SQL Server Error logs, leading to    unavailability of sufficien resources to connect.  

This query supplied by Jonathan Kehayias   is a great way to start assessing if there is SQL Server memory presure .

Click through for the query and some additional explanation.

Leave a Comment

DISTINCT vs VALUES in DAX

Marco Russo and Alberto Ferrari compare two keywords:

When you begin modelling in DAX, DISTINCT and VALUES often appear interchangeable: both return the list of unique values for a column in the current filter context. In a clean development model, they behave the same, so it is easy to pick one at random – or worse, swap between them without thinking.

However, they are not identical. The subtle difference is crucial in production models that may one day contain invalid relationships or bad data

Read on to see how each works and how they differ in practice.

Leave a Comment

What’s New for Columnstore Indexes in SQL Server 2025

Ed Pollack gives us the lowdown:

Columnstore indexes are a powerful tool for storing analytic data directly in SQL Server. This feature has improved in every version of SQL Server since their inception over ten years ago, and SQL Server 2025 is no exception! 

The newest enhancements are laser-focused on business continuity and performance. Ordered clustered columnstore indexes, ordered non-clustered columnstore indexes, and database/file shrink operations are all given significant boosts that are worth the time to introduce and learn. 

In this article we will dive into each of these changes, how they impact columnstore workloads in SQL Server, and demonstrate their operation. 

Read on to see what we’ve got. Nothing in here is ground-breaking, but it’s a set of nice quality of life improvements.

Leave a Comment

The Small Data Showdown in Microsoft Fabric

Miles Cole does a bit of testing:

First, let’s revisit the purpose of the benchmark: The objective is to explore data engineering engines available in Fabric to understand whether Spark with vectorized execution (the Native Execution Engine) should be considered in small data architectures.

Beyond refreshing the benchmark to see if any core findings have changed, I do want to expand in a few areas where I got great feedback from the community:

I really appreciate the approach behind this, both in terms of sticking to more realistic data sizes for many operations as well as performing this test given all of the recent improvements in each engine.

Leave a Comment

Enumerating Template Types in Power BI

Oscar Martinez lays out the list:

A Power BI Template can mean very different things depending on who you ask. Are we talking about a .PBIT shell, a JSON theme, a turnkey Template App, or merely a thin report wired to a central model?

In this post, we cut through the ambiguity and lay each option side‑by‑side. You’ll learn what’s inside every “template” type and the trade‑offs that matter in real‑world projects—so the next time someone says “just use a template” you’ll know exactly which one fits the bill.

Click through for the post. Also, note that each section is in a drill-through div, so you might accidentally miss some information if you haven’t expanded each topic.

Leave a Comment

Using Barman to Back Up HA-Enabled PostgreSQL Clusters

Semab Tariq reminds us that high availability is not disaster recovery:

Barman is a popular tool in the PostgreSQL ecosystem for managing backups, especially in High Availability (HA) environments. It’s known for being easy to set up and for offering multiple types and modes of backups. However, this flexibility can also be a bit overwhelming at first. That’s why I’m writing this blog to break down each backup option in a simple and clear way, so you can choose the one that best fits your business needs.

Click through for the available options, as well as some recommendations.

Leave a Comment

Why Not Use VARCHAR(MAX) for Everything?

David Fowler explains:

When I mentioned to the developer that it’s probably not the best idea, he turned around and asked me, ‘why not?’

It was a genuine question. Why shouldn’t we just spam VARCHAR(MAX) over all of our columns? On the upside, it would get rid of all those annoying issues that crop up when we try to insert a value that overflows the datatype.

Click through for a video as well as a blog post laying out some of the problem with using VARCHAR(MAX) all willy-nilly.

Leave a Comment