временами запрос тупит mssql
От: dmitry251  
Дата: 03.11.20 11:53
Оценка:
всем прив!
помогите плз) запрос временами тупит, выполняется десятки секунд. иногда все ок. в чем может быть дело? всю голову уже сломал...
если нельзя явно сказать по запросу, что в нем не так,
подскажите куда копать...
в SSMS всегда выполняется норм.


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)


статистика по нему такая:




Если в момент затупки выполнить

use DBNAME
GO
EXEC sp_updatestats
GO
DBCC FREEPROCCACHE
GO



то проблема решается.
однако, непонятна причина ее возникновения, и нельзя же эти команды выполнять каждые 5 минут...
Отредактировано 03.11.2020 12:17 dmitry251 . Предыдущая версия . Еще …
Отредактировано 03.11.2020 12:07 dmitry251 . Предыдущая версия .
Отредактировано 03.11.2020 12:07 dmitry251 . Предыдущая версия .
Отредактировано 03.11.2020 12:06 dmitry251 . Предыдущая версия .
Отредактировано 03.11.2020 12:01 dmitry251 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.