Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我是.NET程序员,并且正在开发一个收集实时生产数据并将其存储在Oracle数据库中的系统。数据将需要进行广泛的处理:本质上是数字信号处理工作-查找数据流中各个字段的最小值和最大值,并相应地对时间“块”进行分类。显然,我们可以想象(尽管不一定)使用MatLab库进行处理。
我需要知道的是在哪里找到处理逻辑:是在Oracle db内部,通过PL-SQL(或适当的方法)实现的,还是在可以调用MatLab库的外部.NET可执行文件或服务中? 一个相关的问题:是否可以从Oracle内部调用MatLab库函数?这可能提供最简洁的答案。 抱歉,该文本块。任何帮助将不胜感激。 回答: 理想情况下,您要对两个基准进行基准测试,然后看看可以从这两种选择中获得什么样的性能。 就我个人而言,我的偏见是除非有充分的理由在数据库中进行数据处理,否则,数据库的设计目的是快速处理大量数据。但是,在您的案例中,可能有令人信服的理由在其他地方进行此操作,因为MatLab可能拥有用于数字信号处理的高级库。如果您只是在寻找最小值和最大值,那么MatLab可能不会比Oracle更高效,当然不足以克服将大量数据移出要处理的数据库然后再移回结果的开销。如果您正在执行更复杂的处理(如果需要执行快速傅立叶变换(FFT)等),则最好在MatLab中使用提供的库,而不是尝试在PL / SQL中构建FFT逻辑。 如果您的Oracle数据库在MatLab也将在其上运行的操作系统上运行,并且MatLab可以为其API公开C DLL风格的API(如果没有,我确定您可以在MatLab之上放置一个薄的.Net层来创建一个C DLL),然后您可以从Oracle调用MatLab函数作为外部过程。 更多&回答... |
![]() |
![]() |