Я хочу написать запрос для поиска содержащей строки в таблице.
Таблица:
Create table tbl_sarg
(
colname varchar(100),
coladdres varchar(500)
);
Примечание. Я просто хочу использовать Index Seek
для поиска по 300 миллионамзаписей.
Индекс:
create nonclustered index ncidx_colname on tbl_sarg(colname);
Образцы записей:
insert into tbl_sarg values('John A Mak','HNo 102 Street Road Uk');
insert into tbl_sarg values('Shawn A Meben','Church road USA');
insert into tbl_sarg values('Lee Decose','ShopNo 22 K Mark UK');
insert into tbl_sarg values('James Don','A Mall, 90 feet road UAE');
Запрос 1:
select * from tbl_sarg
where colname like '%ee%'
Фактический план выполнения:
Запрос 2:
select * from tbl_sarg
where charindex('ee',colname)>0
Фактический план выполнения:
Запрос 3:
select * from tbl_sarg
where patindex('%ee%',colname)>0
Фактический план выполнения:
Как заставить обработчик запросов выполнить следующие действия:использовать поиск по индексу вместо сканирования таблицы / индекса по большому набору данных?