On 24.09.2008 13:15, Ded wrote:

Alexey Voytsehovich wrote:

втупую 6000 записей.
в каждой записи

код прибора
код типа данных
метка времени
значение



Чтения с Where Код_Прибора= и Код_Типа_Данных= в приложении нужны? Если
отбирается всё всегда по метке, то это просто оверкилл для сервака.


конечно. рисуются тренды отдельно по приборам и по разным типам,
бывают группировки - типа по этим паре приборов эти данные, а по
другим другие.


Тогда блоб не годится. А вот насчёт реструктуризации в "широкую" запись,
содержащую все данные на момент замера полями я бы подумал. При наличии
кол-во полей придется либо делать оч большим, либо динамически менять. проект все еще развивается и изменяется.
индексов по кодам скорость чтения практически не изменится, а вот
запись-удаление ускорится. Насчёт скорости сборки мусора после удаления
трудно сказать, с 300 индексами на таблице у меня опыта нет. Но я бы
у меня их только 3

CREATE INDEX IDX_MOMDATA1_NEW1 ON MOMDATA(ARDTIMESTAMP);

CREATE DESC INDEX IDX_MOMDATA2_NEW1 ON MOMDATA(ARDTIMESTAMP);

CREATE INDEX IDX_MOMDATA4_NEW1 ON 
MOMDATA(DEVID,TYPEDEVICE,CHANNELID,ARDTIMESTAMP);

при ddl
CREATE TABLE MOMDATA(
  DEVID Integer, ид прибора
  TYPEDEVICE Integer, тип прибора
  CHANNELID Integer, тип данных
  ARDTIMESTAMP Timestamp, метка времени
  DOUBLEVALUE Float значение
);
попробовал, имхо выигрыш от уменьшения количества записей должен быть
заметный.



Ответить