I'm in need to optimize the following TRANSACT SQL statement :
SELECT Id, Type, StartTime, Amount, CurrencyCode, CorrelationStatus, ProviderId
FROM (
SELECT UserId, Id, {=charge} Type, StartTime, Amount, CurrencyCode, CorrelationStatus, ProviderId
FROM charge
WHERE (@Type IS NULL OR @Type = {=charge})
UNION ALL
SELECT UserId, Id, {=recharge} Type, StartTime, Amount, CurrencyCode, CorrelationStatus, ProviderId
FROM recharges
WHERE (@Type IS NULL OR @Type = {=recharge})
) AS T
WHERE UserId = @UserId
AND StartTime BETWEEN @StartDate AND @EndDate
AND (@ProviderId IS NULL OR ProviderId = @ProviderId)
AND (@FilterCorrelationStatus = 0 OR CorrelationStatus IN @CorrelationStatuses)
ORDER BY StartTime DESC
OFFSET (@PageIndex - 1) * @PageSize ROWS
FETCH NEXT @PageSize ROWS ONLY;
Can you give me some suggestions? Thanks, Simone