|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
Ой, чего-то я туплю... Не могу найти - какое предельное количество свойств класса хранимых данных может быть и чтобы это не завалило систему? Кто может сказать быстро по теме, тому огромное спасибо!!! Остальным тоже спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2013, 16:31 |
|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
AlexKB, наверно такое количество при котором $LB от всех их значений влез в разрешенную длину строки, так что полагаю все зависит от того какие значения будете писать там ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2013, 16:52 |
|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
AlexKBОй, чего-то я туплю... Не могу найти - какое предельное количество свойств класса хранимых данных может быть и чтобы это не завалило систему? Кто может сказать быстро по теме, тому огромное спасибо!!! Остальным тоже спасибо! Кто же это Вам скажет, если структуру можно переопределять)) В случае структуры типа ^Class(ex)={строка свойств} действует ограничение Cache на длину {строка свойств}. В случае структуры типа ^Class(ex, идентификатор свойства)= значение свойства логических ограничений нет. Насколько я помню в X.Magic при 100 000 еще как-то работало)) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2013, 17:04 |
|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
AlexKB , General System Limits DAiMor , Изменив схему хранения, можно избежать это ограничение, о чём Бредятина уже написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2013, 17:08 |
|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
Извиняюсь, что не ответил сразу, даже первоначальное сообщение толком не написал - вызывали... Спасибо, тем кто ответил. Суть вопроса моего была вот в чем: 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... Как там это делать - ума не приложу... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2013, 09:45 |
|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
Еще один довод в пользу MSSQL от руководства - в Тундре о Cache не знают, в Тундре знают только о MSSQL, возможно... Веселый довод... И все же, мой вопрос еще остался в силе. Да, похоже, что мои доводы в пользу Cache уже не будут восприниматься... Пойду грузить на другой форум своими проблемами... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2013, 10:26 |
|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
AlexKB1. Есть восемь источников информации, которые способны отдавать данные в количестве ~1500 переменных, каждые 50 мс по протоколу ModBus-TCP. Эти данные необходимо регистрировать.Если средняя длина значения каждой переменной хотя бы 10 байт, получается ~ 2.7MB/s, а это всё-таки довольно много. В Cache можно было бы отключить всё, что позволяет SQL INSERT, и, возможно, попробовать увеличить размер блока БД. При последовательной записи, к тому же длинных данных, это может пойти на пользу. Правда, последнее я не пробовал, т.к. решал сходную задачу ещё во времена Cache 5.0. Не знаю, какую оптимизацию допускает MsSql. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2013, 19:03 |
|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
Alexey Maslov Не знаю, какую оптимизацию допускает MsSql. Да, пообщался на форуме MSSQL, читаю толстые книжки и так мне грустно стало... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2013, 15:29 |
|
Количество свойств класса хранимых данных
|
|||
---|---|---|---|
#18+
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2013, 18:08 |
|
|
start [/forum/topic.php?fid=39&fpage=28&tid=1557180]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 145ms |
0 / 0 |