使用SQL SERVER存储过程实现银行转账业务
在银行金融系统中,我们常常都要实现银行转账这样的业务操作,而这种金融系统并发性相当高,需要考虑的如何提高性能和保证安全性等相关的问题。使用存储过程来实现银行转账是一个很好的选择。
SQL SERVER数据库中的存储过程相对于应用程序中来操作Transact-SQL语言的优缺点:
优点:
1. 存储过程已在服务器注册,预编译,存储过程预先编译好放在数据库内,减少编译语句所花的时间
2. 存储过程可以用于减少网络通信流量,存储过程代码直接存储于数据库中,执行的时候只需要应用程序传递参数即可,而不需要整段的T-SQL代码传递到数据库中。
3. 重用性高,一段存储过程,可以在应用程序中不同的位置来调用。
4. 可维护性高,把整个业务的操作封装在一起,有利于以后做代码的替换操作,而应用程序会在日后不断的维护中,会导致TrancSQL过程代码会变得越来越复杂,同时,更新存储过程通常比更新应用程序简单的多,更新应该程序需要编译,部署。
5. 使用缓存改善性能,编译好的存储过程直接进入SQL SERVER的缓存中,使得下次执行的时候,能马上调用。而在SQL SERVER 2005中,执行计划已针对所有 T-SQL 批处理进行了缓存,效率和存储过程差不多了。
6. 强制使用数据库中的安全认证机制,使得应用程序的安全性提高:
a) 对存储过程向特定用户授权,也可以提供对特定数据的访问。
b) 增强代码安全,通过传递参数的方式,能有效防止 SQL注入。
缺点:
1. 可移植性差
a) 由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。
b) 如果应用程序的可
相关文档:
我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库的交互,如果数据库中数据量很大的话,一次检索所有的记录,会占用系统很大的资源,因此我们常常采用,需要多少数据就只从数据库中取多少条记录,即采用分页语句。根据自己使用过的内容,把常见数据库SQL Server,Oracle和MySQL的分页语句,从数据库表中的第 ......
1. 查看数据库的版本
select @@version
常见的几种SQL SERVER打补丁后的版本号:
8.00.194 Microsoft SQL Server 2000
8.00.384 Microsoft SQL Server 2000 SP1
8.00.532 Microsoft SQL Server 2000 SP2
8.00.760 Microsoft SQL Server 2000 SP3
8.00.818 Microsoft SQL ......
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO=’SCOTT’;
2. /*+FIRST_ROWS*/
表 ......
cdate是datetime类型的字段
统计一年的如下
select datepart(yy,cdate) as '月份',sum(cmoney) from consumption group by datepart(yy,cdate)
统计一月的如下
select datepart(mm,cdate) as '月份',sum(cmoney) from consumption where datepart(yy,cdate)=2009 group by datepart(mm,cdate)
统计一周 ......