У меня следующий запрос, который выполняется очень медленно:
SELECT Id FROM
(
SELECT E.MessageId
FROM [MessageEnvelopes] AS E INNER JOIN
[Folders] AS F ON F.Id = E.FolderId
WHERE F.MailboxId = 1
) AS SUB1 INNER JOIN
(
SELECT M.Id
FROM [Messages] AS M
WHERE CONTAINS(M.*, '"my*" AND "search*"')
) AS SUB2
ON SUB1.MessageId = SUB2.Id
По сути, это объединяет запрос выбора сообщения (SUB1) с полнотекстовым поиском (SUB2). Подзапросы были разделены для ясности (то же самое происходит, когда подзапросы объединены). Этот запрос занимает около 15 секунд, в то время как оба подзапроса немедленно возвращаются при выполнении по отдельности.
Используемые таблицы маленькие (макс. 2000 строк). Есть индексы на все внешние ключи. План выполнения не показывает узких мест. Я понятия не имею, почему этот запрос будет работать так медленно.