powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Количество свойств класса хранимых данных
9 сообщений из 9, страница 1 из 1
Количество свойств класса хранимых данных
    #38227850
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, чего-то я туплю...
Не могу найти - какое предельное количество свойств класса хранимых данных может быть и чтобы это не завалило систему?
Кто может сказать быстро по теме, тому огромное спасибо!!!
Остальным тоже спасибо!
...
Рейтинг: 0 / 0
Количество свойств класса хранимых данных
    #38227883
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKB,

наверно такое количество при котором $LB от всех их значений влез в разрешенную длину строки, так что полагаю все зависит от того какие значения будете писать там
...
Рейтинг: 0 / 0
Количество свойств класса хранимых данных
    #38227916
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKBОй, чего-то я туплю...
Не могу найти - какое предельное количество свойств класса хранимых данных может быть и чтобы это не завалило систему?
Кто может сказать быстро по теме, тому огромное спасибо!!!
Остальным тоже спасибо!
Кто же это Вам скажет, если структуру можно переопределять))
В случае структуры типа
^Class(ex)={строка свойств}
действует ограничение Cache на длину {строка свойств}.
В случае структуры типа
^Class(ex, идентификатор свойства)= значение свойства
логических ограничений нет.
Насколько я помню в X.Magic при 100 000 еще как-то работало))
...
Рейтинг: 0 / 0
Количество свойств класса хранимых данных
    #38227927
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKB ,

General System Limits

DAiMor ,

Изменив схему хранения, можно избежать это ограничение, о чём Бредятина уже написал.
...
Рейтинг: 0 / 0
Количество свойств класса хранимых данных
    #38228535
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, что не ответил сразу, даже первоначальное сообщение толком не написал - вызывали...
Спасибо, тем кто ответил.
Суть вопроса моего была вот в чем:
1. Есть восемь источников информации, которые способны отдавать данные в количестве ~1500 переменных, каждые 50 мс по протоколу ModBus-TCP. Эти данные необходимо регистрировать.
2. Драйвера, принимающие эти данные, работают асинхронно по отношению друг к другу. Из потока данных каждый драйвер должен формировать еще дополнительные события.
3. И принятые и сформированные данные должны быть синхронизированы по единому времени с точностью до 50 мс.
4. Теперь, вся принятая и сформированная информация,
а это примерно 1500*8 + 250*8 = 12000 + 2000 = 14000 переменных.
5. 2000 переменных это своя структура данных, 12000 переменных своя. Т.е. получается необходимо заполнять две таблицы данных.
6. Как организовать хранение свойств (не в едином $LB() ) я это понимаю.
7. Но вот теперь, собственно, сам вопрос - если это будет одна конструкция INSERT на 12000 полей, то не есть ли это тяжело для движка SQL? В принципе, есть возможность запись 12000 переменных разбить на восемь INSERT-ов, по количеству источников информации, что тоже не есть хорошо.

8. Была мысль - на запись пользоваться метода прямого доступа к данным, а SQL механизм использовать только на чтение, тем более что чтения будут крайне редки и никаких требований к скорости выборки не предъявляется - хоть пол дня на запрос.
9. Дальше больше, хранимые данные должны размещаться в сегментах (отдельных файлах БД), каждые сутки пишутся в первичный сегмент глубиной примерно на 60 - 180 суток и параллельно во вторичный сегмент глубиной в одни сутки. При наступлении новых суток монтируется новый вторичный сегмент, а предыдущий уходит в хранилище.
10. Если при запросе на чтение необходимы будут данные отсутствующие в первичном сегменте, то автоматически должны быть смонтированы ряд вторичных сегментов, в которых присутствуют запрашиваемые данные, а после чтения размонтированы.

Как выполнить эту работу на Cache, в целом уже представляю. Меня только мучает вопрос и сомнения по поводу большого количества полей в таблице, с точки зрения SQL-движка.
Если бы не этот SQL, то вообще не видно никаких препятствий.

PS: Черт возьми, пока писал - сказали все это необходимо сделать на MSSQL... Как там это делать - ума не приложу...
...
Рейтинг: 0 / 0
Количество свойств класса хранимых данных
    #38228614
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один довод в пользу MSSQL от руководства - в Тундре о Cache не знают, в Тундре знают только о MSSQL, возможно...
Веселый довод...

И все же, мой вопрос еще остался в силе.

Да, похоже, что мои доводы в пользу Cache уже не будут восприниматься...
Пойду грузить на другой форум своими проблемами...
...
Рейтинг: 0 / 0
Количество свойств класса хранимых данных
    #38229870
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKB1. Есть восемь источников информации, которые способны отдавать данные в количестве ~1500 переменных, каждые 50 мс по протоколу ModBus-TCP. Эти данные необходимо регистрировать.Если средняя длина значения каждой переменной хотя бы 10 байт, получается ~ 2.7MB/s, а это всё-таки довольно много. В Cache можно было бы отключить всё, что позволяет SQL INSERT, и, возможно, попробовать увеличить размер блока БД. При последовательной записи, к тому же длинных данных, это может пойти на пользу. Правда, последнее я не пробовал, т.к. решал сходную задачу ещё во времена Cache 5.0.

Не знаю, какую оптимизацию допускает MsSql.
...
Рейтинг: 0 / 0
Количество свойств класса хранимых данных
    #38231036
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov
Не знаю, какую оптимизацию допускает MsSql.

Да, пообщался на форуме MSSQL, читаю толстые книжки и так мне грустно стало...
...
Рейтинг: 0 / 0
Количество свойств класса хранимых данных
    #38231459
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexKB ,

Numbers of Supported Class Members
ПримерClass demo.test Extends %Persistent
{

ClassMethod Fill()
{
  
  set N=12000
  
  set c=##class(%Dictionary.ClassDefinition).%OpenId($classname())
  do c.Properties.Clear()
  for i=1:1:N {
    set p=##class(%Dictionary.PropertyDefinition).%New()
    set p.Name="p"_i
    do c.Properties.Insert(p)
  }
  do $system.OBJ.DisplayError(c.%Save())
  
  do $system.OBJ.Compile($classname())
}

}

Результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
TEST>do ##class(demo.test).Fill()
 
Компиляция началась в 18.04.2013 16:45:59 с квалификаторами ''
Компиляция класса: demo.test
ОШИБКА #5290: Класс содержит слишком много 'Property' членов '12002' из максимально поддерживаемых '1000'.
  > ОШИБКА #5030: Возникла ошибка при компиляции класса demo.test
Удаление изолированной таблицы: demo.test
Dropping orphaned procedure: DEMO.TEST_EXTENT
Обнаружено 1 ошибок за время компиляции 0.821сек.
Не рассматривали вариант объединения данных (разделитель/списки), если, конечно, это приемлемо для данной задачи?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Количество свойств класса хранимых данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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