I have two servers with exact same hardware configuration. One runs SQL 2014 and one SQL 2008R2, both Standard Edition. They each house a copy of the same database.I run the exact same query against both, and 2008R2 completes it significantly faster.When I look at the execution plan, it looks the same on both servers... except on 2014, there's a Sort that has a warning "Operator used tempdb to spill data during execution with spill level 1". I'm pretty sure that is exactly what is killing my performance. I know that spills usually indicate problems with indexes or statistics. So, I rebuilt the indexes and updated statistics. Estimated number of rows and memory grant are the same on both servers. Yet 2014 continues to spill no matter what I do.I compared every setting I could think of on both servers. I made sure that 2014 has ACRES of memory available to it. I have read tons of articles on the subject at this point, and they all boil down to stats and indexes. Can anyone help me with this? I'm reasonably sure this isn't the problem with the query or the DB schema, as they are identical on both servers. But something is hamstringing 2014...
↧