• The implicit CAST was The Ugly. I changed my #temp structures to use VARCHAR() rather than NVARCHAR() and voila, things started moving along. While performance isn't down into the milliseconds, it's acceptable for running the individual reports from the report manager, and I can preprocess the entire dataset in roughly 30 minutes, then for the monthly report dump, just query that and things should move along quite nicely. Well, except for the actual report rendering time, which I'm going to look at improving as well. The RDL is one I inherited, with a far more complex structure than I would have used.