Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 оптимальная таблица  [new]
linav
Guest
подскажите, пожалуйста, правильную структуру таблицы и индексов
в таблицу из ПЛК будет ежесекундно записываться 1 бит, обозначающий работает оборудование или нет
потом на основании этой таблицы будет рассчитываться время простоя и работы
максимальное время хранения не более суток
предполагаю вот такую структуру
create table downtime (
	stat bit not null default (0),
	tm datetime not null default (getdate())
	)

стоит ли делать какие-то индексы? я подумала, что primary key на tm?
19 фев 14, 10:04    [15587358]     Ответить | Цитировать Сообщить модератору
 Re: оптимальная таблица  [new]
aleks2
Guest
create table downtime (
	stat bit not null default (0),
	tm datetime not null default (getdate()),
	id int identity,
	primary key clustered (tm, id)
	)


И не надо туды писать ежесекундно, надо писать, только если состояние изменилось.
19 фев 14, 10:20    [15587492]     Ответить | Цитировать Сообщить модератору
 Re: оптимальная таблица  [new]
linav
Guest
aleks2
create table downtime (
	stat bit not null default (0),
	tm datetime not null default (getdate()),
	id int identity,
	primary key clustered (tm, id)
	)


И не надо туды писать ежесекундно, надо писать, только если состояние изменилось.


спасибо!
но на счет того, чтобы писать ежесекундно или по изменению состояния, то это, к сожалению, не я решаю
сказали, что будут писать ежесекундно
если только триггером мне самой не записывать, пока не измениться состояние
19 фев 14, 10:31    [15587587]     Ответить | Цитировать Сообщить модератору
 Re: оптимальная таблица  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
linav
aleks2
create table downtime (
	stat bit not null default (0),
	tm datetime not null default (getdate()),
	id int identity,
	primary key clustered (tm, id)
	)


И не надо туды писать ежесекундно, надо писать, только если состояние изменилось.


спасибо!
но на счет того, чтобы писать ежесекундно или по изменению состояния, то это, к сожалению, не я решаю
сказали, что будут писать ежесекундно
если только триггером мне самой не записывать, пока не измениться состояние
Как-то так?
insert downtime (stat, tm)
select @stat, @tm
where (select top(1) stat from downtime order by tm desc, id desc)!=@stat
19 фев 14, 10:45    [15587701]     Ответить | Цитировать Сообщить модератору
 Re: оптимальная таблица  [new]
linav
Guest
Cygapb-007
linav
пропущено...


спасибо!
но на счет того, чтобы писать ежесекундно или по изменению состояния, то это, к сожалению, не я решаю
сказали, что будут писать ежесекундно
если только триггером мне самой не записывать, пока не измениться состояние
Как-то так?
insert downtime (stat, tm)
select @stat, @tm
where (select top(1) stat from downtime order by tm desc, id desc)!=@stat


да, неверное, почти так в триггер instead of, только insert downtime (stat) select stat from inserted ...
насколько я понимаю, то opc сервер в любом случае только по одной строке будет каждый раз писать
19 фев 14, 11:22    [15587999]     Ответить | Цитировать Сообщить модератору
 Re: оптимальная таблица  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
linav
opc сервер в любом случае только по одной строке будет каждый раз писать
орс - это что?
Простите меня, тёмного...
19 фев 14, 11:46    [15588252]     Ответить | Цитировать Сообщить модератору
 Re: оптимальная таблица  [new]
linav
Guest
iap
linav
opc сервер в любом случае только по одной строке будет каждый раз писать
орс - это что?
Простите меня, тёмного...

OLE for Process Control
ну как бы вот
:)
19 фев 14, 14:27    [15590216]     Ответить | Цитировать Сообщить модератору
 Re: оптимальная таблица  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Но что мешает каждый раз писать более одной строки?
Если вот этот вот OPC, то зачем он вообще нужен? Для торможения что ли?
Интересен ещё вопрос о количестве разных клиентов, каждый из которых
будет пытаться посылать запрос раз в секунду.
Печёнкой чую, невозможно выполнить столько запросов каждую секунду.

Да, кстати, тип BIT - это вовсе и не 1 бит!!!
19 фев 14, 14:37    [15590333]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить