【发布时间】:2011-06-02 02:45:50
【问题描述】:
这是一个基于选择性能而不是设计实践的问题。如果我有一个每秒会执行多次的方法;
public static IQueryable<IPerson> InRadius(this IQueryable<IPerson> query, Coordinate center, double radius)
{
return (from u in query
where CallHeavyMathFormula(u, center, radius)
select u);
}
IQueryable 的这种扩展方法会生成一个 SQL,用于执行一些繁重的数学计算(余弦、正弦等)。这意味着应用程序每次调用都会向服务器发送 1-2KB 的 sql。
我听说将所有应用程序逻辑都放在您的应用程序中。我还想在将来更改为 azure 等数据库或其中一种可扩展的数据库。我该如何处理这样的事情?我应该保持原样还是编写存储过程?像 twitter 或 facebook 这样的应用程序是如何做到的?
【问题讨论】:
标签: c# database design-patterns architecture