SQL Server Containers Are Boring
While containers are pretty amazing, the technology doesn't fundamentally change what you're dealing with when working with databases.
Join the DZone community and get the full member experience.Join For Free
Not really, but sort of. The beauty of containers, at least in a dev/test environment, is the ability to spin them up while you need them and then throw them away when you're done. Containers give you a bunch of functionality not otherwise available through a VM.
However, once you've spun up a container, they're so dull.
Why Are Containers Boring, Grant?
I'm so glad you asked.
Recently, I was presenting at SQLIntersection (great show, you should consider attending). I was talking about Query Store in SQL Server 2019. One person in the audience asked, "Can Query Store run inside a container?"
I responded, "Great question, let's check." I then switched over to VS code to show this:
docker run ` --name DemoSharedVol ` -p 1460:1433 ` -e "ACCEPT_EULA=Y" ` -e 'SA_PASSWORD=$cthulhu1988' ` -v C:\Docker\SQL:/bu ` -d mcr.microsoft.com/mssql/server:2019-CTP2.5-ubuntu
Yeah, I had been running all the examples in a container. But why is that boring? Let me show you. This is Azure Data Studio connected to the SQL Server instance running in my container:
This is SQL Server Management Studio:
And this is Redgate SQL Compare:
So, the point is not that containers are actually boring. They're not. They are very exciting. However, once you're up and running with containers, working with them gets a little dull because, it's just SQL Server in there. Once you've made the connections, you're largely back to work as usual.
And yes, Redgate tools can work on SQL Server in containers. Fair warning though, I haven't personally tested every tool, so I'm not currently certain if there are issues anywhere.
I'm only half joking when I say containers are boring and dull. They're not. The technology is amazing. However, that technology doesn't fundamentally change what you're dealing with. It's SQL Server. How do you capture detailed performance metrics in a container? Extended Events. How do you capture aggregated performance metrics and query plans in a container? Query Store. What's the backup syntax for a database in a container? BACKUP DATABASE. We can keep going on this, but I won't.
The excitement in containers is in and around the management of what the container does. Equally exciting is the fact that once you're in a container, it's just good old SQL Server and we know what we're doing with that.
Published at DZone with permission of Grant Fritchey, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Top 10 Pillars of Zero Trust Networks
Getting Started With the YugabyteDB Managed REST API
Merge GraphQL Schemas Using Apollo Server and Koa
Operator Overloading in Java