Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка из второй таблицы по отсутствующим записям по дате в первой / 9 сообщений из 9, страница 1 из 1
09.06.2020, 20:41
    #39967572
voodoos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из второй таблицы по отсутствующим записям по дате в первой
Ребята и девчата!

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

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

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

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

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

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

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

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

Спасибо!

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

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



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


Спасибо!

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

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

Еще вариант, заранее подготавливать данные за интервал джобой
...
Рейтинг: 0 / 0
10.06.2020, 11:38
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка из второй таблицы по отсутствующим записям по дате в первой / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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