2012-05-08 18 views
0

3つの異なるテーブルから3つの単一値を返したいとします。SQL Serverで複数選択の代わりに単一選択を返す

コード1:

declare @acc_cnt int, @selected_item int, @worker_cnt int 
select @acc_cnt=count(0) from accounts 
select @selected_item=id from items where name='something' 
select @worker_cnt=count(0) from workers 
select @acc_cnt ,@selected_item,@worker_cnt 

コード2:

select count(0) from accounts 
select id from items where name='something' 
select count(0) from workers 

は、私はより良い(ストアドプロシージャ内の)リソースの使用状況とパフォーマンスを検討しているこれらのコードのどれかを知りたいです3つの選択肢と1つの選択肢を返すことに違いはありますか?私はSQL Server 2008を使用しています

+1

この質問はC#とは関係ありません。それがC#にどのように関係しているか、またはC#タグを削除してください。 – phoog

+0

また、返された値はc#asp.netによって処理されます。実際に私は回答者が戻り値をどのように処理するかを知るためにそれを書いた –

+0

私はこの質問を私に尋ねた人に私にストアドプロシージャ全体を表示し、おそらくパフォーマンスチューニングのためのより良い候補を特定することができます。私たちに2つの選択肢を与えてくれるだけで、質問はいくぶん無駄になります。例えば、 'UNION ALL'は' SELECT'が考慮されていますか? –

答えて

0

数値2は、変数を宣言せず、少量のメモリを節約するので、パフォーマンスの改善がSLIGHTLYになります。

注:パフォーマンスの向上はほとんど計り知れません。

関連する問題