を必要とする、私はこの記事で説明したものから、カーソル作成:SQL - Call Stored Procedure for each record、セットベースのソリューション
をしかし、私が本当にしたいことはセットベースのソリューションです。チケットとワークログの2つのテーブルがあります。 各チケットは複数のワークログを持つことができます。チケットごとに最新のチケットが必要です。
SELECT WorkLog.WorkLogDate, WorkLog.TextEntry, Ticket.ID,
Ticket.Summary, Ticket.Requester, Ticket.Status, Ticket.Priority,
Ticket.AssignedTo, Ticket.DateResolved, Ticket.TimeSpent
FROM Ticket INNER JOIN WorkLog ON Ticket.ID = WorkLog.TicketIDRef
私は何とかSELECT TOP (1) _WorkLog_ FROM WorkLog ORDER BY WorkLogID DESC
各Ticket.IDのチケットで、私は私が探しているセットを持っているだろうことができれば。 CROSS APPLY
を使って同様の解決策を見ましたが、どの機能を適用する必要があるのかよくわかりません。
私の頭脳をOOギアから抜き出す助けがあれば、大歓迎です。
ありがとうJake!これらのソリューションのそれぞれのパフォーマンスを測定する最も簡単な方法は何でしょうか?私は彼らがすべて私のカーソルベースのソリューションよりも優れた性能を発揮すると確信しています! – aBerrantJots
SSMS内では、これらのそれぞれの実行計画を表示し、どちらがより高価な操作を行うかを確認することができます。また、大規模なデータセットに対してそれらをすべて実行し、応答時間を比較するだけでよい指標になります。 –