存储过程或代码

时间:2012-04-18 10:45:15

标签: database stored-procedures data-mining database-performance data-processing

我不是在征求意见,而是在文件上提出更多意见。

我们有很多数据文件(XML,CSV,Plantext等),需要处理它们,数据挖掘它们。

主要数据库人员建议使用存储过程来完成任务。基本上我们有一个临时表,文件被序列化,并保存到clob或XML列中。然后,他建议进一步使用存储过程来处理文件。

我是一名具有数据库背景的应用程序开发人员,在应用程序开发方面更是如此,我可能会有偏见,但在数据库中使用此逻辑似乎是一个坏主意,我无法找到任何文档来证明或不赞成我指的是把汽车放在火车轨道上以拉动一大堆货物。

所以我的问题是: 当我们谈论正则表达式搜索,搜索和替换clob,dom遍历,递归中的数据时,DB(Oracle,DB2,MySQL,SqlServer)的表现如何?与Java,PHP或C#等编程语言相比,在相同的问题上。

修改

所以我正在寻找的是与DBMS相比特定编程语言的比较/运行时分析的文档,特别是对于字符串搜索和替换,正则表达式搜索和替换。 XML Dom遍历。递归方法调用的内存使用情况。尤其是当遇到10-100的GB数据时,它们的扩展程度如何。

2 个答案:

答案 0 :(得分:1)

听起来您将把业务逻辑抛入存储层。对于您描述的操作,不应使用数据库。您可能最终会尝试找到showstoppers的变通方法,或者因为缺乏灵活性而创建奇怪的解决方案。

还要牢记可维护性。以后有多少人能够维持解决方案?

谈到速度,选择正确的编程语言,您将能够在多个线程中处理数据。最后,你对火车上车的感觉是对的;)

答案 1 :(得分:1)

最好将处理逻辑从数据层中拉出来。在数据库中编译实现将很困难。

如果使用任何语言完成实现,您将获得在库之间进行选择并比较其性能的自由和选项。 此外,您可以选择(Spring-Batch for Java)框架来批量处理批量数据。