3

AID がSQL Server の型であるAID = 10場合との違いは何ですか?AID = '10'INT

Select *
from ATable
where AID = '10'

Select *
from ATable
where AID = 10
4

1 に答える 1

6

varchar違いは、定数を列の型と比較するために SQL が変換を行う必要があることです。

最初のクエリの実行計画を表示すると、次のように表示されます。

CONVERT_IMPLICIT(int, [@1], 0)

編集

上記の場合、定数の変換によるパフォーマンスへの影響はわずかです。ただし、代わりに (定数ではなく) 列に対して変換が行われると、より深刻な結果をもたらす可能性のあるスキャンが発生する可能性があります。

Remus answer に従って、ここで変換の優先順位を確認できます

于 2012-11-13T12:15:03.693 に答える