We're pleased to announce the release of the Undercover Catalogue 0.2 and can be downloaded from https://github.com/SQLUndercover/UndercoverToolbox/tree/master/SQLUndercoverCatalogue The new version brings with it a number of new modules as well as the thing that we're most excited about, a Power Bi dashboard to make keeping track of your SQL Server estate even easier. Power BI... Continue Reading →
Availability Groups: When Your Synchronous Secondary isn’t Synchronous
During a recent DR scenario I came across a slight misinterpretation in how availability groups with replicas in synchronous commit behave. How An Availability Group With A Synchronous Secondary Should Behave Under Normal Circumstances Normally, if we've got a secondary replica in synchronous commit mode, our primary can't commit any transactions until that transaction has... Continue Reading →
Happy New Year, Here are our Most Popular Posts of 2018
Firstly, all of us at SQL Undercover would like to wish you a very Happy New Year and all the best for 2019. To sign off for the year, here's a quick run down of the most popular posts from SQL Undercover in 2018. Thanks to everyone who's supported us over the last 12 months.... Continue Reading →
Quickly Compare Data in Two Tables Using CHECKSUM and CHECKSUM_AGG
There are times when we need to compare two tables and figure out if the data matches. I often see a number of ways of doing this suggested, most are quite slow and inefficient. I'd quite like to share a quick and slightly dirty way of doing this using the CHECKSUM and CHECKSUM_AGG functions. CHECKSUM()Just... Continue Reading →
Managing Logins and Users Across An Availability Group
What's the deal with logins and availability groups? I'm sure that we all, when creating a login that accesses a database that happens to be part of an availability group, diligently go and create that login on all secondary replicas, don't we?! Of course, when that AG fails over to another replica, we want to... Continue Reading →
A curious case of case when and Null values
For some reason I have always written my Case statements using the following logic: It wasn't until recently that I noticed that there is another syntax that can be used with the CASE expression, the interesting part about this other form is that it is rather aesthetically pleasing when dealing with multiple WHEN clauses... Continue Reading →
High CPU and Query Store, A Story of Spinlock Heartache
This is going to be a quick look at an issue that we recently encountered, I'm not going to go in depth into spinlocks and what they are (perhaps that could be the subject of a future post). We were enjoying a nice peaceful afternoon when we hear panicked shouting that a SQL Server had... Continue Reading →
T-SQL Tuesday – Non-SQL Server Technologies
So, this month's T-SQL Tuesday topic is to think about a non-SQL Server technology that we want to learn. For me, I'm going to pick machine learning. As a DBA, I've always looked at machine learning as a thing for the BI guys.ย I'm a DBA after all why do I care about that? Well,... Continue Reading →
Signing Stored Procedures That Access Multiple Databases
A while back I wrote a post,ย Digitally Signing a Stored Procedure To Allow It To Run With Elevated Permissions Recently Manish Kumar asked an interesting question, what do you do if your proc accesses multiple or even all the databases on the server? So, instead of giving him a fuzzy answer in reply, I thought... Continue Reading →
Identifying delays between SQL calls using SQL profiler
One of the common goto methods for query specific slowness which can be replicated via an application can be to start up a trace or extended events session whilst replicating the issue, we all know about the dangers of running these sessions without sufficient filtering so ensuring that correct filtering is applied and sessions are... Continue Reading →
