我试图传达LAPACK库和.net
所以我可以做一个DBMS以外的一些处理。任何DBMS都可以发送/接收巨大的矩阵吗?
是否有可能完全send/receive
矩阵二进制或作为直接内存指针来处理它们?主要目的是速度并避免通过平面文件。
Oracle, SQL Server, MySQL
可能支持这种技术吗?- 什么库,
LAPACK
,可我们出口的二进制文件或东西.net
,或c#
? (全部通过原始内存指针或二进制文件)
我试图传达LAPACK库和.net
所以我可以做一个DBMS以外的一些处理。任何DBMS都可以发送/接收巨大的矩阵吗?
是否有可能完全send/receive
矩阵二进制或作为直接内存指针来处理它们?主要目的是速度并避免通过平面文件。
Oracle, SQL Server, MySQL
可能支持这种技术吗?LAPACK
,可我们出口的二进制文件或东西.net
,或c#
? (全部通过原始内存指针或二进制文件)“巨大”有多大?
可以存储二进制数据为BLOB。它可以用于图像,音频,视频,文档。不知道是否有适合lapack的“原生”格式。
您不能提供内存地址,因为数据来自磁盘,并且不能保证Oracle是否会通过进程内存或共享内存来放置它们,并且无论何时它都可能会回收该内存或用其他方法覆盖它。
如果你在谈论C#/。NET,你可能只谈论的窗户并没有真正允许反正不同进程之间共享内存。当然,如果Oracle服务器与.Net的东西不在同一台机器上,那么无论如何你都无法从远程机器访问内存。
简短的回答是不,你不能。 SQL数据库,Oracle包含返回的数据集,它们可以在该集的列中包含二进制数据。在这样的blob中可以是几乎任何大小的任何格式。客户端需要做什么处理? 如果这是某种统计分析,请检查Oracle分析函数。他们非常强大,任何客户都很难打败他们。
是的purpouse是做统计分析。但如果是这样的话,那么如何有效地将DBMS与一些数学库进行有效的通信,以便进行处理,甚至将一些进程进行平行化处理,然后在DBMS中获得结果(DBMS不是用来做一些统计数据)? – cMinor 2011-03-18 07:00:29
也许你应该发布一个新问题,解释你的数据和要对其执行的分析。数据在rdbms中,Oracle也在这些数据上使用了大量的并行性。它可以节省大量的网络往返。这里有几个例子
我从来没有用过它,但Oracle的包UTL_NLA可以存储一个矩阵,最多可以在一个VARRAY中存储一百万个条目,然后可以相对容易地将其传递给其他系统。
来自文档:“UTL_NLA软件包公开了向量和矩阵表示为VARRAY的BLAS和LAPACK(版本3.0)操作的子集。”
好阅读http://oracledmt.blogspot.com/2007/04/way-cool-linear-algebra-in-oracle.html和...所有的处理都在数据库中完成。据我所知,没有传递给客户。 – 2011-03-18 11:45:54
当涉及到巨大的时候,我的意思是做一些处理,而不是为哪个DBMS设计的。那么你有没有这方面的技术? – cMinor 2011-03-18 04:52:32
如果使用Linux,是否有共享内存或二进制文件的方法? – cMinor 2011-03-18 04:55:37
ramdisk如何? – Marco 2011-03-18 05:25:01