1) Anda memiliki beberapa bidang baik di klausa Partition By dan Order By. Itu tidak masuk akal karena Anda akan memiliki satu dan hanya satu nilai untuk masing-masing (sma.FastPer, sma.SlowPer). Anda dapat menghapus kolom ini dengan aman dari bagian Order By dari fungsi jendela.
2) Dengan asumsi bahwa Anda sudah memiliki indeks untuk kinerja yang memadai di "initialSmas saya bergabung dengan initialSmas" dan Anda sudah memiliki dan mengindeks untuk (initialSmas.Symbol, initialSmas.Period, initialSmas.TradeDate) yang terbaik yang dapat Anda lakukan adalah menyalin smaComparisonsByPer ke tabel sementara tempat Anda dapat membuat indeks (sma.Symbol, sma.FastPer, sma.SlowPer, sma.TradeDate)