sql >> Base de Datos >  >> RDS >> Sqlserver

RowNumber() y Partición por ayuda de rendimiento buscada

1) Tiene algunos campos en las cláusulas Partition By y Order By. Eso no tiene sentido ya que tendrá uno y solo un valor para cada uno (sma.FastPer, sma.SlowPer). Puede eliminar estos campos de forma segura de la parte Ordenar por de la función de ventana.

2) Suponiendo que ya tiene índices para un rendimiento adecuado en "initialSmas i join initialSmas" y que ya tiene un índice para (initialSmas.Symbol, initialSmas.Period, initialSmas.TradeDate), lo mejor que puede hacer es copiar smaComparisonsByPer en un tabla temporal donde puede crear un índice en (sma.Symbol, sma.FastPer, sma.SlowPer, sma.TradeDate)