Запуск следующего запроса (SQL Server 2000) план выполнения показывает, что он использовал индекс поиска и Profiler показывает, что он делает 71 читает с длительностью 0.Получение запроса к индексу искать (а не сканировать)
select top 1 id from table where name = '0010000546163' order by id desc
Контрастность с помощью следующего с использованием индекса сканирования с 8500 прочтений и продолжительностью около секунды.
declare @p varchar(20)
select @p = '0010000546163'
select top 1 id from table where name = @p order by id desc
Почему план выполнения отличается? Есть ли способ изменить второй метод поиска?
благодаря
EDIT
Таблица выглядит
CREATE TABLE [table] (
[Id] [int] IDENTITY (1, 1) NOT NULL ,
[Name] [varchar] (13) COLLATE Latin1_General_CI_AS NOT NULL)
Id является первичным кластерным ключом Существует неуникальный индекс имени и уникальный композитный индекс по ид/имени Существуют и другие колонны - для их краткости их краткость
Что типы данных/схемы, пожалуйста? – gbn