Azure SQL Database – Performance Recommendations Stuck on ‘Validating’

azure-sql-databaseindex-tuningperformancequery-performance

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?

Best Answer

I found in the documentation that sometimes Azure will take 72 hours to validate a performance recommendation. And indeed after 72 hours it finished evaluating and reverted the recommendations.

(It turned out that identifying the indexes that would really make a big difference was quite easy and I didn't need Azure Performance Recommendations. I copied one of the long-running queries into SSMS, chose a representative set of inputs, and then ran Query > Display Estimated Execution Plan. The result showed me one step in the query was taking 99.9% of the time and it even suggested an index to add. Result was the query time came down from 20 seconds to 0.1 second. I realise this will not be news to DB admins but I hope it will help someone.)