嗨,我们有一个存储的过程,每天安排一个过滤后从具有大量数据的表中获取记录。我的问题是如果我在表上创建一个视图,并从视图中获取数据将这是更快的过程还是更慢?更快地从视图或表格中提取数据?
4
A
回答
6
标准视图,它不应该有任何区别,因为内部SQL只是扩展到查询中。请注意,内联表值用户定义的函数(认为“参数化视图”)也适用。
但是,如果您将其设置为indexed view,则可以看到性能提高。
0
只是补充@AdaTheDev答案:对于多语句表值函数
the same applies with table-valued user defined functions
这就是内联表值函数真实的,但不是100%正确的。第二种类型的功能将使用更多的资源(内存)比第一个
关于索引视图,它可以帮助,但记住,它可以大大会增加你的存储空间
3
只要记住,视图只不过是一个选择语句(索引视图不同)。如果您有:
SELECT * FROM TABLE
这是一个过程,如果你把同样的事情在一个视图,然后做:
SELECT * FROM VIEW
内的流程,在这两者之间绝对没有区别。但是,如果事情变得更加复杂,以至于你加入了很多桌子,那么这取决于他们如何被访问。例如,如果您创建一个访问6个表的视图,然后编写一个查询,只需从这些表中的3个中提取数据,那么您可能会从优化过程中发生的称为简化的过程中受益,你会看到一个只引用3个表的计划。但是,你可能不会。如果不是,则针对3个表编写的查询通常比针对访问多于3个表的视图的计划运行得更快。
如果您开始嵌套视图,具有调用视图或加入视图的视图,则可能会看到非常严重的性能下降。
一般来说,如果你使用存储过程,我建议你直接写你的查询表。它不会损害性能,它可以帮助您避免嵌套视图和计划简化问题。
相关问题
- 1. PHP:从数组或SQL表中更快地获取数据?
- 2. 从列表视图中提取数据
- 3. 从列表视图中提取数据
- 4. 从表格视图中读取数据
- 5. 从数据库或列表中提取数据的更快方法?
- 6. 通过从三个表格中提取数据创建视图
- 7. 从解析到表格视图控制器中提取数据
- 8. 从地图提取数据
- 9. 在后台提取数据,但表格视图不更新
- 10. 更快地从数据库获取一行或数行数
- 11. 更好的数据结构,以更快地读取列表地图的地图
- 12. 从infopath表格中提取数据
- 13. cakephp不从表格中提取数据
- 14. 从表格中提取数据
- 15. 从HTML表格中提取数据
- 16. 从HTML表格列中提取数据
- 17. mysql - 从表格行中提取数据
- 18. 在Linux中从Excel数据透视表电子表格中提取数据
- 19. 使用FFMPEG从视频提取更快的缩略图/图像?
- 20. 从数据库阵列中提取和更新视图
- 21. 从libreoffice calc图表中提取数据
- 22. 从表格数据中提取顺序状态更改
- 23. 如何从开放式街道地图或Google地图提取地理数据
- 24. 从Google地图提取原始数据
- 25. 从图像或扫描文档中提取表格数据(不是pdf)
- 26. 从自定义列表视图中提取数据
- 27. 从图像中识别并提取表格数据
- 28. 从细节中继续更新表格视图数据
- 29. 从HTML表格提取数据
- 30. plsql-从其他表格数据中提取表格
好的,我确实是指内联UDF!我会更新我的答案,因为这是非常重要的一点 – AdaTheDev 2012-03-15 12:15:25