У меня есть хранимая процедура, которая ищет таблицу, которая имеет около 200000+ строк с полным текстом FREETEXT.SQL Server Полнотекстовый поиск Очень медленно
Вот основы этого:
declare @searchKey varchar(150)
if @searchKey Is Null OR LEN(@searchKey)=0
Set @searchKey='""';
Set @searchKey='car';
declare @perPage int
Set @perPage=40
declare @pageNo int
Set @pageNo=1
declare @startIndex int,@endIndex int;
Set @[email protected]*@[email protected]+1;
Set @[email protected]*@pageNo;
Select totalItems
--i pull other colums as well
from (
Select Row_Number() over(order by CreateDate DESC) As rowNumber
,COUNT(*) OVER() as totalItems
--other columns are pulled as well
from MyTable P
Where
@searchKey='""'
OR FreeText((P.Title,P.Description),@searchKey)
) tempData
--where rowNumber>[email protected] AND rowNumber<[email protected]
where
rowNumber>=CASE WHEN @startIndex>0 AND @endIndex>0 THEN @startIndex ELSE rowNumber END
AND rowNumber<=CASE WHEN @startIndex>0 AND @endIndex>0 THEN @endIndex ELSE rowNumber END
order by rowNumber
Проблема заключается в его работает медленнее, чем я хотел бы его. Это займет около 3 секунд, чтобы загрузить страницу. Одна и та же страница загружалась менее чем за 1 секунду, когда я использовал, как оператор.
Какая версия SQL Server? –
Что произойдет, если вы берете или выходите? – u07ch
Его на MS SQL 2008. – manik