Ever wonder what’s “normal” out there for SQL Server adoption rates, hardware sizes, or numbers of databases? Let’s find out.
Our SQL ConstantCare® service lets users send data in about their SQL Servers and get health & performance advice via email. Users can opt in to share their anonymized data to get better recommendations overall.
This data isn’t a full picture of the SQL Server ecosystem. Lemme be really clear: this is by no means a random sample of the full population. It’s just a picture of the kinds of servers where people want an inexpensive second opinion. It doesn’t include giant corporations, hospitals with PII, or tiny businesses who just shove a SQL Server in the corner and then never take a second glance at it (and if my experience is any indication, never back it up.)
Even though it isn’t a full picture, with 3,570 database servers sharing data as of March 1, there’s still a lot of useful information in here for the community. Understanding what servers are out there will help you put context around where your own servers rank, and helps the community better build training material that’s relevant for most users.
This population report is just my attempt to help clear up the fog of war. Microsoft simply doesn’t give us any adoption information (even though SQL Server phones home by default.) If you believed what you saw onstage at conferences and in Microsoft’s changing certification programs, you’d think no one still bothers with self-hosted SQL Server, but the few who do have already migrated to SQL Server 2017 and 2019. This report is my humble attempt to keep Microsoft honest.
Let’s start with a simple question:
What versions are the most popular?
Or if you’re into percentages:
Thoughts on reading those charts:
- The adoption rates haven’t changed much since the SQL ConstantCare Fall 2019 Population Report. SQL Server 2019 is almost at 1% adoption, with 25 intrepid users running it in production. (About 1/3 are on 2019 RTM, 1/3 CU1, and 1/3 CU2.)
- SQL Server 2008 still has more adoption than Azure SQL DB and Azure Managed Instances combined.
- If you purely compared SQL Server 2019 vs Azure, you’d think that Azure is the future because it’s outpacing SQL Server 2019 adoption. I just don’t see that as true because the vast majority of shops I know on SQL Server 2012/2014/2016 aren’t making adoption plans for Azure SQL DB or Managed Instances yet. Instead, they’re either comfortable where they are, or they’re migrating to VMs in the cloud. (I do think the default new database platform will be PaaS several years from now, but not for migrations of existing databases. We’re not there yet.)
- SQL Server 2016 & 2017 market share has gone up a little, with these two capturing 52% of the market. 2014 is still outpacing 2017 though (21% vs 18%.)
- About 1 in 10 SQL Servers are no longer under support. (The number is slightly higher since we don’t monitor 2000 or 2005.)
I’m going to continue publishing the numbers in this format (only showing the current population) for the first year of the survey, but on the first year’s anniversary, I’ll switch to graphs that show trending and year-over-year changes.
How about development? Are people maybe testing their apps on newer versions?
What versions are people using in development?
Both 2017 and 2019 got nice bumps here over last quarter – people are starting to develop and test more against 2017 and 2019. However, 2019’s low showing here is a pretty good leading indicator that SQL Server 2019 has a tough road ahead if it’s going to crack a 10% adoption rate in the next couple/few quarters.
I think about this chart a lot when I’m designing training. When is the right time to start building developer training material for SQL Server 2019? It’s a tricky timing act: you need to be skilled-up before you adopt the new version, and I need to have the training material ready to go before then. However, if I focus on building 2019-specific training material right now, it could be 6-12-18 months before it really starts to pay off. Judging by this chart, I’d be better off building 2017-specific training material since there are a lot of people who still haven’t adopted it yet (roughly 80%.)
For the rest of the census report, I’m going to focus on just the production servers.
How much data do servers have?
I think this chart really helps to set the rest of them in perspective:
Data sizes have actually grown a little since the last report. Y’all aren’t doing archiving, ha ha ho ho. There’s been a slight shift up from the 0-25GB market up to the 25-125GB market. Not huge, though.
A lot of the SQL ConstantCare® population have what I would consider to be a fairly small server: 30% of them are hosting <25 GB data, and 69% are smaller than the Stack Overflow demo database. That’s why I like using that database so much for training: it’s large enough that it represents (and challenges) a good chunk of the audience.
About 15% have 1TB of data or more, but even though that number sounds low, the population is still large. That still gives us about 500 servers’ worth of metadata to help guide folks who are in those larger tiers. There are a over a dozen instances in the population with over 10TB – good times there.
Is Enterprise Edition normal for larger databases?
Forgive the awkward visualization – I set myself a 2-hour goal to do this analysis and crank out the blog post, so I’m on a bit of a tight timeline – but I think the numbers are pretty neat:
At 0-125GB of hosted data, Standard Edition is twice as common as Enterprise Edition.
Around 200-750GB, the numbers even out.
Up in the 1TB+ tier, Enterprise Edition is twice as common as Standard Edition. (But the fact that folks are even using Standard Edition at all in this tier might surprise some of you in the audience.)
How much hardware do production servers get?
This really helps to reset folks’ expectations around what’s normal for SQL Servers out there. There are a huge, huge amount of production SQL Servers that just don’t need a lot of CPU power. About 70% have 1-8 cores, while only 10% of servers have more than 24 CPU cores.
This seems low at first: about 60% have less memory than my laptop. However, remember that almost 50% of the servers out there have 4 CPU cores (or less), so let’s try excluding them:
That makes sense: much, much less of the 5+ core servers are using 0-32GB RAM. Good to see folks investing in the resource that has an amazing impact on performance, especially given the SQL Server licensing costs involved.
How many databases are hosted per server?
In the last survey’s comments, sonalpathak28 asked about this number out of curiosity from an application perspective and a DBA maintenance one: how many databases are folks hosting per server?
And because I know you’ll be curious, over a dozen servers have over 1,000 databases on ’em. In all cases, they’re a lot of small databases (under 2TB total data size per server.)
What questions would you ask the data?
If there’s something you’d like to see analyzed, leave a note in the comments. To make it more likely that I’ll actually run your experiment, include why you want to know it, and even better, your guess as to what the data’s going to say. (That’ll make it a more fun game to play, heh.)
I was wondering how many availability groups people are running per standard edition server. Or in case of an enterprise edition, how many databases per AG.
Jeroen – ooo, that’s an interesting question. I’d zoom out a little and even ask, “How many people are using Availability Groups?” That’ll be a neat set of metrics. I’m a huge fan of the feature, obviously, but it’s kinda complex.
Migrating an existing server to Azure SQL is not worth the migration cost.
But I wonder… the usage of Azure SQL DB is low, but could that also be because there is less to monitor as is a platform-as-a-service… tough question.
Can you correlate the total size (and number) of databases by RAM size and CPU count?
this is actually a very good question given the cost model of SQLServer and the ease of changing tiers on Azure SQL Managed Instances.
Rey – sure, I did that here: https://www.brentozar.com/archive/2018/11/how-much-memory-is-normal-for-sql-servers/
Thank you, very informative on ram to db size ratio. Any more gems on CPU core to db ratio :)?
It’s so tied to workload, though. CPU work can be killer at a small database size or a large one.
Hey Brent – I would be curious to know if any of the servers are running on Linux rather than Windows.
Matthew – that’s an easy one: no, none.
Sort of what I expected, a lot of buzz nowadays of running SQL Server in Containers, Kubernetes, etc…but I just don’t see it out in the real world. I was at a SQL Saturday session last month and the presenter asked who was running on Linux…no one raised their hand.
Yeah, no – right now SQL Server in containers is best suited for development environments and CI.
Anybody using Core editions of Windows Server?
Interesting stuff Brent – thanks for putting this together. I was feeling like we were going to be the last Microsoft-stack based product to migrate our traditional SQL Server instances to Azure SQL or MI. Maybe not 🙂 I thought adoption on Azure among ConstantCare subscribers would be a lot higher.