Может ли СУБД отправлять / получать огромные матрицы? - PullRequest
1 голос
/ 18 марта 2011

Я пытаюсь связаться с LAPACK библиотекой и .net, чтобы я мог выполнить некоторую обработку вне СУБД.

Возможно ли send/receive заполнить матрицы в двоичном или в видепрямые указатели памяти для их обработки?Основная цель - скорость и избегание прохождения через плоский файл.

  • Возможно ли, что Oracle, SQL Server, MySQL поддерживает эту технику?
  • Что насчет библиотек как LAPACK, можем ли мыэкспорт двоичных файлов или что-то в .net, или c#?(Все через необработанные указатели памяти или двоичные файлы)

Ответы [ 3 ]

2 голосов
/ 18 марта 2011

Я никогда не использовал его, но пакет Oracle UTL_NLA может предположительно хранить матрицу с количеством записей до 1 миллиона в одном VARRAY, который затем может быть относительно легко передан какой-либо другой системе.

Из документов: «Пакет UTL_NLA предоставляет подмножество операций BLAS и LAPACK (Версия 3.0) для векторов и матриц, представленных как VARRAY.»

1 голос
/ 18 марта 2011

Насколько велик "огромный"?

Вы можете хранить двоичные данные в виде больших двоичных объектов. Может использоваться для изображений, аудио, видео, документов. Не знаю, есть ли «родной» формат, подходящий для lapack.

Вы не можете давать адреса памяти, поскольку данные поступают с дисков, и нет никакой гарантии, что Oracle поместит их через память процесса или разделяемую память, и в любом случае она может восстановить эту память в любое время или перезаписать ее чем-то другим.

Если вы говорите о C # /. Net, вы, вероятно, говорите о Windows, которая на самом деле не позволяет разделять память между различными процессами. Конечно, если сервер Oracle находится на компьютере, отличном от .Net, вы все равно не сможете получить доступ к памяти с удаленного компьютера.

0 голосов
/ 18 марта 2011

Короткий ответ - НЕТ, ты не можешь.Базы данных SQL, Oracle включил возвращаемые наборы данных, и они могут содержать двоичные данные в столбце этого набора.Внутри такого блоба может быть любой формат практически любого размера.Какую обработку необходимо выполнить на клиенте?Если это какой-то статистический анализ, проверьте аналитические функции Oracle.Они ОЧЕНЬ мощные, и любому клиенту будет очень трудно победить это.

...