In this blog post I go over my reasons for always recommending SQL Server Developer Edition over Express Edition for beginners learning SQL Server.
It’s free for non-production use
Just like SQL Server Express Edition, Developer Edition is free, but, unlike Express, it’s only free for non-production purposes (developing, testing, demoing, learning).
If you want to learn more about this, Bob Ward has a blog post that covers this in-depth and answers some questions that people tend to have about Developer Edition.
No restriction on individual database size
Express edition has a hard limit on database size set to 10GB per database.
This is ok if you want to play around with the AdventureWorks sample databases, but anything more realistic, like the StackOverflow databases
Leverage more RAM and CPU
Express can only use the lesser of 1 CPU socket or 4 CPU cores.
So, if you have an 8 core CPU, the instance can only use 4 of those cores. If you have a VM configured with 2 sockets, each with 2 cores assigned, the instance will only be able to use 2 CPU cores.
As for memory, a SQL Server Express instance can only use up to 1410MB of memory for the buffer pool.
Meanwhile, Developer Edition is limited to the lesser of 4 sockets or 24 CPU cores, and the only limiting factor on the memory side is whatever the OS can handle.
Feature parity with Enterprise Edition
Developer Edition has the same features and limitations that SQL Server Enterprise Edition has.
Meaning that from both a developer and a DBA perspective they’re basically identical.
SQL Server Agent
If you’re learning to become a DBA or just want to know how to schedule and automate processes inside SQL Server or between SQL Server and the underlying OS, you’ll definitely need SQL Server Agent.
SQL Server Express does install the service, but won’t let you start it afterwards. This leads to the occasional “why is the SQL Server Agent services not starting?” question on reddit.
Closer to what you’d see in a real production environment
Since Developer Edition has feature parity with Enterprise Edition, and is also fairly close to Standard Edition, it will resemble more the type of instance you’d see in a production environment.
I’ve seen SQL Server Express Edition used in production only a handful of times, and the most common situations were:
- specialized equipment that ships with the instance preinstalled and configured and isn’t expected to store more than a few days worth of data.
- someone built an application that eventually became heavily used by a department and then we were called in when the database hit the 10GB limit and caused a critical incident.
Conclusion
In my opinion, SQL Server Developer Edition is ideal for learning to work with SQL Server because of the increased flexibility it has when compared to Express Edition, and how close it is, feature-wise, to what DBAs generally see in production environments.
Next steps
Download
You can download SQL Server Developer Edition from here.
Install
In a previous post I’ve demoed a PowerShell script I’ve built to help speed up deployments of test instances in my home lab.
This script is perfect if you want to get up and running with SQL Server Developer Edition in the shortest amount of time.
If you want to give containers a shot first, then you might want to check out how to create them with Podman or with the new go-based sqlcmd.