File size of sqlservr.exe in SQL Server 2008 – approx. 56 MB
File size of sqlservr.exe in SQL Server 2008 R2 – approx. 60 MB
I don’t have a SQL 2005 instance handy at the moment, but I guess the size would be less than 50 MB.
Now, with SQL Server 2012, the file size of sqlservr.exe shrunk to less than 1 MB (188 KB), WOW!
And in SQL Server 2014 (CTP2), its 362 KB
So what’s up? What is the mystery? Why has sqlservr.exe shrunk so much and where has all the code gone?
Well, do a quick search in the Bin folder of a SQL Server 2012 installation for all the DLLs starting with SQL, my search string was *SQL*.dll, and you will come across two DLLs of 30 MB each (roughly), sqllang.dll & sqlmin.dll.
Note: The default path for the bin folder on my box with a named instance is C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012SP1\MSSQL\Binn – yours will be different.
So you probably guessed it, the original sqlservr.exe (roughly 60 MB) has been broken into multiple DLLs, out of which sqlmin.dll and sqllang.dll are the biggest. Sqlmin.dll offers Relational Engine services like Execution, etc and sqlmin.dll offers database services like checkpoint, lazywriter, etc.
Yes, this also means that these DLLs did not exist in versions prior to SQL Server 2012.
And that solves the mystery as to why sqlservr.exe is only a few KBs. Interestingly, in SQL Server 2014, sqlmin.dll is approximately 60 MB, and I guess it’s all the Hekaton/In-Memory OLTP code 🙂
Want to watch this in action? Watch here!