1.可重复使用扩展性和复用性好。
创建完存储过程以后可以重复调用,不同客户端可以共用,不用重新编写,可以随时修改,调整程序。
2.减少不必要的数据传输
首先数据库是一个c/s程序,这就意味着数据需要在网络间进行传输。对于同一个针对数据库对象的操作,如果这一操作所涉及到的T-SQL语句被组织成一存储过程,那么当在客户机上调用该存储过程时,网络中传递的只是该调用语句,否则将会是多条SQL语句。从而减轻了网络流量,降低了网络负载。(兼顾安全性和效率)
3.安全性
首先是通过访问权限的限制来实现对数据库的保护,避免不必要的人员访问数据;
其次存储过程减少了注入攻击的可能,参数化的调用使得数据库的安全性得到了提升;
4.更快的执行速度
如果某一操作包含大量的T-SQL语句代码,分别被多次执行,那么存储过程要比批处理的执行速度快得多。因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划。而批处理的T-SQL语句每次运行都需要预编译和优化,所以速度就要慢一些。另外针对服务器端的T-SQL是支持逻辑读取+预读的,这样大大提高了数据读取的速度,反之客户端的T-SQL不支持这样的方式。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119759.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...