мне кажется довольно очевидным
ваш первый запрос не охватывается кластеризованным индексом, а второй - так как lotID отсутствует в предложении WHERE первого запроса
Возможно, вы захотите прочитать SQL Server, охватывающий индексы , чтобы увидеть, как все это работает
Вам также необходимо понимать, что кластеризованный индекс - это данные, все данные для таблицы находятся в кластеризованном индексе. когда вы создаете некластеризованный индекс для таблицы с кластеризованным индексом, то некластеризованный индекс будет иметь указатель на кластеризованный индекс (поскольку именно там находятся остальные данные), если вы не можете полностью удовлетворить свой запрос некластеризованным индексом индекс, и в этом случае будет использоваться только некластеризованный индекс ... я перестану бродить сейчас
EDIT
Я прочитал AND lotID = @lotID
NOT AND lotID = lotID
иногда вы можете подделать кластерный индекс, выполнив команду lotID> 0 (выбрав наименьшее число, которое у вас есть), и вы получите запрос
Так что, если ваш самый маленький lotID = 1, и вы добавляете
И lotID> 0
вы также можете видеть поиск вместо сканирования, я демонстрирую, ГДЕ IndexValue> '' в этом посте Всегда ли поиск индекса лучше или быстрее, чем сканирование индекса?