A few weeks ago I gave a presentation at the 24 Hours of Pass Summit Preview. During my session, a demo broke and I had to ignore it. Later I found the issue and blogged about it. What was neat for me is that I didn't need to keep my code up or apps open, but I still found the issue quickly. I found it because I have a DevOps process that instruments and tracks everything.
This happened to me a few years ago. I was at a SQL Saturday and demoing one of the Redgate tools. There was an error and I couldn't move changes to a downstream database, which threw me off. That was the point of the talk. I decided to debug on stage (or behind the podium in this case), looking through the logs. Within a few minutes, I had found the issue and solved it. A real life DevOps story in action.
The idea of DevOps is what most talented developers and DBAs do. They ensure that they don't just make changes on a whim, and they don't depend on SSMS to be kept open. If they find an error, they save it, or they ensure their process captures all relevant logging. I've built systems like this, but many of the modern tools we use in DevOps automatically do this. Build servers and release servers make it a point of capturing all logging, so when that PoSh or CLI system runs, the output is saved and available for solving problems. And the data is available for improving the process, which is the goal.
At various times in my career, I haven't followed a set process, I've "tried" things in SSMS, a configuration dialog, or a command window that haven't worked. I've sometimes remembered to undo them, sometimes not. I've lost track of what I've run often, just because I was working in an ad hoc manner. That led me to learn to do better, which led me to embrace and follow many of the principles and ideas that people call DevOps today. These are things I learned to do those things 15 years ago.
Lots of DevOps is about using automation and tools, and those really do help. Having a pipeline for software changes, and one for configuration changes, reduces the chance of mistakes and problems. It also lets you instrument and track everything that happens. However, these are the easy things. These are the things that really talented professionals already do in their daily work.
The hard part of building software is building a culture that learns to work together instead of separately, or worse, adversarially. It is truly hard to work together and concern yourself with the customer first, and your job last. Or put the QA person, the DBA, the developer, or someone else ahead of what makes your day easier. It's also hard for management to build a framework where we don't have incentives to put our own interests ahead of others. If we can do that, and build a DevOps style process, things work smoother, and our software will be better. Maybe more importantly, we'll enjoy our time at work.
The Voice of the DBA podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music.
How to track every change to your SQL Server database
See who’s changing your database, alongside affected objects, date, time, and reason for the change with SQL Source Control. Get a full change history in your source control system. Learn more
The industry standard for comparing and deploying SQL Server database schemas
Trusted by 71% of Fortune 100 companies, SQL Compare is the fastest way to compare changes, and create and deploy error-free scripts in minutes. Plus you can easily find and fix errors caused by database differences. Download your free trial
This article (1) demonstrates an artificial neural network as it learns to recognize alphanumeric characters and (2) elucidates the mathematics of the feed-forward/back-propagation algorithm the artificial neural network employs. More »
R is a powerful language for manipulating data and creating visualizations. In this article in the series, Robert Sheldon demonstrates how R can be used within Power BI Desktop to import data and to create visualizations. More »
A common mistake, and one I make frequently myself is to use a string in place of an identifier, or... More »
Question of the Day
Today's Question (by Steve Jones):
Which of these are database scoped configuration options starting in SQL Server 2016? (choose 2)
Think you know the answer? Click here, and find out if you are right.
We keep track of your score to give you bragging rights against your peers.
This question is worth
1 point in this category: Database Scoped Configuration.
We'd love to give you credit for your own question and answer.
To submit a QOTD, simply log in to the
This comprehensive and authoritative guide will teach you the DAX language for business intelligence, data modeling, and analytics. Leading Microsoft BI consultants Marco Russo and Alberto Ferrari help you master everything from table functions through advanced code and model optimization
Pick up your copy of this great book today at Amazon today.
Yesterday's Question of the Day
(by Steve Jones):
What are the defaults for the automatic tuning feature in Azure? (choose 3)
The options for CREATE_INDEX and FORCE_LAST_GOOD_PLAN are enabled. The DROP_INDEX option is disabled.
This newsletter was sent to you because you signed up at SQLServerCentral.com.
Feel free to forward this to any colleagues that you think might be interested.
If you have received this email from a colleague, you can register to receive it here.