いくつかのデータを選択するクエリがあり、いくつかのパラメーターを渡します。
DECLARE @FromAccDocNo INT = 1,
@ToAccDocNo INT = 999999999,
@FromDate CHAR(10) = '1900/01/01',
@ToDate CHAR(10) = '2999/12/30',
@L1Code INT = 129
SELECT ad.AccDocNo,
ad.AccDocDate,
add1.Row,
add1.RowComment,
add1.Debit,
add1.Credit
FROM AccDoc ad
INNER JOIN AccDocDetail add1
ON add1.AccDocNo = ad.AccDocNo
INNER JOIN Topic t
ON t.TopicCode = add1.TopicCode
WHERE t.L1Code = @L1Code -- here is the difference
AND add1.AccDocNo BETWEEN @FromAccDocNo AND @ToAccDocNo
AND ad.EffectiveDate BETWEEN @FromDate AND @ToDate
ORDER BY
ad.AccDocNo
最初に、値 129 を明示的に次のように記述します@L1Code
(0.010 秒かかります) 。
2 番目のフォームでは、クエリに渡し@L1Code
ます (2.500 秒かかります)
誰が何が起こるか説明できますか?