Please see https://sqlundercover.com/undercover-catalogue-0-2/ for full details on the Undercover Catalogue and how to obtain it. We've spotted an issue where unicode datatypes were having their size recorded as the data length rather than character count in the 'Tables' module. Another issue affected any MAX datatypes which were having their length mis-recorded. Version 0.2.1 fixes both... Continue Reading →
ALTER TABLE Fails on Replicated Tables With Isolation Level SERIALIZABLE or READ UNCOMMITTED on SQL2012 and Earlier
It's 4am in the morning and my phone starts ringing. A blury eyed, me picks it up to hear the voice of one of our application guys at the other end saying something about an upgrade he was trying to carry out failing. So it turns out that he was trying to run an ALTER... Continue Reading →
Undercover Catalogue 0.2 Released
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 →
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 →