powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка из второй таблицы по отсутствующим записям по дате в первой
9 сообщений из 9, страница 1 из 1
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967572
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята и девчата!

Помогите плиз написать запрос. Есть 2 таблицы Session и User. В Таблице Session есть поле Data, с датой входа, и UserId, в которой хранится Id пользователя в таблице User.

Нужно написать хранимую процедуру с выборкой пользователей, которые не заходили в систему в течении указанного месяца — параметр хранимки. Есть еще один важный момент, таблицы User и Session очень большие, одних пользователей несколько миллионов, а сессий соответственно еще на порядки больше.

Подскажите в каком направлении двигаться.

Спасибо!
...
Рейтинг: 0 / 0
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967573
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В направлении

Код: sql
1.
not exists(...)
...
Рейтинг: 0 / 0
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967582
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voodoos
Ребята и девчата!

Помогите плиз написать запрос. Есть 2 таблицы Session и User. В Таблице Session есть поле Data, с датой входа, и UserId, в которой хранится Id пользователя в таблице User.

Нужно написать хранимую процедуру с выборкой пользователей, которые не заходили в систему в течении указанного месяца — параметр хранимки. Есть еще один важный момент, таблицы User и Session очень большие, одних пользователей несколько миллионов, а сессий соответственно еще на порядки больше.

Подскажите в каком направлении двигаться.

Спасибо!

Хм, выбрать всех пользователей, для которых нет сессий в течение указанного месяца.

Это же прям на ходу переводится в SELECT ... FROM ... WHERE NOT EXISTS ...
...
Рейтинг: 0 / 0
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967626
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
В направлении
Код: sql
1.
not exists(...)



Дмитрий Мух
WHERE NOT EXISTS ...


Спасибо!

А с учетом того, что в обоих таблицах мульены записей, как лучше сделать?
...
Рейтинг: 0 / 0
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967647
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voodoos
А с учетом того, что в обоих таблицах мульены записей, как лучше сделать?
Обычно делать лучше так, чтобы работало быстро и не ело много ресурсов. Но могут быть варианты.
...
Рейтинг: 0 / 0
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967654
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voodoos
А с учетом того, что в обоих таблицах мульены записей, как лучше сделать?
NOT EXISTS быстро работает, но должны быть правильные индексы.
...
Рейтинг: 0 / 0
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967696
old_joy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mounts(Data) будет отрабатывать долго.
Потому я бы добавил это поле в таблицу сразу. И создал бы по нему индекс.
И вычислял бы его при вставке.
Будут потери по объему данных и незаметные потери по времени вставки, но выигрыш при запросе.
...
Рейтинг: 0 / 0
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967707
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если NOT EXISTS слишком долгий, то можно

как вариант, повесить на Session триггер, который бы записывал(обновлял) в некую таблицу LastIn данные о входе пользователя.
А потом, по этой таблице строить отчет

Еще вариант, заранее подготавливать данные за интервал джобой
...
Рейтинг: 0 / 0
Выборка из второй таблицы по отсутствующим записям по дате в первой
    #39967773
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voodoos
Ребята и девчата!

Помогите плиз написать запрос. Есть 2 таблицы Session и User. В Таблице Session есть поле Data, с датой входа, и UserId, в которой хранится Id пользователя в таблице User.

Нужно написать хранимую процедуру с выборкой пользователей, которые не заходили в систему в течении указанного месяца — параметр хранимки. Есть еще один важный момент, таблицы User и Session очень большие, одних пользователей несколько миллионов, а сессий соответственно еще на порядки больше.

Подскажите в каком направлении двигаться.

Спасибо!

Сделайте индексированную вьюху UserLogings поверх таблицы UserId, YearMonth, NLogins.

Код: sql
1.
2.
3.
SELECT UserId FROM Users u
LEFT JOIN UserLogings ul ON ul.YearMonth= 202003 AND ul.UserId = u.UserId
WHERE ul.UserId IS NULL 


А ещё лучше загрузите это дело в Вертику.

А русский язык говорит нам, что

в течение указанного месяца

Data= данные
Date= дата
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка из второй таблицы по отсутствующим записям по дате в первой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]