SSMSでは、どのクエリがより効率的であるかをどのように判断できますか?私はAを好むが、サブクエリはTransmissionの各行に対して1回実行されると言われているので、Bが優先される。SSMSでどのクエリがより効率的かを判断する方法2014
Update t set t.transmission_status_id =
(select transmission_status_id from transmission_status where code = 'TRANSLATED')
from transmission t
where t.transmission_status_id =
(select transmission_status_id from transmission_status where code = 'RECEIVED')
B
declare @transmission_status_TRANSLATED INT = (select transmission_status_id from transmission_status where code = 'TRANSLATED')
declare @transmision_status_RECEIVED INT = (select transmission_status_id from transmission_status where code = 'RECEIVED')
Update t set t.transmission_status_id = @transmission_status_TRANSLATED
from transmission t
where t.transmission_status_id = @transmision_status_RECEIVED
EDIT:
A.
Table 'transmission_status'. Scan count 1, logical reads 2, physical reads 0,
read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'transmission_status'. Scan count 1, logical reads 2, physical reads 0,
read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'transmission'. Scan count 1, logical reads 778, physical reads 0,
read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
B
:これは、オンに設定統計を使用してからの統計でありますTable 'transmission'. Scan count 1, logical reads 778, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'transmission_status'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
私が知る限り、効率に違いはありません。
編集2:サブクエリはcorrelated
サブクエリではないので、サブクエリは1回だけ実行されます。 https://en.wikipedia.org/wiki/Correlated_subquery(リンクの@destination_dataに感謝します)
最初のステップには常に「EXPLAIN PLAN」が含まれていませんか? –
私は実行計画を見ていますが、より効率的なデータから私にはわかりません。 –
'Execution Plan/STATISTICS IO'はあなたに役立ちます –