使用视图和存储过程的优缺点
–以下内容整理自网络
视图的优点:
简单性
视图不仅可以简化用户对数据的理解,也可以简化他们的操作,哪些经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。
安全性
隐藏数据源,通过视图用户只能查询和修改他们所能见到的数据,数据库中的其它数据则看不见也取不到。
逻辑数据独立性
视图可以使应用程序和数据库在一定程序上独立。如果没有视图,应用一定是建立在表上。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。
方便性
在多表连接查询时,可以使用视图提高效率
视图的缺点:
性能差
sql server必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,sql server也要把它变成一个复杂的结合体,需要花费一定的时间。
修改限制
当用户试图修改试图的某些信息时,sql server必须把它转化为对基本表的某些信息的修改,对于简单的试图来说,这是很方便的,但是,对于比较复杂的试图,可能是不可修改的。
存储过程的优点:
预编译
当一个sql语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它,避免了sql语句在网络中传输然后再解释的低效率问题。
修改方便
直接修改存储过程,方便代码的管理。
安全
不会有sql语句注入问题。
可以建立复杂的查询
可以用存储过程建立非常复杂的查询,以非常复杂的方式更新数据库。
可以使用参数
在存储过程中可以使用参数,可以传送和返回参数。
存储过程的缺点:
增加复杂性
当业务逻辑比较复杂时不建议使用存储过程,这样会增加复杂性。
可移植性低
在不同的数据库平台上很难移植