ジョブを実行する T-SQL クエリ (SQL Server 2012) がありますが、実行計画を見ると、並べ替え演算子が表示され、次の警告が表示されます。
私がこれまで行ってきた読書は、「order by」句を使用すると、このソート反復子を削除できることを示唆しています。サブクエリの並べ替えを実行できず、最も外側のクエリを並べ替えても並べ替え反復子が削除されないため、これは私にとってはオプションではありません。
以前の実行計画で推奨されていた非クラスター化インデックスを追加しました。
この「tempdb スピル」警告に対処するために他にできることはありますか? 現時点ではこれ以上のアイデアはありません。
アイデアをありがとう。
USE MIA_2014_15_v1;
GO
/*
Notes:
* The outer query exists so that I can filter by a windowed function (Date_Count).
*/
SELECT q.Campus,
q.Student_ID,
q.Student_Name,
q.DATEIN,
q.TIMEIN,
q.[TIMEOUT],
q.Date_Count
FROM (
SELECT TC_Hours.Campus,
TC_Hours.[Student ID] AS Student_ID,
Students.Student_Name,
TC_Hours.[Date] AS DATEIN,
TC_Hours.[Time In] AS TIMEIN,
TC_Hours.[Time Out] AS TIMEOUT,
count(TC_Hours.[Date]) OVER (
PARTITION BY TC_Hours.Campus,
TC_Hours.[Student ID],
TC_Hours.[Date]
) AS Date_Count
FROM dbo.TC_Hours_District TC_Hours
LEFT JOIN dbo.Base__Student_Name_by_FY Students ON TC_Hours.Campus = Students.Campus
AND TC_Hours.[Student ID] = Students.Student_ID
WHERE (NOT students.Student_Name IS NULL)
AND Students.FY = 'FY15'
) q
WHERE q.Date_Count > 1;
GO