重新认识存储过程
来源:互联网 发布:通讯网络与设备是什么 编辑:程序博客网 时间:2024/05/22 01:56
重新理解存储过程
对于存储过程,之前的理解基本停留在sql语句的集合这个简单的层面,因为之后使用相对较少也没有深入理解存储过程,现在项目中又用到了存储过程,而且组长重推存储过程,所以又重新理解了下存储过程。
简单来看,存储过程只不过是把复杂的sql语句从我们原来的.net或者java程序里转移到了数据库中,这样我们调用的时候只需要知道存储过程名和需要传递的参数即可,但是就是这么一个简单的改变其实很不简单:
- 存储过程可以接受输入参数,以输出参数的形式给调用过程返回多个值;
- 存储过程可以给调用过程或者批处理返回状态值,表示成功或者失败;
- 存储过程可以调用其他存储过程并执行它们;
- 存储过程允许模块化编程,也即是说,可以独立于应用程序创建它们,可以在不重新编译应用程序的情况下修改它们。
- 存储过程允许以更快的速度执行。数据处理反复多次时,存储过程会比应用程序提交给数据库的SQL代码更快。因为创建存储过程时,就已经对它们进行了解析和编译,第一次执行过后,可以使用处于内存中的这个过程,在客户-服务器系统中,这在很大程度上提高了性能,在这样的系统中,几个客户调用和执行同一个存储过程。相反,SQL语句每次运行时都要从客户端重复发送,数据库引擎每次执行它们时,都要进行编译和优化,这在很大程度上影响了应用程序的性能。
- 存储过程可以大大地减少网络通信量,在存储过程中完成数据密集型操作任务并且只给通用程序返回一次,不必在网络上把几个SQL语句发送多次,这将节省很多网络通信工作。
- 存储过程可用作安全机制,我们可以用这样的一种方式建立用户组,即只有某些用户组可以执行某个存储过程。
从一张图来看就是存储过程相当于做了一个计算移动,把复杂sql语句的编译和计算的工作转移到了数据库端,这样可以把db和存储过程看成一层,相比于常用的传递sql语句(可以说是数据移动,把sql语句和我们的数据处理层D层看做一层)剥离了我们的程序和数据库,有点解耦的意味。
0 0
- 重新认识存储过程
- 存储过程重新编译
- 存储过程重新捡起
- 重新编译存储过程
- 认识存储过程
- 重新认识sql的解析过程
- Oracle初步认识存储过程
- 存储过程的初步认识
- MySQL存储过程的认识
- 重新生成索引存储过程 sp_rebuild_index
- 存储过程重新编译一直卡死
- 重建(重新组织)索引的存储过程
- Android的存储----重新认识Android(9)
- 学习SQLSERVER的存储过程-之一认识存储过程语法
- 改bug过程中的新发现,重新认识String trim方法
- 改bug过程中的新发现,重新认识String trim方法
- 初步认识存储过程和触发器
- 索引,视图,存储过程,游标的认识
- 链表应用
- IE6 BUG的解决方法
- selenium-webdriver(python) (十四) -- webdriver原理
- Linux安装svn客户端
- JSP 九大内置对象和四大作用域简介
- 重新认识存储过程
- cocos2d-x 3.x C++和Lua通信方式:Lua堆栈正数索引和负数索引的关系和用法
- hdu 5444 Elven Postman
- selenium-webdriver(python) (十五) -- 鼠标事件
- android添加wifi热点管理黑白名单
- C++Primer第五版 9.3.4节练习
- WebCollector 网页正文提取算法(ContentExtractor)
- Z-Stack协议中事件和消息分析
- Java 完全数