Ни один из трех пунктов, которые вам необходимы для правильного использования вашего индекса. Самым большим фактором, который определяет, будет ли индекс использоваться или нет, является построение запроса и его оценка механизмом оптимизации запросов.
Но, чтобы продолжить то, что вы воспитали, давайте проверим использование трех:
SET CONCAT_NULL_YIELDS_NULL ON
Давайте возьмем это утверждение SET @Name = @FirstName + ' ' + @LastName
Если @FirstName равно NULL или @LastName равно NULL, тогда ваше @Name будет равно NULL. Если вам не нужно это поведение - вы хотите, чтобы NULL обрабатывался как пустая строка, тогда вы SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_PADDING ON
Это будет устаревшим в будущем. На SQL Server это по умолчанию включено. На самом деле, в более новых версиях SQL Server вы даже не можете выключить его.
Это влияет на хранение данных в столбце varchar - например, если вы включите его, то значение TEST
будет сохранено вместе с завершающим пробелом, если вы установите его в OFF, конечные пробелы будут удалены. То же самое относится и к конечным нулям в столбце VarBinary.
SET ANSI_WARNINGS ON
Это для группировки и суммирования. Если у вас есть значение NULL в любой агрегатной функции, и вы хотите знать, что есть значение NULL, тогда вы устанавливаете его на ON. Если вам не важно знать, что значение NULL было исключено из агрегата, установите для этого параметра значение OFF.