У меня есть хранимая процедура, которая ищет строки в таблице на основе заданного текста. TableWithText
имеет столбец SomeText
типа nvarchar, а также столбец CreateDate
DateTime
, заполненный датой и временем создания строки.
Тело хранимой процедуры таково:
SELECT TableWithTextID, SomeOtherColumn
FROM TableWithText
WHERE SomeText = @inputText
Значение SomeText для каждого гарантируется уникальным, хотя такое ограничение не накладывается. Поэтому ожидается, что этот оператор вернет только одну строку.
Однако в таблице около 500 000 строк. Учитывая, что я знаю, когда была введена искомая строка (с точностью до минуты), если я добавлю
AND CreateDate >= @CreateDate
к хранимой процедуре, уменьшит ли оптимизатор запросов MS SQL количество строк запроса до тех, которые были созданы после @CreateDate, прежде чем он будет искать входной текст?
reduce the amount of query rows
, вы имеете в виду набор результатов или количество строк, которые он просматривает, чтобы найти строку со значением столбца@inputText
? - person Cameron   schedule 26.03.2015