《存储过程 》
存储过程也可以看成是函数的一种,而且存储过程中的过程如果放到了开发系统的D层的时候执行效果也是相同的。存储过程是存储在数据库中的一个程序块,里面包含了自己定义的一段程序来实现相应的功能,比如要选择数据库的表里面的记录,就可以使用下面的存储过程的框架:
CREATE PROCEDURE <存储过程的姓名>
–参数的定义
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, 0>
AS
BEGIN
SET NOCOUNT ON;
– 实现数据库中表的操作语句
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO
这个实现的过程比较简单,就是利用的是数据库自带的存储过程的模版,新建存储过程的时候就可以非常方便的实现自己所需要的功能。存储过程中使用的是数据库的语言,跟其他的高级语言的用法相似,熟练的使用数据库的语言可以加快开发的效率,技术也是很厉害的。
存储过程的到底有什么好处呢?一定要用存储过程吗?
存储过程的优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 3.存储过程可以重复使用,可减少数据库开发人员的工作量4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。
存储过程有利于实现一系列的操作简化,提高系统的执行效率,而且放在存储过程中的SQL语句是直接在数据库中编译过了的,系统在执行的时候就可以减少这部分代码的资源开销。但是对于机房重构中,有时候我们只需要更新一个记录中的某一个字段的值,这个时候用存储过程就有点不划算了,这个时候系统如果不用存储过程直接用SQL语句来说,是比较方便的。所以存储过程并不是所有的地方用都好,凡事都有一个合适的问题,一个度的问题。
可能有的人想存储过程这么有用,而且对系统的性能有提升,那就强迫症的都去使用存储过程。这里又有一个问题了,存储过程的作用主要是对数据库进行操作,那么学过数据库系统原理的我们就需要注意一个问题了,如何防止死锁?毫无节制的使用存储过程,而不考虑数据库结构是不科学的。对于相同的表进行不同的操作,所产生的结果也是不一样的,产生的顺序也是不一样的,如何在存储过程中进行有效的操作来使系统健康强壮,这是需要注意的。
通过使用存储过程,可以更加清晰的理解数据库和系统是如何相互关联工作的,存储过程的使用不仅是一种技术上的提升,更是思想上的一种启发,在今后的开发工作中是否有相同的地方需要这样的抽象封装呢。面对更多的重复出现的封装,我们的工作也将更加高效、简洁。