Press "Enter" to skip to content

Month: July 2026

Querying Shodan from SQL Server

Vlad 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 Comment

Workspace Monitoring in Power BI

Chris Webb monitors Power BI:

This 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 Comment

Making Use of the Tabular Editor CLI

Eugene 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 connect to connect to a model
  • te ls to list its contents
  • te vertipaq to run the VertiPaq Analyzer
  • te add Sales/Revenue -t Measure -i "SUM('Sales'[Amount])" --save to add a measure

You 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 Comment

Performance Tuning with Microsoft Fabric Warehouse Query Insights

Koen 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 Comment

Tracking Actual Execution Plans in SSMS

Deborah 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 Comment

Removing and Re-Adding Databases into Distributed AGs

Jordan 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 Comment

Removing In-Memory OLTP from a SQL Server 2025 Database

Niko 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

JSON Index Internals in SQL Server

Hugo Kornelis looks into one of the newest types of index available in SQL Server:

It’s time to continue the series on internals of storage structures. I already covered the more standard storage types in the parts about on-disk rowstorecolumnstore indexesmemory-optimized storage, and memory-optimized columnstores, and in the last episode of this series I started to cover specialized storage structures by looking at XML indexes.

Microsoft introduced limited JSON support in SQL Server 2016. However, it took until SQL Server 2025 before the native json data type and JSON indexes were introduced. So let’s look at how these work under the cover.

Click through to learn more about how SQL Server stores the contents of a JSON index.

Leave a Comment

Finding Internet-Exposed SQL Server Instances

Vlad Drumea does some sleuthing:

In this post I dig through some data that Shodan provides for internet-exposed SQL Server instances, their versions and locations.

I occasionally check Shodan for SQL Server instances that are publicly exposed on the internet for anyone to poke at. I make a LinkedIn post about it (like this one) and then just leave it at that.
So, this time, I’ve decided to dig a bit more into that data and document it here.

Click through to see what Vlad was able to find.

Leave a Comment