Одно приложение вызывает большую нагрузку на нашу базу данных Sql Server 2005. Мы не контролируем приложение , которое выполняет этот запрос раз в минуту:
select id,col1,col2,col3 from table where id != id
Обратите внимание на id! = Id , что означает, что строка не равна самой себе. Неудивительно, что в результате всегда не найдено ни одной строки. Однако Sql Server выполняет сканирование кластерного индекса каждый раз, когда запускает этот запрос!
Столбец id определяется как:
varchar(15) not null primary key
В плане запроса указано огромное количество «Расчетное количество рядов». У кого-нибудь есть идея, почему Sql Server требуется сканирование таблицы, чтобы выяснить очевидное?