对数据库存储的信息实施复杂的算法
我试图找出对关系数据库中存储的信息实施复杂算法的最佳实践。
具体来说:我想在包含许多文档的 TFxIDF 向量的大型 MS SQL Server 数据库上实现 k-means 算法(文档聚类算法)的变体(这些向量用作算法的输入)。
我的第一个想法是使用存储过程、函数、视图和所有其他基本 SQL Server 工具在 SQL 中完成整个操作,但后来我想也许我应该编写将在SQL 服务器。
性能是这里的一个问题,所以我也需要考虑这一点。
我将不胜感激任何关于我应该走的道路的建议。
谢谢你!
I'm trying to figure out the best practice for implementing a complex algorithm on stored information in a relational DB.
Specifically: I want to implement a variation of the k-means algorithm (a document clustering algorithm) on a large MS SQL Server database containing TFxIDF vectors of many documents (these vectors are used as input for the algorithm).
My first thought was doing the entire thing in SQL using stored procedures, functions, views and all the other basic SQL Server tools, but then I thought maybe I should write managed code (I'm fluent in C#) that will be executed on the SQL Server.
Performance is an issue here, so I need to take that in consideration also.
I would appreciate any advice on the path I should take.
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
而且始终如此。在查看此类代码时,您必须考虑两种相反的趋势:
另一方面:
将这两点放在一起,获得性能的最佳方法通常是使用数据库中的查询功能来提取您真正需要的记录子集,并且可能进行一些更简单的预处理 - 简单的预处理水果,如果你愿意的话。然后在应用程序服务器上完成繁重的工作,如果可能的话并行完成。
It always is. When looking at this kind of code, there are two opposing trends that you have to consider:
On the other hand:
Take these two points together, and the best course for performance is typically to use the querying capabilities in the database to pull down just the subset of records that you really need, and maybe do some of the easier pre-processing — the low-hanging fruit, if you will. Then finish the heavy lifting on an application server, in parallel if possible.