powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / корректно сформировать запросс объединением 1-й табоице
7 сообщений из 7, страница 1 из 1
корректно сформировать запросс объединением 1-й табоице
    #32065378
Фотография netfrog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица аудита подключений пользователей:
Код: plaintext
1.
2.
3.
( 1 -й вариант)
idUser   |    dateTime    |    logon    |   logout
(int)            (date)            (bit)           (bit)

Собственно вопрос: нормально ли оргнизованы данные? может имело смысл создать ее в следующем виде:
Код: plaintext
1.
2.
( 2 -й вариант)
idUser   |    dateTimeLogon    |    dateTimelogout

а если нормально, то можно ли без временной таблицы одним запросом потянуть это к виду который предложен во втором варианте таблицы?
...
Рейтинг: 0 / 0
корректно сформировать запросс объединением 1-й табоице
    #32065406
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И первый, и второй варианты не будут работать, если возможны несколько одновременных сессий одного пользователя.
Если это невозможно, то имеет смысл удалить одно из полей logon, logout, а оставшееся назвать LogStatus (bit, 1 если On, 0 если Out).
Код: plaintext
1.
2.
3.
select L1.idUser,L1.dateTime as dateTimeLogon,(select top  1  dateTime from AuditLog where idUser = L1.idUser and dateTime>L1.dateTime and LogStatus= 0  order by dateTime asc) as dateTimelogout
from AuditLog
where LogStatus =  1 
...
Рейтинг: 0 / 0
корректно сформировать запросс объединением 1-й табоице
    #32065435
Фотография netfrog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одновременное подключение невозможно, вот посетила мысль, может поля logon и logout сократить до одного? те - 0 login 1 - logout ? Или это мания оптимизации?
...
Рейтинг: 0 / 0
корректно сформировать запросс объединением 1-й табоице
    #32065457
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем примере так и сделано.
Это не оптимизация, а нормализация.
...
Рейтинг: 0 / 0
корректно сформировать запросс объединением 1-й табоице
    #32065606
Snark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V chem zhe optimizacija dlja tablicy :

idUser | dateTime | LogStatus
(int) (date) (bit)

po sravneniju s tablicej :

idUser | dateTimeLogon | dateTimelogout

?

v pervom sluchae nuzhno sozdat' 2 zapisi : dlja logon i dlja logout, gde idUser budet povtorjat'sja

vo vtorom sluchae zapis' unikal'na dlja kazhdoogo vizita i nichego ne povtorjaetsja,
ja by predpochel vtoroj variant

Snark
...
Рейтинг: 0 / 0
корректно сформировать запросс объединением 1-й табоице
    #32065652
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же сказал про нормализацию. К тому же я говорил о первом варианте таблицы.
А вообще при данной постановке задачи второй вариант действительно лучше.
...
Рейтинг: 0 / 0
корректно сформировать запросс объединением 1-й табоице
    #32065737
Фотография netfrog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, спасбио, кроме прочего ради эксперимента создал лог для того и того варианта на 800 000 записей, второй вариант отрабатывается быстрее в среднем на 4 секунды.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / корректно сформировать запросс объединением 1-й табоице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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