使用存储过程带来的优点是什么?



使用存储过程带来的优点是什么?

第一:提高性能

       当存储过程被创建,它要经过以下几步,第一步,它所包含的T-SQL语句将被分析和解析,并被存储.当第一次被执行

时,它将被调出并被优化.SQLServer会根据statistics自动选择相应的优化策略.

此后查询计划将被存储在高速缓存中,以利于将来使用.由于不用被重新编译,所以可以大大提高效率.

第二:减少网络流量

       你可能使用T-SQL语句来对表执行插入操作.但是如果我们创建一个存储过程来进行这样操作的话,每次插入的时

候只要传输存储过程名,参数和这些参数的数值,当这些操作非常频繁时我们将会发现使用存储过程可以减少额

外的网络传输.这在我们使用Internet时进行传输时非常有用.

       比较以下两个语句:
INSERT INTO EmployeeTerritories (EmployeeID, TerritoryID) VALUES (3,12345)


Ins_EmployeeTerritories @empId=3,@terrId=12345

       第一个语句有74个字符,第二个有46个字符,相比而言网络传输量减少了37.84%,如果我们这个插入语句中包括有

更多要插入数据的列,并且每天被执行10,000次,那么就能大大的减少网络流量.

第三:减少注入式攻击

1. 易受注入式攻击的代码:
2. 优化过的代码
3. 使用存储过程来减少注入攻击

第四:方便管理

       调用存储过程,可以认为是一个三层结构.这使你的程序易于维护.如果程序需要做某些改动,你只要改动存储过程即可.

第五:功能强大,替代复杂SQL语句

       你可以在存储过程中利用Transact-SQL的强大功能.一个SQL存储过程可以包含多个SQL语句.你可以使用变量和条件.这意味着你可以用存储过程建立非常复杂的查询,以非常复杂的方式更新数据库.最重要的,在存储过程中可以使用参数,你可以传送和返回参数,你还可以得到一个返回值.