什么时候用到mysql存储过程_什么时候用到存储过程
存储过程一般用于处理比较复杂的任务,基础ms这个平台,可以大大降低耗时,其编译机制也提高了数据库执行速度
存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在:1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
(尽可能少的连接数据库,可以减少时间损耗;事务方面在批量操作中非常重要,因为事务可以回溯,当出错时,可以进行回溯,保证数据的完整性!)
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
(体现在分页存储过程,以及下面这个例子:)
例子:
create PROC [dbo].[jobs_public_select]
@TableName VARCHAR(2000),/*表名*/
@ParamName VARCHAR(2000),/*查询字段字符串*/
@ParamWhere NVARCHAR(2000)/*条件字符串*/
AS
BEGIN
Declare @SQL varchar(500)set @SQL='SELECT'+@ParamName+'from'+@TableName+'WHERE 1=1'
IF @ParamWhere<>''
BEGIN
SET @SQL=@SQL+@ParamWhere
END
exec(@SQL)END
(这个例子主要作用就是公共查询功能,你只需要传递表名,查询的字段,条件即可。你可以以此类推,写个公共删除,公共更新的;操作无非也这几种哈。)
优点:1.速度快。尤其对于较为复杂的逻辑,减少了网络流量之间的消耗
我有的过程和函数达到了几百行,一个微型编译器,相信用程序就更麻烦了。
(在获取权限那个存储过程深有体会,你也可以写个C#的算法,然后与存储过程进行速度比较。)2.写程序简单,采用存储过程调用类,调用任何存储过程都只要1-2行代码。
(我不知道别人怎么调用,我是深受其益)
3.升级、维护方便(你只需要更改存储过程就好,比如添加一个字段等)
4.调试其实也并不麻烦,可以用查询分析器(基础好,一般没有遇到很大的错误!)
5.如果把所有的数据逻辑都放在存储过程中,那么asp.net只需要负责界面的显示阿什么的,出错的可能性最大就是在存储过程。我碰到的就一般是这种情况。
(减少了排错的时间)
存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。
但是存储过程处理比较复杂的业务时比较实用。
比如说,一个复杂的数据操作。如果你在前台处理的话。可能会涉及到多次数据库连接。但如果你用存储过程的话。就只有一次。从响应时间上来说有优势。
也就是说存储过程可以给我们带来运行效率提高的好处。
程序容易出现 BUG 不稳定,而存储过程,只要数据库不出现问题,基本上是不会出现什么问题的。也就是说从安全上讲,使用了存储过程的系统更加稳定。
增强安全性:
a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;
什么时候用到mysql存储过程_什么时候用到存储过程相关推荐
- 分布式mysql 不支持存储过程_分布式数据库VoltDB对存储过程的支持
设计数据库架构 VoltDB是关系数据库产品.关系数据库由具有约束,索引和视图的表和列组成.VoltDB使用标准SQL数据库定义语言(DDL)语句来指定数据库架构.因此,为VoltDB数据库设计架构使 ...
- db2 删除存储过程_数据库教程-SQL Server存储过程使用及异常处理
SQL Server存储过程 存储过程(Procedure)是数据库重要对象之一,也是数据库学习的重点之一.本文,我们以SQL Server为例对存储过程的概念.定义.调用.删除及存储过程调用异常等通 ...
- mybatis调用mysql存储过程_秒会mybatis调用存储过程(MySQL)
一.简介 有的时候,我们不方便自己写SQL,而是只能调用别人提供的存储过程,那如何使用mybatis调用存储过程呢? 二.示例步骤(MySQL) 2.1 准备一张表 DROP TABLE IF EXI ...
- 动软 mysql 分页_动软.NET 分页存储过程UP_GetRecordByPage
1, ------------------------------------ --用途:支持任意排序的分页存储过程 --说明: ----------------------------------- ...
- mysql 禁止存储过程_为什么阿里巴巴禁止使用存储过程?
点击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 本文作者:杨洋的围脖啊 链接:segmentfault.com/a/119000001 ...
- java使用集合存储过程_详解java调用存储过程并封装成map
详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map 本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...
- oracle怎么执行存储过程_分享一个分析Oracle存储过程性能小技巧
概述 最近接触了物流数据库这一块,OLAP类型的系统,有好多存储过程后面需要去做优化,因为写存储过程中会遇到存储过程执行时间太长问题,如果能知道存储过程里面具体的执行情况是如何的就可以帮助我们进一步分 ...
- mysql 动态传入表名 存储过程_面试再问MySQL存储过程和触发器就把这篇文章给他...
Mysql存储过程及触发器trigger 存储过程 一.一个简单的存储过程 1,一个简单的存储过程 delimiter $$create procedure testa()begin Select * ...
- MySQL存储过程_创建-调用
存储过程:SQL中的"脚本" 创建存储过程 调用存储过程 存储过程体 语句块标签 存储过程的参数 in:向过程里传参 out:过程向外传参值 inout:in and out #S ...
最新文章
- android中的显示跳转和隐式跳转
- 零基础学python全彩版pdf-(特价书)零基础轻松学Python:青少年趣味编程(全彩版)...
- influxdb java_身为Java程序员想拿高薪?这份分布式的pdf你一定不能错过
- SERVICE问题解决方法
- 右键快捷VsCode
- 有人不会使用计算机的反义,现代汉语练习题及答案
- NLP --- 命名体识别(NER)
- 【转】我应该直接学Swift还是Objective-C?
- ThinkPHP 5.1+全开源带后台商城小程序源码程序+带详细安装使用文档
- 火影150集碎片拾忆 记于2014-04-08
- Java 断点续传以及在线视频播放可选择任一时间播放原理
- python控制键盘输入_神技能:Python控制键盘鼠标
- Python让Excel飞起来—批量处理行、列和单元格
- M1下mongodb、mysql
- 《如梦令·常记溪亭日暮》【宋】李清照
- 手机QQ上传速度提升8倍秘诀:解决速度与成功率的“鱼翅”项目
- WGCNA分析及实现
- 五连阳回调买入法_如何精准买在洗盘结束时?“4连阳+1阴”形态,不要犹豫,出现即满仓买进,这可能是抄底最佳时机...
- 电子书籍下載點 E-Book
- Linux上SVN的搭建使用(ab****43ab****43)