【发布时间】:2018-10-17 16:46:22
【问题描述】:
我们必须在运行时(asp.net mvc)从具有数百万条记录的 Oracle 表数据中创建并显示一些复杂的报告。报告数据必须从分组和很少复杂的计算中获得。 那么通过 sql 查询 (pl/sql) 或 linq 进行这些分组和计算的代码的性能和可维护性是否更好? 感谢您的kindle回复
【问题讨论】:
-
这个问题有点太宽泛了。 通常我会说数据库在这些计算中更快,但这实际上取决于您的特定要求、数据、硬件等......并权衡可维护性与性能(这肯定意味着速度,而不是记忆)使它更广泛。所以我能给出的最好建议是:race your horses
-
我同意这个问题太宽泛了。但是考虑到,随着事情变得复杂,有人更容易产生错误的 linq,因为您对幕后生成的脚本的控制较少;一个错误的映射可能会在整个网络中引入整个表,只是为了过滤几条记录(同样,在某些情况下这是预期的行为)。此外,如果您的公司充满了 DBA,但只有一个编码员,最好将所有内容卸载到存储过程:)
-
我要承认:就代码的可理解性而言,linq 可能更易于阅读和理解。其次,如果将来数据库实现发生变化,您不必检查所有 SQL 以确保它在新的数据库实现中工作。您只需要确保您的 linq 查询是高效的。
标签: performance linq plsql report aggregation