У меня есть база данных SQL Server 2008. В этой базе 2 таблицы:
Manufacturer
------------
ID,
Name nvarchar(256)
Product
-------
ID
ManufacturerID
Name nvarchar(256)
В моем приложении есть окно поиска. Я не знаю, собирается ли пользователь предоставить название производителя или название продукта. Кроме того, я пытаюсь быть немного изящным и справляться с неправильным написанием. Чтобы соответствовать этому критерию, я использую функцию CONTAINSTABLE. С помощью этой функции я создал следующий запрос:
SELECT
*
FROM
[Manufacturer] m
INNER JOIN [Product] p ON m.[ID]=p.[ManufacturerID]
INNER JOIN CONTAINSTABLE(Manufacturer, Name, @searchQuery) r ON m.[ID]=r.[Key]
ORDER BY
r.[Rank]
Мой запрос выполняет ОЧЕНЬ МЕДЛЕННО с функцией CONTAINSTABLE. Без второго INNER JOIN запрос выполняется менее чем за 1 секунду. Со вторым INNER JOIN запрос выполняется чуть более 30 секунд (слишком долго).
Кто-нибудь может дать некоторые рекомендации по производительности? Я понятия не имею, как преодолеть это препятствие.
Спасибо,