视图和存储过程之间是否存在任何性能差异

时间:2015-07-01 05:56:27

标签: sql sql-server stored-procedures views

我有大量数据。我为所有这些编写了SQL查询并检索数据。我应该在视图或SP中编写这些查询。 即我需要知道

之间是否存在任何重大差异
INSERT INTO TABLE TABLE_NAME EXEC SP
OR
INSERT INTO TABLE TABLE_NAME SELECT * FROM VIEW

3 个答案:

答案 0 :(得分:0)

是否有任何重大的性能差异?不,但仅当存储过程中的查询是视图内的完全相同的查询时。你不应该看到任何重大的性能差异。如果存在性能差异,则您不会注意到它。如果你开始向proc添加额外的代码(参数,逻辑等),那么所有的赌注都会关闭。

答案 1 :(得分:0)

它是艺术的问题,或重用(维护)的能力。 我个人而言,除了创建复杂视图之外,更喜欢使用drop和create table。理由很简单,除了打开多表,视图,GUI代码和报告流程之外,任何人都必须从单个屏幕了解逻辑。

答案 2 :(得分:0)

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

我在这里进行了一些测试,并在SP和视图中使用了相同的查询。两种类型的执行时间都差不多,约为6秒,而SP的执行速度要慢一些。但这只是一个简单的sql语句的测试。