Hier, j'ai posé une question sur les CTE et les calculs du total cumulé;Optimisation des requêtes CTE
Calculating information by using values from previous line
je suis venu avec une solution, mais quand je suis allé à l'appliquer à ma base de données réelle (plus de 4,5 millions de disques), il semble prendre pour toujours. Cela a duré plus de 3 heures avant que je l'arrête. J'ai ensuite essayé de l'exécuter sur un sous-ensemble (CTEtest as (select top 100)) et ça a duré une heure et demie. Est-ce parce qu'il a encore besoin de parcourir toute l'affaire avant de choisir le top 100? Ou devrais-je supposer que si cette requête prend 2 heures pour 100 enregistrements, cela prendra des jours pour 4,5 millions? Comment puis-je optimiser cela?
Y at-il un moyen de voir combien de temps reste sur la requête?
Jetez un oeil à cet article de @AaronBertrand sur l'exécution des totaux sur SQL Server: http://www.sqlperformance.com/2012/07/t-sql-queries/running-totals – Lamak