Оптимизировать MSSQL запросы
Есть несколько запросов, которые либо ошибочны либо требуют оптимизации. Необходимо поработать над ними, исправить, или дать рекомендации по изменению структуры данных. Привожу ниже один из запросов.
В заявке пишите что с ним не так по вашему мнению, решение можно не писать - просто предположите в чем проблема (тест ваших скиллов).
Оплата за каждый запрос. Пишите свою цену опять же исходя из примера, запрос плюс-минус похожи.
SELECT DISTINCT --su.ID suId,IIF (u.Alias IS NULL,u.UserName,u.Alias),u.ID, A.DateTime, IIF (A.URL IS NULL, A.Application, A.URL),A.TypeActivity, A.ActiveTime, A.InactiveTime,
(select MIN(DateTime) from Activity Amin WHERE Amin.UserID = A.UserId AND CAST(DATEADD(mi,u.GMTOffset,Amin.DateTime) as Date) = CAST(DATEADD(mi,u.GMTOffset,A.DateTime) As Date)),u.GroupID,A.ApplicationPath,u.IPJson,u.GMTOffset
FROM
(SELECT AA.UserId,Max(AA.DateTime) As MaxDateTime from Activity AS AA INNER JOIN Users AS U ON U.ID=UserID WHERE (AA.SprutUsersID=@sprutusersid AND DATEADD(mi,u.GMTOffset, AA.DateTime) BETWEEN @datefrom AND @dateto) GROUP BY AA.USerId) AMAX
INNER JOIN Activity A ON AMAX.UserID = A.UserId AND AMAX.MaxDateTime = A.DateTime
INNER JOIN Users U ON A.UserID = U.ID
LEFT JOIN Groups G ON U.GroupID = G.ID
WHERE
(a.SprutUsersID=@SprutUsersId) AND (u.Removed IS NULL)