|
1
5
给定在EF或存储过程中生成的一段可比较的参数化SQL,它们的性能将相同。
我们有一个非常复杂的sqlserverdb,它有许多外部系统通过触发器来复制数据。EF的问题是,当使用任何ORM而不是dba时,对DB激发的SQL的责任将成为应用程序开发人员的责任。 |
|
|
2
9
首先,编译EF查询与使用存储过程可以获得的性能优势无关。 http://msdn.microsoft.com/en-us/library/cc853327.aspx -对概念模型执行查询时,会发生以下操作:
以及关于
因此,如果编译查询并在以后重新使用它,那么在每次后续的查询执行过程中,将节省应用程序中此操作的时间。但是,您不会影响针对数据库执行的生成的SQL代码。 编译查询时获得的性能好处是在应用程序级别。 另一方面,如果您对生成的SQL代码不满意,并且希望在数据库级别优化性能,则通常会使用存储过程。 回应你的评论和编辑。
在我看来,您的印象是编译EF查询会以某种方式更改将针对数据库运行的生成的SQL代码(您提到编译的查询会导致参数化SQL查询?)。事实并非如此。无论您是直接运行查询还是使用
|
|
|
3
3
一些著名专家的固定答案:保罗尼尔森 Why use Stored Procedures? 亚当·马查尼克: No, stored procedures are NOT bad |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |