在1台数据库服务器、9台web服务器的情况下如何使用存储过程与T-SQL语句以及两者区别
以下根据网上资料和自己的使用经验整理:
存储过程:
优点:
1.执行效率
如果某操作需要大量Transact-SQL代码或需重复执行,存储过程将比Transact-SQL
批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行
该过程后使用该过程的内存中版本。每次运行Transact-SQL语句时,都要从客户端
重复发送,并且在SQL Server每次执行这些语句时,都要对其进行编译和优化。
2.增强安全性
a.可以控制对存储过程的访问权限
b.提高代码安全,防止SQL注入
3.减少网络流量
存储过程代码直接存储于数据库中,不会产生大量的T-SQL语句的代码流量。
缺点:
1.可移值性差
由于存储过程将应用程序绑定到SQL Server,因此使用存储过程封装将限制应用程序的可移植性。
2.可扩展性差
在1台数据库服务器、9台web服务器以及在内网安全性要求不是很高的情况下(该系统支持多种数据库):
1.由于存储过程中有各种逻辑判断以及业务处理大大的增加了数据库服务器的压力
,所以除了实时性要求比较高的,所有与数据库交互的我们都用T-SQL语句。
疑问:用T-SQL语句除了会产生大量的T-SQL语句的代码流量外,最终的T-SQL语句还
是要在数据库服务器执行,跟存储过程相比,能降低多少数据库服务器的压力?
还有产生的大量的T-SQL语句的代码流量会对执行效率有多大影响?
请各位说说
在1台数据库服务器、9台web服务器以及在内网安全性要求不是很高的情况下(该系统支持多种数据库):
1.你会如何使用存储过程和T-SQL语句?
2.你这样用的原因?