日期:2014-05-17  浏览次数:20476 次

存储过程 与视图的性能关系
比如有个复杂的查询。可以用视图来做,也可以用存储过程来做。
用视图做,就是在存储过程里 ,select * form view where 条件=传入参数
用存储过程做,那么就没有视图了,直接在存储过程里写查询的sql语句。

这两种方法,哪种更好?

------解决方案--------------------
如果是用视图能搞定 就用视图吧
存储过程是处理视图搞不定的复杂批处理。
楼主两种方法一样的
------解决方案--------------------
如果用存储过程,你可以通过把一句复杂的select 拆分开
借用临时表,这样可以提高性能
你要理解视图和sp的作用以及特性

------解决方案--------------------
存储过程
------解决方案--------------------
我感觉是视图好。

视图可以做索引。存储过程则相当于临时做视图。
------解决方案--------------------
探讨

都一样

------解决方案--------------------
两上差不多
------解决方案--------------------
存储过程吧 存储过程处理复杂的查询可以吧他分解开来一步一步的实现 临时表上也可以建索引的
------解决方案--------------------
探讨

存储过程吧 存储过程处理复杂的查询可以吧他分解开来一步一步的实现 临时表上也可以建索引的

------解决方案--------------------
在一篇博客上看到的,觉得说的不错,分享给楼主:


存储过程 当然是预先编译sql语句, 或让sql作某种特定程序,也可以提高效率
视图 让用户提取和他们有关的数据, 有提高安全保安及提升query效率的意味

最重要的是在服务器的存储和运行过程都几乎是一样的,二者都是以SQL语句集存储的,而且在运行之前都是经过编译的,也就是不用每次都重新编译,这样可以大大提高执行效率。

顾名思义,其区别一个重在“过程”、一个重在“图”。
也就是存储过程涉及很多的数据处理,整个是一个复杂的过程。它可以接收参数,相当于一个函数。主要目的是用来处理数据。

而视图是把现在有数据组合成新的形式展示出来,相当于一张虚拟的表,在运行时可以当作表Table来进行查询增删改的。总之视图的目的是用来呈现数据。

事实上,两者其内部实现是基本一样的,提供者在开发这些对象时,是针对不同目的不同应用的。
我们在使用时,同一件事情,实现的方法可以是多样的,不是说只有那者行,其他的就不行。到底使用什么来实现呢?这要对实际情况进行具体分析,看怎样实现方便,怎样实现高效。