The SQL Server development team was able to remove the PInvoke and PUnInvoke activities during T-SQL execution for many of the spatial methods. A critical aspect of the change is that the change is fully compatible across the server and client scenarios.
The same source code is used to build the managed C++ implementation and the unmanaged C++ implementation. At the risk of understating this work the C++ managed code can be compiled with the C++ /CLI compiler, creating the managed assembly and a few, cleaver templates and macros bridge the native variations allowing C++ native compilation. Any change to the code is made in one source file and built in two different ways.
They also have a couple of demos and point out that if you’re using a spatial index appropriately, the performance benefit from switching to 2016 is upwards of 3x. A 3x performance improvement with no code changes is nothing to sneeze at.
Comments closed