-1

我知道这可能是一个愚蠢的问题,但是对于初学者,我必须向专家提出这个问题以消除我的疑问。当我们使用实体框架通过连接多个表从数据库中查询数据时,它会创建一个 sql 查询,然后这个查询会被触发到数据库以获取记录。

“我们知道,如果我们从 .net 代码执行大型查询,它会增加网络流量并且性能会下降。因此,我们创建并执行存储过程而不是编写大型查询,这会显着提高性能。”

我的问题是 - EF 是否没有使用相同的旧概念来创建导致性能下降的大型查询。

请高手解开我的疑惑。谢谢。

4

1 回答 1

1

与流行的神话相反,存储过程并不比常规查询快。使用存储过程(执行计划缓存、预编译)时有一些轻微的、可能的直接性能改进,但使用现代缓存环境和更新的查询优化器和性能分析引擎,好处最多是很小的。再加上这些潜在的优化已经只是查询结果生成过程的一小部分,最耗时的部分是数据的实际收集、查找、排序、合并等,这些存储过程的优势是彻头彻尾的无关的。

现在,还有一点。绝对不可能,通过为查询文本创建 500 字节而不为存储过程名称创建 50 字节,您将对 100 M b / s 链接产生任何影响。

于 2013-09-01T02:04:03.207 回答