Back in May I wrote about the poor performance of Microsoft’s SQL Server product when doing trivial queries like simple key-value lookups. In such cases the massive overhead of the query engine led to return rates several orders of magnitude lower than many specialized KV systems, such as Memcached or Redis.
In most operational scenarios this isn’t a big problem, as most queries are complex enough that the overhead diminishes to the point of irrelevance, and the “best route” of the query plan overcomes that inefficiency.
At the time I was testing with SQL Server 2008 and 2005. I finally got around to redoing those tests with SQL Server 2008 R2.
What a difference an R iteration makes.
Instead of 5,000 key lookups per second per caller, with 2008 R2 I’m seeing more in the range of 200,000+ simple lookups per second per caller. I’ve replicated this result on several installs.
Remarkably this has gone with little to no commentary in the community.
For larger queries the performance doesn’t show such a deviation from the 2008 baseline, but for the simple purposes it really is incredible.