Я пытаюсь передать numerical matrix operations library
как LAPACK с любым DBMS.
Это возможно send/receive
полные матрицы как двоичные или как прямые указатели памяти для их обработки (это будет что-то вроде: внешняя библиотека обрабатывает данные, хранящиеся в СУБД, затем вычисляет некоторые огромные матричные данные, а затем через блок памяти или двоичную СУБД получает результат из библиотеки )?
Основная цель - скорость и избежать прохождения через плоский файл, и, наконец, что не менее важно, использовать библиотеку для эффективного выполнения некоторых операций, для которых СУБД не предназначена.
* Is it possible that Oracle, SQL Server, MySQL support this technique?.
Oracle поддерживает матричные операции, включая команды, совместимые с LAPACK.
Взгляните на пакет Oracle UTL_NLA чтобы дать вам отправную точку. Я думаю, вам лучше либо использовать инструменты базы данных, либо полностью отказаться от базы данных - способ, которым вы, похоже, хотите подойти, ну, на самом деле, это не РСУБД.
Вы можете сохранить копию данных в кеше локально, чтобы избежать другой передачи, если она не изменилась с момента последнего доступа. Это будет закодировано полностью вне СУБД.
Нет, невозможно, неразумно. Данные БД являются транзакционными, а использование совместной памяти с операциями - это настоящий ад. Определенно не "обработка указателей вокруг". Возможно, но тогда вам потребуется, чтобы клиентские библиотеки были ОЧЕНЬ хорошими / находились под контролем ИЛИ выполняли много накладных расходов, а это означает, что больше не нужно идти.
Похоже, у вас довольно много требований, которые не совпадают. РСУБД, стандартные продукты, не оптимизированы для вашего типа работы.
Лучшее, что вы могли бы сделать, это:
Тогда вы можете получить доступ к BLOB-объектам через файловый ресурс, который должен разрешать файлы с отображением памяти. Не экспортировать - это файлы. Каждая фиксация создает новую копию с другим именем. Вы получаете имена в sql из базы данных (это GUID).
Возможно, это наиболее эффективный способ справиться с этим.