Welcome to my first ever T-SQL Tuesday contribution. I will recap in case you’ve never heard of T-SQL Tuesday before. Various members of the SQL community blog at the same time on the second Tuesday of every month.
This month’s theme is based on a book called Death March. It covers poorly planned projects which the book calls “death march software projects”. You can read more about this months theme here.
Based on this book we’ve been invited this month to post about a project we worked on or were impacted by that went horribly wrong. For me two spring to mind. First was when project management went wrong. Because it resulted in job losses I will avoid going into detail about it. Another was a SQL Server migration which I will discuss here.
I was once involved in a hardware migration project. We had tested the SQL Server upgrade. We were told that software was fine so we assumed it had been tested. However when we performed the upgrade we discovered that there were issues with the application.
Luckily I was able to contact somebody who knew the application well. He was so dedicated he helped me fix the issue the day before his wedding. We managed to avoid an embarassing situation.
Main reason I’m telling you this is to stress how important it is to test and plan database migrations. Thoroughly test your migrated databases against whatever applications you intend to use. Test as many features as you can.
If you are migrating to a new version of SQL Server use the Database Migration Assistant to identify issues beforehand to save you any suprises. You can select multiple data sources in the tool if needed. If looking to cover a large estate you might want to look at using the dmacmd.exe command line version instead. If you use this version there is a PowerBI dashboard on GitHub you can use with it.
Also if migrating from an older version of SQL Server I recommend keeping the original compatibility level to begin with. After that turn on the Query Store feature in the database to collect a baseline. After collecting a baseline change the compatibility level to see if you experience any changes due to the new Cardinality Estimator.
Thanks for reading my first ever T-SQL Tuesday contribution. I’m sure during today you will read many other project related horror stories. Hopefully you will learn from some of our project issues.