有没有办法与原始内存块或二进制文件沟通DBMS

我正在尝试使用任何DBMS.与LAPACK进行numerical matrix operations library通信DBMS.

是否有可能send/receive完整的matrix为二进制或直接内存指针来处理它们(这将是这样的:外部库处理存储在数据库中的数据,然后计算一些巨大的matrix的东西,然后通过内存块或一个二进制DBMS从库中得到结果)?

主要目的是速度和避免通过一个平面文件,最后但并非最不重要,使用图书馆有效地做一些操作DBMS不devise。

 * Is it possible that Oracle, SQL Server, MySQL support this technique?. 

Oracle支持matrix操作,包括LAPACK兼容命令。

看看Oracle包UTL_NLA给你一个起点。 我认为你最好是使用数据库工具来查看数据库,或者完全抛开数据库 – 你似乎想要的方式并不是一个真正的RDBMS。

不,不可能,不明智。 DB数据是事务性的,做事务共享内存是活的地狱。 绝对不是“处理指针”。 可能的,但是你要求客户端库非常好/在控制之下,或者运行很多开销,这意味着不能再去。

看起来像你几乎有不匹配的要求。 标准产品的RDBMS不针对您的工作types进行优化。

你可能做的最好的是:

  • 将文件存储在BLOBS中。
  • 使用SQL Server
  • 使用基于文件的BLOB存储

你可以通过文件共享访问blob,它应该允许内存映射文件。 不导出 – 他们是文件。 每个提交都会创build一个具有不同名称的新副本。 你从数据库中得到sql的名字(这是一个GUID)。

这可能是解决这个问题的最有效的方法。

您可能会在本地存储数据的caching副本,以避免自上次访问以来没有更改过的其他传输。 这将完全在DBMS之外进行编码。