数据访问基于存储过程而不是SQL语句的优势
在我最近的这个项目中,没有允许程序员把SQL语句写在代码中,而是必须用存储过程实现,即使是SELECT语句。我认为这样做利大于弊。当然,我这个项目并不是很复杂,存储过程大概二百个左右。
我认为,不允许在代码中出现SQL语句的好处有几点:
1.避免混乱。需求的变动总会引起数据的变动,更改数据访问只去集中在一起的存储过程中改,而不是在代码中到处翻动,使得代码很清晰。
2.性能优势。《SQL Server 2005技术内幕》中说,存储过程将重用已缓存的执行计划,节省了分析,解析,优化代码所需的CPU资源和时间。
3.代码安全。在代码中拼凑SQL语句,稍有不慎就会导致SQL注入。而在存储过程可对输入参数再次过滤,基本上可以防止不合法的参数。
当然,每个项目不一样,怎么用数据访问,都需要认真分析每个项目的具体情况后再做决定。