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

k97glaaz  于 2023-01-12  发布在  其他
关注(0)|答案(3)|浏览(185)

我有大量的数据。我必须为所有这些数据编写SQL查询并检索数据。我的观点是,我应该在视图或SP中编写这些查询。也就是说,我需要知道它们之间是否有任何主要区别

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

8oomwypt1#

是否存在任何重大的 * 性能 * 差异?否,但前提是存储过程中的查询与视图中的查询完全相同。您不应该看到任何重大的性能差异。如果存在性能差异,您也不会注意到它。如果您开始向过程添加额外的代码(参数、逻辑等),那么所有的赌注都将落空。

zzoitvuj

zzoitvuj2#

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

tzcvj98z

tzcvj98z3#

如果存储过程中的查询与视图中的查询完全相同,则查询分析器应使用相同的执行计划。
我在这里运行了一些测试,在一个SP和一个视图中使用相同的查询。两者的执行时间相似,每种类型大约6秒,SP稍慢一些。但这只是一个简单的sql语句测试。

相关问题