Brent Ozar has a bonus-sized round-up:
For this month’s T-SQL Tuesday, I invited y’all to tell me how you know a query’s gonna be bad when you open it.
Click through for a carnival of pain.
Leave a CommentA Fine Slice Of SQL Server
Brent Ozar has a bonus-sized round-up:
For this month’s T-SQL Tuesday, I invited y’all to tell me how you know a query’s gonna be bad when you open it.
Click through for a carnival of pain.
Leave a CommentAndy Brownsword’s appeal is becoming more selective:
When developing Power BI models, we don’t always want to refresh the entire dataset before we start working with the data. We can speed up the refresh – and therefore our development – by reducing the volume we’re working with.
Here we’ll look at a couple of ways to use parameters to adapt production-ready models to reduce and tailor data volumes for development.
Click through to see how.
Leave a CommentVlad Drumea makes use of a new procedure in SQL Server 2025:
In this post I’m querying Shodan‘s REST API directly from SQL Server using SQL Server 2025’s sp_invoke_external_rest_endpoint stored procedure.
In my previous post I looked through Shodan for publicly exposed SQL Server instances.
And, at one of the steps, pulled some of the data into SQL Server to get a better sense of the major versions of SQL Server that were out there on the public internet.
At that point I mentioned I would go into the details about that process in a separate post, so here we are.
Click through to see how.
Leave a CommentEugene Meidinger opens up the command line interface:
The Tabular Editor CLI (TE CLI) is a command-line interface that makes it possible to view, query, build, manage, and test semantic models programmatically. This is different from Tabular Editor 2 or 3, which have a graphical user interface (GUI) and buttons that you click to take actions and make changes. In the CLI, you type and submit
te <command>like:
te connectto connect to a modelte lsto list its contentste vertipaqto run the VertiPaq Analyzerte add Sales/Revenue -t Measure -i "SUM('Sales'[Amount])" --saveto add a measureYou can also execute these commands in a pre-written script. This typically happens in the terminal. A terminal can be a standalone application that you open (like the default Windows or Mac terminals) or embedded in an application like VS Code or Cursor where you can see files in an explorer:
Click through for more info on how it works. Tabular Editor CLI will be free for another two months (as of the time of this post), so it’s a good time to see if this makes sense for your use cases.
Leave a CommentThis week, in the announcement about support for Fabric Pipelines in Workspace Monitoring, I noticed that it came with an Operations Agent that actively monitors and analyses Pipeline activity. And that got me thinking, since Workspace Monitoring also contains Power BI activity data, why not create an Operations Agent to actively monitor Power BI too?
Read on for a fairly simple demonstration of how it works.
Leave a CommentDeborah Melkin continues a series on query plans:
This is the second part of the series. Hopefully you are all caught up on Part 1. If not, you can see that here.
Part 2 is about Actual Execution Plans. I have the (slightly edited for garbled words) transcript below for those who prefer to read, with references to places in the video. Otherwise, watch the video and let me know what you think.
Click through for the video and transcript.
Leave a CommentKoen Verbeeck troubleshoots query performance:
We are in the process of building a data warehouse in Microsoft Fabric. Since we have good knowledge of T-SQL, we are using Fabric Warehouse as the database engine. We are hitting some performance issues in our ETL and we would like to investigate further, but traditional SQL Server DMVs don’t give the results we are hoping for. How can we troubleshoot performance in the Fabric Warehouse?
Click through to see how.
Leave a CommentJordan Boich administers a database in a distributed availability group:
I’ve seen a lot of great blog posts and content out there talking about Distributed Availability Groups (DAGs). However, I haven’t come across much of anything covering the actual administration of them. Especially for those choosing to use a DAG as their Disaster Recovery (DR) strategy. If you’re choosing to use a DAG for your DR, then you need to know how to perform basic administration. The goal of this post is to cover the gaps in knowledge out there, and cover the nuances of DAG administration as the methods and steps reveal nuances that normal Availability Groups do not necessarily present.
This post is going to cover how to remove and add a database from a Distributed Availability Group. Removing a database from an AG and having to add it back is a common maintenance or troubleshooting step that many DBAs face. But when it comes to DAGs there are some extra nuances and steps you have to keep in mind depending on if you’re working on the global primary AG or the forwarder.
Click through for the steps, as well as some of the pain points you might run into along the way.
Leave a CommentA cyber-criminal on the run, a wingsuit jump between planes at 5,000 meters, and 24 million flight records to sift through. This is the most cinematic KDA case yet.
Click through for a rather extreme scenario and how Tom was able to solve it.
Leave a CommentNiko Neugebauer concludes a series on in-memory OLTP:
Over the years, I have contributed with a reasonably big number of posts on the topic of In-Memory OLTP (aka Hekaton) and I did a couple of focused presentations on this wonderful feature as well. I love the idea, I love the path where the feature was going, and call me wrong* and overall I think that if the leadership team of Microsoft Data Platform understood the potential, it would have grown much bigger and more impactful.
Today I am writing the last post on Hekaton, for the foreseeable future. For me its journey has come to an end. The Odyssey has ended. With the arrival of SQL Server 2025, we have finally received a functionality of removing the In-Memory Filegroup from the database. The introduction of this functionality is closing the loop after 11 years since Hekaton introduction.
I agree with Niko. The promise was considerable but the actual implementation was frustrating, especially if you had cross-database queries. At the time this feature came out, the company I worked for could have made great use of it, except that a majority of queries we had used replicated lookup data that existed in a separate database. As a result, we were able to make good use of memory-optimized temp tables for table-valued parameters, but not much else.
Leave a Comment