I have been tasked with migrating a 'database from hell' to Azure SQL. It has some complicated and long-running queries (20 seconds on the S6 tier, >600 seconds on S4 tier) and I'd like to optimise performance so we can drop to a lower tier, without making any structural changes to the database.
I haven't explicitly created any indexes myself. I don't really have the skillset to do this properly as I'm not a DB admin.
I was hoping the the Azure performance recommendations would help by creating those indexes that are beneficial and avoiding any that would hurt performance. But so far results have been very disappointing. It has created one index resulting in just a 0.13% DTU improvement. It has rejected another index, and is currently validating two more although it looks like it will reject both (overall DTU regression).
But it has now been stuck on validating for nearly 24 hours, even though the database has been serving a normal workload all that time. (There are four different problem queries, invoked every ten minutes.)
Is this normal? Can coerce Azure into generating and validating performance recommendations a bit more quickly?