视图与存储过程之间是否存在性能差异?

3

我有大量的数据。我已经为所有这些编写了SQL查询并检索了数据。我的问题是,我应该将这些查询写在视图或存储过程中。也就是说,我需要知道这两者之间是否存在重大差异。

INSERT INTO TABLE TABLE_NAME EXEC SP
OR
INSERT INTO TABLE TABLE_NAME SELECT * FROM VIEW

2
螺丝刀和锤子之间的性能差异是什么?它们是完全不同的工具,虽然你可以滥用其中一个并尝试在另一个角色中使用它,但你真的不应该这样做。 - Damien_The_Unbeliever
存储过程和视图用于不同的目的,我们只能比较它们用于相同的目的,否则比较是无意义的。 - Arunprasanth K V
3个回答

0

如果存储过程中的查询与视图中的查询完全相同,则查询分析器应使用相同的执行计划。

我在这里运行了一些测试,使用SP和视图中相同的查询。两者在每种类型上的执行时间大约为6秒,其中SP稍微慢一些。但这只是一个简单的SQL语句测试。


0

这是一门艺术,或者说是重复利用的能力(维护)的问题。 个人而言,我更喜欢使用删除和创建表格,而不是创建复杂的视图。原因很简单,任何人都可以从一个屏幕上理解逻辑,而不必打开多个表格、视图、GUI代码和可能的报告进程。


0

有任何主要的性能差异吗?没有,但只有在存储过程内部的查询与视图内部的查询完全相同的情况下才是如此。您不应该看到任何主要的性能差异。如果存在性能差异,您将不会注意到它。如果您开始向存储过程添加额外的代码(参数、逻辑等),那么一切都无法预测。


你能提供任何来源吗? - Alexander Gonchiy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接