У меня есть запрос, в котором есть два раздела: «Поиск в разделе 1» и «Поиск в разделе 2», когда оба раздела не закомментированы, запрос занимает до 23 секунд только для 87 записей.Если я прокомментирую один раздел (раздел 1 прокомментирован прямо сейчас), он дает результат через 2 секунды.Как я могу улучшить производительность запроса с обоими разделами без комментариев?
declare @CountryId bigint = 336,
@Lat varchar(30) = '31.512594000000004',
@Lng varchar(30) = '74.34114',
@Distance int = 10,
@SearchString varchar(30) = 'sprite'
DECLARE @orig_lat DECIMAL(12, 9) = CAST(@Lat AS DECIMAL(12,9));
DECLARE @orig_lng DECIMAL(12, 9) = CAST(@Lng AS DECIMAL(12,9));
DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326);
select main.* from
ChowDeal.UVW_CD_SearchDeals search inner join
ChowDeal.UVW_CD_DealMenusForCustomer main
on search.Latitude is not null
and search.Longitude is not null
and @orig.STDistance(geography::Point(search.Latitude, search.Longitude, 4326)) / 1609.34 < @Distance
and main.MasterMenuID = search.MasterMenuID
where
(
-- Searching section 1
--(@SearchString = '' or search.MenuName like '%'+ @SearchString +'%' )
--or
--(@SearchString = '' or search.Ingredient like '%'+ @SearchString +'%' )
--or
--(@SearchString = '' or search.RestaurantName like '%'+ @SearchString +'%' )
-- Searching section 2
--or
search.MasterMenuID in
( select DealID from ChowDeal.UVW_CD_SearchDeals
where MenuName like '%'+ @SearchString +'%' and DealID > 0
)
)