|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Работаю с Таблицей (уже не называю База Данных). Копирую данные в оперативку. Количество столбцов более 10 и это принципиально. Еcть значение aaa(1.1) и aaa(1.10). Если задать 1.1, а затем задать 1.10 и считать данные из 1.1, то Каше выдаст нам данные из памяти со значением 1.10 Пример кода и результатов ниже. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 07:48 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Если же сделать по другому, то результаты получаются нормальные/адекватные Назначив не 1.1, а 1.001 и не 1.2, а 1.002 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Вопрос. С чем это может быть связано и почему происходит именно так. Ошибка обнаружилась совершенно случайно, т.к. в первом поле у меня всегда стоит ДАТА и только из-за этого обнаружилась проблема. . ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 07:51 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Да и еще. Почему могу дать имя aaa(1.001) и не могу дать имя aaa(1.Data) или aaa(1."Data") ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 07:55 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-ОЕcть значение aaa(1.1) и aaa(1.10). Если задать 1.1, а затем задать 1.10 и считать данные из 1.1, то Каше выдаст нам данные из памяти со значением 1.10 Пример кода и результатов ниже. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Так и должно быть. Ибо Код: html 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 08:21 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-ОДа и еще. Почему могу дать имя aaa(1.001) и не могу дать имя aaa(1.Data) или aaa(1."Data") Тут кагбэ нужно правильно "давать". Код: javascript 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 08:23 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-О, Ваша "проблема" заключается в том, что вы значения пишете ч числовом представлении. И вы должны знать, что 1.1 и 1.10 это одно и то же число. И поэтому предыдущее значение терялось. А вот если бы вы взяли значение в кавычки, то оно бы стало текстом, и тогда было бы уже все равно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
привести числовое значение к текстовому можно просто прибавив его с пустой строке, но нужно понимать ""_1.20 даст "1.2" а не "1.20" О-О-ОПочему могу дать имя aaa(1.001) и не могу дать имя aaa(1.Data) или aaa(1."Data") А это вообще как вы себе представляете? почему не делать так как все? aaa("1.Data") ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 08:24 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-ОВопрос. С чем это может быть связано и почему происходит именно так. В первом варианте (1.20) Каше "не хранит" "концевые" нули, т.к. они никому не нужны. И я х/з какие ЯП вообще такое хранят, всегда "концевые" нули "исчезали". По второму вопросу... Что вообще такое Код: javascript 1.
или Код: javascript 1.
т.е. как ты собирался интерпретировать этот синтаксис? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 08:27 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
С последним вопросом ответ нашулся. Нужно было просто делать Код: sql 1.
Просто нужна была ЗАПЯТАЯ, а не ТОЧКА! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:04 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-ОС последним вопросом ответ нашулся. Алилуя, брат! (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:05 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Немного статистики. Может кому пригодится для оптимизации. Имеется таблица на 395000 строк. В таблице 154 столбца. Если данные копировать в оперативку как EndID - это последняя запись в таблице (394000) Код: sql 1. 2. 3. 4. 5. 6.
c Вариант №2 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Такой вариант занимает ВСЕГО 114 секунд НО остаётся ВСЕГО 2.027 Гб из 9.863 Gb выделенных. Самый быстрый вариант, но самый затратный по оперативке. Вариант получается нечитабельным, т.к. нужно держать в памяти что означает номер с реальными полем из таблицы. Вариант №3 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:23 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Вариант №3 Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Такой вариант занимает 144.40 секунды и остаётся 4.028 Гб из 9.863 Gb выделенных. Средний вариант, как по быстроте так и по занимаемой Оперативке. Зато полностью читабелен, т.к. имена данных аналогичные именам данных из таблицы. Время с удалением данных из оперативки составило 150.39 сек. БОЛЬШАЯ ПРОБЛЕМА ВАРИАНТА №1 ЭТО УДАЛЕНИЕ ФАЙЛА ИЗ ОПЕРАТИВКИ. Расчет/копирование занял 233.17 секунды (вот прямо сейчас), а с удалением данных из оперативки занял уже 356.48 сек!!! То есть очень долгий по исполнению (по полному циклу исполнения кода). Таких проблем с вариантом №2 и вариантом №3 нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:39 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Вариант №1 For i=1:1:EndID { Set aaaNew=$System.OBJ.OpenId(BDAnaliz,(i)) // Где BDAnaliz Это БД откуда будут копироваться данные Set aaa(i)=aaaNew } Время исполнения составило 233.17 сек. Доступно 7.324 Гб из 9.863 Гб. Время с удалением данных из оперативки (для дальнейшего выполнения кода уже составило) 356.48 сек. Но этот вариант читабелен, т.к позволяет напрямую обращяться к данным в формате aaa(1).Data И данные представлены в такой же структуре, что и таблица. То есть aaa(1).Data aaa (345).Vrema все также как и в обычной таблице на жестком диске. Очень читабельная и удобна для работы, но жутко долго загружается и столько же удаляется из оперативки! . ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:46 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Пардон, в варианте №3 закрылась ошибка вместо Код: sql 1.
нужно писать Код: sql 1.
то есть не точка, а запятая! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:50 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-О, А это прямо необходимость такая иметь одновременно открытых в памяти 395000 объектов (все открываются и не закрываются ни разу !) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:53 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Глюк_Каше, Для кого то да. Это комбинаторика, перебор вариантов. Если это делать с SSD диска, то уходит около 60-75 минут. Если этот же код делать с данными, скопированными в оперативку, то уходит около 10 минут. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:59 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
А меня всегда настораживали таблицы, где О-О-ОВ таблице 154 столбца. И прям все 154 параметра заполнены у каждой строки? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 09:59 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-ОЭто комбинаторика, перебор вариантов. Не стоит забывать, что Каше это первым делом NoSQL и некоторые энергоемкие задачи удобнее решать именно в этом направлении, а не табличном. ;) Про саму задачку ты ведь нам не рассказал... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:02 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
да, и все 154 параметра заполнены в каждой строке (реально заполнены)!. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:03 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Наше дело поделиться, кому то может и пригодится. Я сижу на Каше, потому что нет задач, которые нельзя на нём сделать да и скорость его в моём понимании впечатляет. Да и поздно уже на что то другое переходить. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:05 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-Ода, и все 154 параметра заполнены в каждой строке (реально заполнены)!. Все равно остается подозрение, что ты свернул не туда... Но без знания проблемы ничего больше не скажешь. Ну не должны данные так перелопачиваться. Тут что-то не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:05 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-О , наша практика работы с ЦОДом показала, что на мощных серверах хорошим подспорьем является "многоджобная" технология обработки данных (это наш термин). Т.е. если разбить "линейную" обработку данных на "куски" и все эти куски обработать отдельным, дочерним процессом, то время обработки практически "делится" на количество этих дочерних джобов. ;) А вот по каким критериям делать те "куски", это уже решается индивидуально по каждой задаче/проблеме... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:10 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-О, Тогда попробуйте, как подсказал krvsa, использовать глобалы напрямую (минуя объектный доступ и SQL). Просто перед именем пишете ^ и все. Например: set ^tbx( 1, "Vrem" ) = 1547. Первый индекс от 1 до 395000, а второй - хоть текстовый по имени колонки, хоть числовой (если время, допустим, всегда считать полем № 2, то вместо "Vrem" пишем - 2). А вообще-то, krvsa прав - странная обработка данных. Но без озвученных условий Вам трудно помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:14 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Глюк_Каше, Я просто поделился. Помощи не просил. Что касается много потоковости - наверное так будет быстрее, но мне удобнее так. Просто никогда не знаешь, какие данные потребуются. К тому же они служат ТОЛЬКО ДЛЯ АНАЛИЗА данных по истории (выработка стратегии). Сами торги не идут с таким перелопачиванием данных. Там все проще и быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:37 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
Глюк_КашеО-О-О, Тогда попробуйте, как подсказал krvsa, использовать глобалы напрямую (минуя объектный доступ и SQL). Просто перед именем пишете ^ и все. Например: set ^tbx( 1, "Vrem" ) = 1547. Первый индекс от 1 до 395000, а второй - хоть текстовый по имени колонки, хоть числовой (если время, допустим, всегда считать полем № 2, то вместо "Vrem" пишем - 2). А вообще-то, krvsa прав - странная обработка данных. Но без озвученных условий Вам трудно помочь. Вот как раз таким способом анализ и будет длится 60-75 минут. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:38 |
|
Глюк Cache с оперативкой или это норма?
|
|||
---|---|---|---|
#18+
О-О-ОЯ просто поделился. Помощи не просил.Зря вы так, для этого форумы и нужны по сути. Никогда нельзя быть уверенными что выбрали единственно верную стратегию. Когда процессы занимают продолжительное время все есть варианты которые могут его ускорить. И будут появлятся новые, при появлении например новых видов оборудования. Вы например решили свою задачу таким способом, другие решали другим способом. Варианты можно сравнивать и выбирать лучшую стратегию. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2017, 10:49 |
|
|
start [/forum/topic.php?fid=39&msg=39507254&tid=1556326]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 416ms |
0 / 0 |