Подойдет ли In-Memory Database Driver?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- ingasoftplus
- Ветеран
- Сообщения: 426
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Подойдет ли In-Memory Database Driver?
Есть у нас в словаре несколько таблиц ТПС, которые используются внутри некоторых процедур в разных приложениях (используется 1 словарь). Эти таблицы используются как временные, для подготовки сводных данных, одноразово, при открытии процедур. После выхода из процедуры как правило данные из этих таблиц никому не нужны и отдельно от процедуры - не актуальны. А все остальное крутится на СКЛ таблицах.
Вот и озадачилось наше руководство - вообще уйти от ТПС. Говорят - будем все переделывать под очереди (взамен тех ТПС). легко сказать - под очереди, там и логику и код придется менять, и ошибки можно допустить, и потом отлаживать код, который до этого годами работал...
Вот я вспомнил - про In-Memory Database Driver! Поможет ли оно мне??? Если я для тех ТПСов заменю драйвер на MEMORY - все останется неизменным?? код править будет не надо???
Расскажите мне про In-Memory Database Driver - что за зверь вообще, и поможет ли мне в частности!
Спасибо!!
Вот и озадачилось наше руководство - вообще уйти от ТПС. Говорят - будем все переделывать под очереди (взамен тех ТПС). легко сказать - под очереди, там и логику и код придется менять, и ошибки можно допустить, и потом отлаживать код, который до этого годами работал...
Вот я вспомнил - про In-Memory Database Driver! Поможет ли оно мне??? Если я для тех ТПСов заменю драйвер на MEMORY - все останется неизменным?? код править будет не надо???
Расскажите мне про In-Memory Database Driver - что за зверь вообще, и поможет ли мне в частности!
Спасибо!!
Последний раз редактировалось ingasoftplus 09 Ноябрь 2015, 20:50, всего редактировалось 1 раз.
Подойдет ли In-Memory Database Driver?
Если всё перефразировать - необходима замена временных таблиц хранящихся в физических файлах TPSingasoftplus писал(а): Если у нас в словаре несколько таблиц ТПС, которые используются внутри некоторых процедур в разных приложениях (используется 1 словарь). Эти таблицы используются как временные, для подготовки сводных данных, одноразово, при открытии процедур. После выхода из процедуры как правило данные из этих таблиц никому не нужны и отдельно от процедуры - не актуальны. А все остальное крутится на СКЛ таблицах.
Вот и озадачилось наше руководство - вообще уйти от ТПС. Говорят - будем все переделывать под очереди (взамен тех ТПС). легко сказать - под очереди, там и логику и код придется менять, и ошибки можно допустить, и потом отлаживать код, который до этого годами работал...
Вот я вспомнил - про In-Memory Database Driver! Поможет ли оно мне??? Если я для тех ТПСов заменю драйвер на MEMORY - все останется неизменным?? код править будет не надо???
на временные таблицы хранящиеся в "виртуальных файлах" оперативной памяти - правильно?
С Уважением, Developer
- ingasoftplus
- Ветеран
- Сообщения: 426
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Подойдет ли In-Memory Database Driver?
да! и чтоб код не трогатьDeveloper писал(а):Если всё перефразировать - необходима замена временных таблиц хранящихся в физических файлах TPSingasoftplus писал(а):
Вот и озадачилось наше руководство - вообще уйти от ТПС. Говорят - будем все переделывать под очереди (взамен тех ТПС). легко сказать - под очереди, там и логику и код придется менять, и ошибки можно допустить, и потом отлаживать код, который до этого годами работал...
Вот я вспомнил - про In-Memory Database Driver! Поможет ли оно мне??? Если я для тех ТПСов заменю драйвер на MEMORY - все останется неизменным?? код править будет не надо???
на временные таблицы хранящиеся в "виртуальных файлах" оперативной памяти - правильно?
и еще, проги собираются с локал моде (1 ехе), под с63, с8 и с10 (в будущем).
Подойдет ли In-Memory Database Driver?
Если как только временные таблицы без общего доступа (монопольный доступ) - думаю такой вариант пройдёт.
А какие объёмы информации в промежуточных файлах TPS - если в пределах до 1/10 RAM разумный подход
Проще создать виртуальный RAM диск и переместить туда временные файлы TPS - и нет проблем
И никакой перестройки кода Clarion
А какие объёмы информации в промежуточных файлах TPS - если в пределах до 1/10 RAM разумный подход
Проще создать виртуальный RAM диск и переместить туда временные файлы TPS - и нет проблем
И никакой перестройки кода Clarion
С Уважением, Developer
-
- ✯ Ветеран ✯
- Сообщения: 1703
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Подойдет ли In-Memory Database Driver?
И мне тоже было бы интересно, только ноги не дошли Хотя пробовал, но что-то не срослось
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- ingasoftplus
- Ветеран
- Сообщения: 426
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Подойдет ли In-Memory Database Driver?
объемы - да небольшие, порядка 100 записей (как правило значительно меньше), да - доступ монопольный. сами файлы после обработки - не нужны...Developer писал(а): Если как только временные таблицы без общего доступа (монопольный доступ) - думаю такой вариант пройдёт.
А какие объёмы информации в промежуточных файлах TPS - если в пределах до 1/10 RAM разумный подход
Проще создать виртуальный RAM диск и переместить туда временные файлы TPS - и нет проблем
И никакой перестройки кода Clarion
- ingasoftplus
- Ветеран
- Сообщения: 426
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Подойдет ли In-Memory Database Driver?
и еще вопрос - как там с версиями этого драйвера под версию Клариона? Нужна специфическая версия именно под билб Клариона или пойдет любая под версию (ну например, под с63 вообще или нужны именно под 9057 например?? еще раз - у нас локал мод компиляция, 1 ехе)
Подойдет ли In-Memory Database Driver?
Идея с In-Memory Database Driver в качестве временного хранилища отчётов которые потом никому ненужны
очень хороша, но вот с реализацией по замене с TPS на In-Memory Database Driver в лоб у меня конкретного ответа нет.
Применение RAM диска и перемещение (создание пустого промежуточного файла TPS в RAM диске) - намного проще
Но есть недостаток: заранее неизвестно какой объём RAM диска резервировать (создавать) - экспериментальным путём возможно решить этот вопрос
очень хороша, но вот с реализацией по замене с TPS на In-Memory Database Driver в лоб у меня конкретного ответа нет.
Применение RAM диска и перемещение (создание пустого промежуточного файла TPS в RAM диске) - намного проще
Но есть недостаток: заранее неизвестно какой объём RAM диска резервировать (создавать) - экспериментальным путём возможно решить этот вопрос
С Уважением, Developer
- ingasoftplus
- Ветеран
- Сообщения: 426
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Подойдет ли In-Memory Database Driver?
а что сложного может быть в реализациеи по замене с TPS на In-Memory Database Driver в лоб?? по логике, заменить в словаре драйвер и все?
Подойдет ли In-Memory Database Driver?
По логике все возможно просто - а вот на практике совсем другое дело
Надо провести практический эксперимент
Идея интересная - вот только для Clarion 6 не уверен что был In-Memory Database Driver
Для версии Clarion 8 - есть точно!
С Уважением, Developer
Подойдет ли In-Memory Database Driver?
In Memory драйвер
In Memory драйвер - это новый стандартный файловый драйвер для Clarion. In Memory драйвер - это ISAM драйвер, но в отличие от всех ISAM драйверов, этот драйвер не использует для хранения данных дисковые файлы. Все данные хранятся в памяти компьютера, благодаря чему драйвер обладает рядом уникальных свойств:
рекордно высокое быстродействие;
исключительно монопольгый доступ к данным. Загрузив данные в MEMORY-файл, Вы можете быть уверены в полной их безопасности и конфедициальности. Даже два экземпляра программы, выполняющиеся на одном ПК, будут работать с разными экземплярами данных. Добавим, что данные будут автоматически уничтожены при завершении программы (любым способом). Это оказывается весьма полезным для WEB-приложений. Кроме автоматического уничтожения всех загруженных данных у Вас никогда не будет проблем с потерянными временными файлами.
поскольку MEMORY-файлы создаются при каждом запуске приложения заново, нет необходимости в конвертации данных при изменении формата записи.
MEMORY-файлы можно использовать вместо глабыльных QUEUE структур, при этом вам не нужно обеспечивать синхронизацию доступа из разных процессов, поскольку такая синхронизация уже встроена в драйвер.
Основное назначение этого драйвера - создание временных индивидуальных таблиц и работа с ними. Вот некоторые возможные области применения драйвера:
Временная таблица для ввода и редактирования записей дочернего файла с последующей выгрузкой данных в БД в рамках одной транзакции с родительским файлом.
Буфер для размещения результатов SQL запроса. Данные в таком буфере можно в дальнейшем фильтровать, сортировать, исполнять QBE/QBF запросы с помощью любых стандартных или специальных средств совершенно не затрагивая сервер и сетевые ресурсы. Более того, такая методология позволяет максимально быстро освободить используемые для выполнения запроса ресурсы SQL сервера и сушественно сократить сетевой трафик.
Использование MEMORY-файла позволяет сократить количество ключей и индексов в файле БД до минимума. Например, если для построения редко используемого отчета необходим специальный индекс, этот индекс м.б. описан только в MEMORY-файле, а в дисковом файле его может не быть. Таким способом можно уменьшить ресурсоемкость БД и повысить скорость выполнения операций редактирования таблиц.
Вы можете не только сократить количество ключей и индексов, но и избавиться от необходимости конвертирования БД в тех случаях, когда при развитии системы потребуется добавить новый индекс. Просто добавьте его в MEMORY-файле.
Вы можете строить рабочий "файл" собирая данные из нескольких источников, причем такими источниками м.б. не только физические файлы различных форматов. Например, часть конфигурационных данных Вы можете загрузить с сервера компании, а часть из локального файла, в котором хранятся специфические для лично Ваших функций данные.
В некоторых случаях использование MEMORY-файла позволяет имитировать функции VIEW SQL-сервера и изолировать логическую структуру данных от их физического представления. Например на этом можно построить разграничение прав доступа для файл-серверных ISAM БД. Причем, Вы можете полностью разделить вопросы проектирования бизнес логики и системы разграничения доступа.
In Memory драйвер - это новый стандартный файловый драйвер для Clarion. In Memory драйвер - это ISAM драйвер, но в отличие от всех ISAM драйверов, этот драйвер не использует для хранения данных дисковые файлы. Все данные хранятся в памяти компьютера, благодаря чему драйвер обладает рядом уникальных свойств:
рекордно высокое быстродействие;
исключительно монопольгый доступ к данным. Загрузив данные в MEMORY-файл, Вы можете быть уверены в полной их безопасности и конфедициальности. Даже два экземпляра программы, выполняющиеся на одном ПК, будут работать с разными экземплярами данных. Добавим, что данные будут автоматически уничтожены при завершении программы (любым способом). Это оказывается весьма полезным для WEB-приложений. Кроме автоматического уничтожения всех загруженных данных у Вас никогда не будет проблем с потерянными временными файлами.
поскольку MEMORY-файлы создаются при каждом запуске приложения заново, нет необходимости в конвертации данных при изменении формата записи.
MEMORY-файлы можно использовать вместо глабыльных QUEUE структур, при этом вам не нужно обеспечивать синхронизацию доступа из разных процессов, поскольку такая синхронизация уже встроена в драйвер.
Основное назначение этого драйвера - создание временных индивидуальных таблиц и работа с ними. Вот некоторые возможные области применения драйвера:
Временная таблица для ввода и редактирования записей дочернего файла с последующей выгрузкой данных в БД в рамках одной транзакции с родительским файлом.
Буфер для размещения результатов SQL запроса. Данные в таком буфере можно в дальнейшем фильтровать, сортировать, исполнять QBE/QBF запросы с помощью любых стандартных или специальных средств совершенно не затрагивая сервер и сетевые ресурсы. Более того, такая методология позволяет максимально быстро освободить используемые для выполнения запроса ресурсы SQL сервера и сушественно сократить сетевой трафик.
Использование MEMORY-файла позволяет сократить количество ключей и индексов в файле БД до минимума. Например, если для построения редко используемого отчета необходим специальный индекс, этот индекс м.б. описан только в MEMORY-файле, а в дисковом файле его может не быть. Таким способом можно уменьшить ресурсоемкость БД и повысить скорость выполнения операций редактирования таблиц.
Вы можете не только сократить количество ключей и индексов, но и избавиться от необходимости конвертирования БД в тех случаях, когда при развитии системы потребуется добавить новый индекс. Просто добавьте его в MEMORY-файле.
Вы можете строить рабочий "файл" собирая данные из нескольких источников, причем такими источниками м.б. не только физические файлы различных форматов. Например, часть конфигурационных данных Вы можете загрузить с сервера компании, а часть из локального файла, в котором хранятся специфические для лично Ваших функций данные.
В некоторых случаях использование MEMORY-файла позволяет имитировать функции VIEW SQL-сервера и изолировать логическую структуру данных от их физического представления. Например на этом можно построить разграничение прав доступа для файл-серверных ISAM БД. Причем, Вы можете полностью разделить вопросы проектирования бизнес логики и системы разграничения доступа.
С Уважением, Developer
- ingasoftplus
- Ветеран
- Сообщения: 426
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Подойдет ли In-Memory Database Driver?
ну эт мы и по ингишу прочитали
хотелось бы реальных историй
а под с63 он точно есть
хотелось бы реальных историй
а под с63 он точно есть
- Игорь Столяров
- Ветеран движения
- Сообщения: 7398
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
Подойдет ли In-Memory Database Driver?
In-Memory драйвер есть под все версии Clarion (C63, C7, C8, C9, C91, C10)
Можно просто заменить драйвер TPS на In-Memory, загрузить списки и все будет работать, никаких проблем.
Следует обратить внимание на некоторые незначительные расхождения в поддерживаемых полях (например BLOB)
командах (например LOGOUT) и т.д.
Используем In-Memory с того доисторического времени, когда они только появились в Clarion.
На них построены практически все запросы, удобно, что есть возможность изолировать файл In-Memory в потоке (MDI)
и использовать стандартные шаблоны для обработки записей (Browse, Form, Report, EIP и т.д.)
Рекомендую в Global Settings сразу отключить для In-Memory таблиц "Use RI Transaction Frame" - иногда бывает
конфликт в стандартных шаблонах (например с EIP).
Что плохо: нет возможности бинарной загрузки / выгрузки всего файла. Т.е. если есть файл, предположим с 10 000
неизменяемых записей - то каждый раз придется его формировать через Add() (или Append()) по одной записи ...
Открытие In-Memory файла в монопольном режиме ощутимо повышает скорость работы с ним (порядка 20%).
Использование связки Append() + Build() вместо Add() - добавит еще 10% (зависит от кол-ва ключей и размера полей в них).
Прекрасный инструмент. Начиная с C9 практически безглючный и стабильно работающий. Если кратко - то где-то так.
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 1014
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Подойдет ли In-Memory Database Driver?
ещё с очисткой баз перед при повторном использовании аккуратно надо
- ingasoftplus
- Ветеран
- Сообщения: 426
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Подойдет ли In-Memory Database Driver?
спасибо, Игорь!Игорь Столяров писал(а):In-Memory драйвер есть под все версии Clarion (C63, C7, C8, C9, C91, C10)
Можно просто заменить драйвер TPS на In-Memory, загрузить списки и все будет работать, никаких проблем....
...
Прекрасный инструмент. Начиная с C9 практически безглючный и стабильно работающий. Если кратко - то где-то так.