次のようなデータを持つ2つのテーブルがあります-
TestTable1                          TestTable2  
----------                          ----------  
Id  Name        DealDate            Id  Name        DealDate  
1   aaTable     2010-09-22          1   aaTable2    2010-09-23  
2   bbTable     2010-09-23          2   bbTable2    2010-09-24  
3   ccTable     2010-09-28          3   ccTable2    2010-09-26  
4   ddTable     2010-09-25          4   ddTable2    2010-09-27  
これを返すために、TestTable1 + TestTable2 の結果セットから最新のレコードを 2 つだけ取得したい-
Id  Name        DealDate
4   ccTable     2010-09-28 
3   ddTable2    2010-09-27 
これは私の現在のクエリです
SELECT TOP 2 * FROM 
(
    SELECT * FROM
    (SELECT TOP 2 Id, Name, DealDate FROM TestTable1 ORDER BY DealDate DESC) T1
    UNION ALL 
    SELECT * FROM
    (SELECT TOP 2 Id, Name, DealDate FROM TestTable2 ORDER BY DealDate DESC) T2
) T1T2
ORDER BY DealDate DESC
これを達成するためのより良い方法(パフォーマンス/読みやすさ)を教えてください。
PS上記のテーブルはユースケースを提示するためのものであり、実際のテーブルには何千ものレコードがあります。
ありがとうございました!