Мой индекс населен с 12 миллионами строк из DatasSearch_fr таблицыFREETEXTTABLE плохой производительности с SQL Server 2008
Поля:
[Id] [int] IDENTITY(1,1) NOT NULL,
[Data] [nvarchar](max) NOT NULL,
[DataId] [varchar](200) NOT NULL,
[DataTypeId] [int] NOT NULL
Используя FREETEXTTABLE как это:
SELECT * FROM FREETEXTTABLE(DatasSearch_fr, (Data), 'din', LANGUAGE 1036) AS FT
Запрос возвращает 12 000 строк мгновенно
Но используя FREETEXTTABLE li ка это:
SELECT DataId, DataTypeId, MAX(Rank) as Rank FROM DatasSearch_fr
INNER JOIN FREETEXTTABLE(DatasSearch_fr, (Data), 'din', LANGUAGE 1036) AS FT ON FT.[Key] = Id
Group By DataId, DataTypeId
Запрос возвращает 4400 строк в 10 или 15 секунд ...
Проблемы для меня не 4400 возвращаемых строк, эта точка логически связана с Max(rank)
и Group by
... Но 10 или 15 секунд, кажется, слишком много, и это самое медленное время отклика не всегда происходит при поиске всех ключевых слов.
Знаете ли вы способ улучшить это время отклика?
Спасибо за вашу помощь, Себастьен
Я заметил в запросе план выполнения этого запроса, который займет 10 или 15 секунд, используемых параллелизм ... Я не знаю, почему. У кого-то есть идея? –