DECLARE @userId INT = 1001
SELECT
, Logins.IP
, COUNT(LoginsOther.UserId) AS OtherUsersOnThisIp
, MAX(Logins.DateHappened) AS LastUsed
, Logins.UserId
FROM Security.UserLogin AS Logins
LEFT JOIN Security.UserLogin AS LoginsOther
ON LoginsOther.IP = Logins.IP
AND LoginsOther.UserId <> Logins.UserId
WHERE Logins.UserId = @userId
GROUP BY
, Logins.IP
, Logins.UserId
Итак, у меня есть таблица UserLogin с колоннами: Id int, DateHappened datetime, IP nvarchar, LoginStatusId int, UserId bigint
есть 17769 записей в этой таблице. Задача состоит в том, чтобы использовать используемые IP-адреса пользователем, а OtherUsersOnThisIp
должен показывать другой счетчик пользователей, используемый этим IpAddress, когда я запускаю запрос. Счетчик результатов - 22 строки, но это занимает 10-19 секунд. Есть ли способы оптимизировать этот запрос быстрее?Ms SQL Процедура работает медленно
У вас есть какие-либо индексы на таблицах? – lad2025
нет У меня нет индексов – Arkadi
Итак, ваш ответ – lad2025