Quantcast
Viewing all articles
Browse latest Browse all 207

Slow CTE update query

I have a query that is running for more than three hours without completing.

I realized that the bad part is the Filter operator which has a cost of 89%.

WITH     FASES_NUMERADAS_CTE AS     (        SELECT             NUM_PROCES,             DES_SISTEM_PROCES,             DAT_PRIMEIRA_FASE,             CLASSE_SISTEMA_ATUAL,             CLASSE_SISTEMA_ANTERIOR,             DAT_CLASSE_ATUAL,             ROW_NUMBER() OVER (                PARTITION BY NUM_PROCES, DES_SISTEM_PROCES, DAT_PRIMEIRA_FASE                 ORDER BY DAT_CLASSE_ATUAL) AS RN        FROM #TEMP_COMPLE_10966_GERAL    ),     FASES_RN_1_CTE AS     (        SELECT *        FROM FASES_NUMERADAS_CTE        WHERE RN = 1    )UPDATE TC SET TC.CLASSE_SISTEMA_ATUAL = T2.CLASSE_SISTEMA_ATUAL FROM FASES_RN_1_CTE T1 CROSS APPLY (    SELECT TOP 1 T.CLASSE_SISTEMA_ATUAL     FROM FASES_NUMERADAS_CTE T    WHERE T.NUM_PROCES = T1.NUM_PROCES    AND T.DES_SISTEM_PROCES = T1.DES_SISTEM_PROCES    AND T.DAT_PRIMEIRA_FASE = T1.DAT_PRIMEIRA_FASE    AND T.RN > 1    ORDER BY T.RN DESC) AS T2 INNER JOIN #TEMP_COMPLE_10966_GERAL TC     ON TC.NUM_PROCES = T1.NUM_PROCES     AND TC.DES_SISTEM_PROCES = T1.DES_SISTEM_PROCES     AND TC.DAT_PRIMEIRA_FASE = T1.DAT_PRIMEIRA_FASE     AND TC.DAT_CLASSE_ATUAL = T1.DAT_CLASSE_ATUAL     AND TC.CLASSE_SISTEMA_ANTERIOR = T1.CLASSE_SISTEMA_ANTERIOR;

As it doesn't end, I don't have the real execution plan.

https://www.brentozar.com/pastetheplan/?id=B1x_w-QeK

Does anyone have any tips to improve runtime?


Viewing all articles
Browse latest Browse all 207

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>