1

複数の選択を行う場合と単一の選択を使用する場合の違いは何ですか?パフォーマンスの向上はありますか? 私は誰かがそれをしたのを見ました.

select @a = cBranchName from mstores where nBranchCode = 1
select @b = cBranchAddress from mstores where nBranchCode = 1
select @c = dCreateDate from mstores where nBranchCode = 1
select @d = AssignedCompanyId from mstores where nBranchCode = 1
select @e = StoreFormat from mstores where nBranchCode = 1

対。

select @a = cBranchName 
  ,@b = cBranchAddress
  ,@c = dCreateDate
  ,@d = AssignedCompanyId
  ,@e = StoreFormat from mstores where nBranchCode = 1

また、5 つの select がデータベースに 5 回アクセスすると仮定します。単一の select ステートメントが 5 つの select ステートメントよりも高速であることをどのように証明できますか?

見ただけでも、単一の選択ステートメントは複数の選択ステートメントよりもはるかに高速であるとすでに考えていました。

4

4 に答える 4

1

2 つの方法に大きな違いがあるとは思いません。方法 1 で最初の SELECT が実行された後、データベース エンジンが他の 4 つの SELECT に再利用できる実行計画が存在します。そして、ページはその時点でキャッシュされる可能性があるため、ディスクに戻る必要はありません。方法 2 は、2 つの点でより望ましいです。(ほぼ間違いなく) よりエレガントであり、2 つ目は単一のコマンドであるため、実行中は行がロックされます。方法 1 では、SELECT ごとに行が変わる可能性があります。

于 2013-05-29T11:40:02.890 に答える
0

1つのテーブルの場合、単一の選択が一番の選択肢であると思います#。複数のテーブルを扱っている場合でも、状況によっては単一の結合ステートメントの方が複数の選択ステートメントよりも優れています

スキャンする必要があるすべてのテーブルを確認でき、オーバーヘッドが削減され、ローカルで結果セットを構築できるため、単一のステートメントでデータベースが多くの最適化を実行できるようになると思います。また、通常、単一のステートメントの方が簡単です。次のプログラマーが理解し、修正するために

于 2013-05-29T11:37:48.830 に答える