关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL语言 »如何在应用程序中高效的使用存储过程

    如何在应用程序中高效的使用存储过程

    2015-11-17 00:00:00 出处:ITJS
    分享

    存储过程在SQL Server 2005中,显示在可编程性子菜单中,存储过程主要是把一组SQL语句和控制语句组成起来,然后封装在一起的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个存储过程或触发器调用。

    而存储过程主要在使用的时候有哪些优点,我们看下面主要的介绍:

    进行模块化程序设计

    创建的过程只需一次性将其存储在数据库中,便可以在应用程序中调用该存储过程。它可以把数据库主要的关联性的业务通过SQL语句有效的组织在一起,也有着大量的语法结构,类似于编程语言相关的严谨性,一般由专门的数据库设计人员去编写。

    高效的执行速度

    存储过程是对SQL语句进行编译性的存储,要比Transact-SQL 批代码的执行更快,存储过程在创建的时候就需要对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行Transact-SQL 语句时,都要从客户端重复发送,并且在SQL Server每次执行这些语句时,都要对其进行编译和优化,而存储过程就节省了编译的时间。

    减少网络的通信流量

    假如存储过程只需要一个简单的查询,可能是体现不出网络的通信流量,而假如有一个数百行的Transact-SQL语句的代码的操作由一个存储过就可以实现, 就不需要在网络中发送数百行的代码,减少网络的通信流量,增加了一些不必要的网络负载。

    方便的管理与部署

    现在流行的开发语言都是编译性的,如JAVA或.NET,假如SQL语句写在程序中,对这些数据的业务进行修改的时候,我们就会对其重新编译,然后再部署到服务器上,有时甚至会影响了应用程序其它功能的模块,而用存储过程方式实现,就不需要对应用程序进行重编译,修改存储过程就可以直接实现了。它采用一种分布式的工作方式,应用程序和数据库的编码工作可以独立的进行,而不会相互影响。

    提供了更安全的实现机制

    系统管理员通过对执行某一存储过程的权限进行限制,从而能够实现对相应的数据访问权限的限制,避免非授权用户对数据的访问,保证数据的安全。

    现在我们来列举下存储过程在实际应用中会有哪些好处,先来看实际中的这两种应用:

    1) 现在要我们设计一个权限方面的Web应用的软件系统,它有如下几种功能:

    1、 非登录用户不准进入;

    2、 登录的用户而在系统中的积分为零了,又不允许进入;

    3、 此用户由于发表一些过激的话语现在被管理员禁用他的权限了,又不允许进入;

    4、 此用户所在的IP段是不允许访问的,这样同样不允许进入。

    这时我们假如在代码里面去实现这些功能的话,可能上面的每一个功能,我们都去写一个SQL语句去判断,根据每一个SQL语句执行的结果去提供给用户不同的显显示信息,无疑会增加数据库及网络的吞吐量。

    而我们把上面的业务放在一个存储过程里面,把这些语句放在一组,然后通过每种情况传出一个输出参数,然后在程序部分只面要对这些接收参数进行分别的判断,这样程序部分只需要提交一次,就会大大的增加了应用程序的性能。存储过程的优点显而可见。

    2) 我们再看一种业务这样的需求,现在对已经毕业的学生的信息进行批量的上报,这些学生信息原来是存储在一种表中,上报过后就会存储在另一张表中,我们先通过查询把所有在学校里面这些毕业的学生信息查出来,然后采取批量上传的方式,这是我们可能会在应用程序中如下操作:

    在程序中建立一个循环,如

    for (i=0;iNT.COUNT,I++)< p>

    {

    //此部分是把选取列表中对应的每个学生的ID都进行传送到存储过程中。

    }

    这样产生的一种结果就是,假如批量选取了一百个学生,就会按学生选取的ID一次次的传送到存储过程中一百次,这样数据库频繁的打开与关闭就会达到一百次,这样的操作很可能就会引起服务器性能的低下,CPU很可能就会达到百分之百。

    而我们把上面的实现方法改造一下,我把们学生的ID存储为一个字符串,按逗号进行串联,不再以INT形式传递到存储过程,而传递字符的形式,而在存储过程编写的时候,我们通过对这些字符串进行处理,再按逗号进行分隔,然后在里面进行循环的处理,这样处理的速度就会非常快,和上面比较性能就有着巨大的提高。

    上面的两个小应用可以看到,有时虽然实现了同样的功能,但存储过程的应用的优点是非常明显的,但对性能的提高有时还需要更多的经验,因为在存储过程编写的时候,有时候还需要考虑一些SQL运用的技能,像一些复杂的组合查询,一些事务的运用,一些语句使用的规范,怎么样避免尽量的少使用一些效率不高的语句,如not in等等,这需要我们仔细的分析软件的业务,及平常在写存储过程的过程中就要积累这些良好的习惯。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    SQL汉字转换为拼音的函数

    windows 7系统无法运行Photoshop CS3的解决方法

    巧用MySQL加密函数对Web网站敏感数据进行保护

    MySQL基础知识简介

    Windows7和WinXP下如何实现不输密码自动登录系统的设置方法介绍

    windows 7系统ip地址冲突怎么办?windows 7系统IP地址冲突问题的

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。