您的位置:首页 > 编程语言 > ASP

在ASP.NET中采用存储过程操作数据库的优点

2010-04-27 10:05 337 查看
本文来自:http://rzchina.net/node/3157

1、 由于应用程序随着时间推移会不断更改,增删功能,SQL过程代码会变得更复杂,存储过程为封装此代码提供了一个替换位置。
2、 存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量SQL语句的代码流量。
3、 使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用 (RPC) 处理服务器上的存储过程而提高性能。RPC封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。
4、 可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。
5、 代码精简一致,一个存储过程可以用于应用程序代码的不同位置。
6、 更好的版本控制,通过使用Microsoft Visual SourceSafe或某个其他源代码控制工具,可以轻松地恢复到或引用旧版本的存储过程。
7、 增强安全性,如通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;在一定程度上可以提高代码安全,防止SQL注入;SqlParameter类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型。
存储过程的缺点有以下两点。
1、 如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则仍需要更新程序集中的代码以添加参数、更新GetValue()调用等,这时候估计比较烦琐了。
2、 可移植性差,由于存储过程将应用程序绑定到SQL SERVER,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在用户的环境中非常重要,则将业务逻辑封装在不特定于RDBMS的中间层中可能是一个更佳的选择。
【分析】
这道题目考查面试者对存储过程的深刻理解,在众多公司的面试中非常常见。那么什么是存储过程呢?简单地说,存储过程即将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,则以后需要数据库提供与已定义好的存储过程功能相同的服务时,只需调用execute即可自动完成命令。相对于在程序中动态编写SQL语句,存储过程更为方便,编程者只需要专注于程序的业务逻辑,数据库相关的操作可通过调用预先编写好的存储过程实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: