組合と組合のパフォーマンスすべて
-
26-09-2019 - |
質問
いくつかのテーブルで選択されたステートメントを実行する必要があります。テーブルはさまざまなレコードを返していると確信しています。とにかくすべてを使用しています。
テーブルが異なるレコードを返していると確信している場合、ユニオンまたはユニオンのすべてをパフォーマンス用語で使用する方が良いでしょうか?
解決
あなたが高価を避けているので、あなたが重複したレコードを排除することを心配していないとき、組合はすべて組合よりも優れているでしょう 明確なソート 手術。見る: SQL Server - ユニオンとユニオンすべての違い - 最適なパフォーマンス比較
他のヒント
組合は重複したエントリを除外するため、すべてが常に高速です
ユニオンは内部的に2つのクエリを実装します。 1。SELECT
データセット2を返します。DISTINCT
. 。データベースの内部を研究した人なら誰でも、 DISTINCT
節は処理の点で非常に費用がかかります。
結果のデータセットに一意の行が必要であると確信している場合は、スキップできます UNION
そして使用します UNION ALL
代わりは。
UNION ALL
と同じになります UNION
それが発射しないことを除いて DISTINCT
米国の費用のかかる事業を内部的に控えています
あなたがそれらが明確であるかどうかを知っているかどうかにかかわらず、あなたがすべての結果の行を望んでいることを知っているとき、あなたがすべての結果行を望んでいることを知っているとき、ユニオンをすべて使用することをお勧めします。 「すべて」のない組合 いつも データが実際に何であるかに関係なく、「明確なチェック」を実行します。
なぜユニオンは速いのですか?組合は複製を削除するためにある種をしなければならないからです。重複を削除する必要がない場合、ユニオンはすべてより良い選択肢ですが、ユニオンには目的があり、必要に応じて使用する必要があります。