1) Bạn có một số trường trong cả mệnh đề Phân vùng Theo và Thứ tự Theo. Điều đó không có ý nghĩa vì bạn sẽ có một và chỉ một giá trị cho mỗi giá trị (sma.FastPer, sma.SlowPer). Bạn có thể xóa các trường này một cách an toàn khỏi Order By một phần của chức năng cửa sổ.
2) Giả sử rằng bạn đã có các chỉ mục cho hiệu suất phù hợp trong "initialSmas i join initialSmas" và bạn đã có và lập chỉ mục cho (initialSmas.Symbol, initialSmas.Period, initialSmas.TradeDate) thì tốt nhất bạn có thể làm là sao chép smaComparisonsByPer vào một bảng tạm thời nơi bạn có thể tạo chỉ mục trên (sma.Symbol, sma.FastPer, sma.SlowPer, sma.TradeDate)