ここに会社を辞めた同僚からのコードがあり、それをより速く実行しようとしています。基本的に、次のことを行います。
SELECT DISTINCT
column1,
ISNULL(column2,0),
column3
FROM (
SELECT column1, column2, column3
FROM table1
INNER JOIN ...
WHERE ...
UNION
SELECT ALL column1, column2, column3
FROM table2
INNER JOIN ...
WHERE ...
) as DT
いくつかのサイトを調べていたところ、UNION 句は個別の値しか取得できないことがわかりました。明確な句を使用すると、実行に 15 秒ほどかかり、それを使用しない場合は 3 秒かかります。(クエリは少し複雑です:/)。いずれにせよ、最初のクエリの DISTINCT は違いを生むでしょうか、それとも単純に削除できますか?
前もって感謝します!
--- これが役に立つと思う人のために編集してください :) --- 問題は、UNION ステートメントの後に使用された ISNULL にありました。サブクエリ内にあるように変更した後、パフォーマンスは個別を削除した場合と同じになりました。