Categories
Misc

Streamlining Email Alerts with Sub-addressing

Automated email alerts lead to information overload. Emails for failures, confirmation, or just for information. So, we build rules and filters to try and handle them, hoping nothing new slips through the net. How about an alternative to bring consistency and streamline your inbound emails? Let’s take a look at Sub-addressing to overcome the overload. What is […]

Categories
Azure

Legacy Problems for a Modern Solution: Establishing a Linked Server into Azure

Connecting different versions of SQL Server can allow us to combine or transfer data between environments. This can become a challenge when the versions are really different. Have you tried to connect SQL Server 2008 to a SQL database in Azure? – it can throw up a few curve balls. In this post we’ll look at how […]

Categories
T-SQL Tuesday

T-SQL Tuesday #181 – The Festive Tech Calendar ft. Query Store

Rounding out T-SQL Tuesday for 2024, Kevin’s invitation brings it together with the Festive Tech Calendar (more on that at the end), and asks us to write about a Microsoft Data Platform announcement that could be considered a gift. For context, this post is targeted at developers or engineers who don’t have the time to dig into SQL Server […]

Categories
SQL

You Probably Don’t Need ODBC Functions

This past week I stumbled across an ODBC Scalar Function for the first time. What was this which lay before me? Is that SQL with curly braces?! It returned the current date like this: It’s a function, but not quite as we know it. They’re surrounded by { curly braces } and prefixed with fn. The kind of thing I’d […]

Categories
SSIS

Wrestling with Temp Tables in SSIS Data Sources

When handing data we can make use of temporary tables to aid with separation or performance. However, they don’t always play nice with Integration Services packages. If we set a source to call a procedure returning the contents of a temporary table we’ll see an error like below: The process is unable to determine the […]

Categories
SQL

Adding NOT NULL Columns. Fast.

When adding a new column and wanting to default the value for existing records, it used to be a painful task. As of SQL Server 2012 that became much easier. But nobody told me, until Simon casually mentioned it in conversation recently. I had to see it for myself, so I thought I’d share for those who […]

Categories
T-SQL Tuesday

T-SQL Tuesday #180: Good Enough is Perfect

This month, Josephine has asked how we achieve good enough without burning out in the pursuit of perfect. When designing data solutions, aiming for perfection can lead to endless iterations, moving targets, delays, and – as Josephine points out – burnout. A quote which encapsulates the essence of this for me: Perfection is the enemy of progress Winston Churchill If […]

Categories
SQL

Why Bother Indexing Foreign Key Columns?

Last week I shared a script to identify foreign keys which weren’t indexed. What we didn’t discuss in detail was why it can be important to index these columns. Here we’ll demonstrate the two areas we can see great benefits by introducing the indexes. Query optimisation We’ll start with the typical benefit of indexing – query optimisation. The index […]

Categories
SQL

Identifying Missing Foreign Key Indexes

Foreign keys provide us with confidence in the integrity of the code we develop. In this post we identify indexing opportunities around foreign keys to increase performance of their usage. Creating an index on a foreign key column (or columns) can provide additional performance in two key situations: That’s all well and good if we’re […]

Categories
Azure SQL Server

Configuring Database Mail for SQL Agent Notifications in Managed Instance

SQL Agent jobs allow us to schedule and automate tasks on a SQL Server instance. Crucially, when things go wrong we need to know about them. That’s why we use notifications. Setting up Operators and job Notifications is as expected on a Managed Instance. However, when it comes to sending the notifications we may have […]