2011-03-18 67 views
1

我試圖傳達LAPACK庫和.net所以我可以做一個DBMS以外的一些處理。任何DBMS都可以發送/接收巨大的矩陣嗎?

是否有可能完全send/receive矩陣二進制或作爲直接內存指針來處理它們?主要目的是速度並避免通過平面文件。

  • Oracle, SQL Server, MySQL可能支持這種技術嗎?
  • 什麼庫,LAPACK,可我們出口的二進制文件或東西.net,或c#? (全部通過原始內存指針或二進制文件)

回答

1

「巨​​大」有多大?

可以存儲二進制數據爲BLOB。它可以用於圖像,音頻,視頻,文檔。不知道是否有適合lapack的「原生」格式。

您不能提供內存地址,因爲數據來自磁盤,並且不能保證Oracle是否會通過進程內存或共享內存來放置它們,並且無論何時它都可能會回收該內存或用其他方法覆蓋它。

如果你在談論C#/。NET,你可能只談論的窗戶並沒有真正允許反正不同進程之間共享內存。當然,如果Oracle服務器與.Net的東西不在同一臺機器上,那麼無論如何你都無法從遠程機器訪問內存。

+0

當涉及到巨大的時候,我的意思是做一些處理,而不是爲哪個DBMS設計的。那麼你有沒有這方面的技術? – cMinor 2011-03-18 04:52:32

+0

如果使用Linux,是否有共享內存或二進制文件的方法? – cMinor 2011-03-18 04:55:37

+0

ramdisk如何? – Marco 2011-03-18 05:25:01

0

簡短的回答是不,你不能。 SQL數據庫,Oracle包含返回的數據集,它們可以在該集的列中包含二進制數據。在這樣的blob中可以是幾乎任何大小的任何格式。客戶端需要做什麼處理? 如果這是某種統計分析,請檢查Oracle分析函數。他們非常強大,任何客戶都很難打敗他們。

+0

是的purpouse是做統計分析。但如果是這樣的話,那麼如何有效地將DBMS與一些數學庫進行有效的通信,以便進行處理,甚至將一些進程進行平行化處理,然後在DBMS中獲得結果(DBMS不是用來做一些統計數據)? – cMinor 2011-03-18 07:00:29

+0

也許你應該發佈一個新問題,解釋你的數據和要對其執行的分析。數據在rdbms中,Oracle也在這些數據上使用了大量的並行性。它可以節省大量的網絡往返。這裏有幾個例子。同時尋找能夠有效地爲您提供電子表格計算的模型子句。很強大。 – 2011-03-18 07:14:21

2

我從來沒有用過它,但Oracle的包UTL_NLA可以存儲一個矩陣,最多可以在一個VARRAY中存儲一百萬個條目,然後可以相對容易地將其傳遞給其他系統。

來自文檔:「UTL_NLA軟件包公開了向量和矩陣表示爲VARRAY的BLAS和LAPACK(版本3.0)操作的子集。」

+1

好閱讀http://oracledmt.blogspot.com/2007/04/way-cool-linear-algebra-in-oracle.html和...所有的處理都在數據庫中完成。據我所知,沒有傳遞給客戶。 – 2011-03-18 11:45:54

相關問題