`

什么是存储过程?存储过程与SQL语句对比,使用存储过程的优点?

 
阅读更多

    存储过程:使用一个名称存储的预编译T-SQL语句和流程控制语句的集合
              由数据库开发人员或数据库管理员编写
              用来执行管理任务或应用复杂的业务规则 
    优点:执行速度更快
          首次运行时,进行优化和编译得到执行计划并将该计划存储在系统表中,以后直接运行。
          实现多个程序共享应用程序逻辑
          组件式编程
          能够屏蔽数据库的结构,实现更高的安全性
          减少网络流通量

存储过程与SQL语句对比

 

优势:

1、提高性能
SQL语句在创建过程时进行分析和编译。 存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划,这样,在执行过程时便可节省此开销。
2、降低网络开销
存储过程调用时只需用提供存储过程名和必要的参数信息,从而可降低网络的流量。
3、便于进行代码移植
数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。
4、更强的安全性
1)系统管理员可以对执行的某一个存储过程进行权限限制,避免非授权用户对数据的访问
2)在通过网络调用过程时,只有对执行过程的调用是可见的。 因此,恶意用户无法看到表和数据库对象名称、嵌入自己的 Transact-SQL 语句或搜索关键数据。
3)使用过程参数有助于避免 SQL 注入攻击。 因为参数输入被视作文字值而非可执行代码,所以,攻击者将命令插入过程内的 Transact-SQL 语句并损害安全性将更为困难。
4)可以对过程进行加密,这有助于对源代码进行模糊处理。

 

劣势:

1、存储过程需要专门的数据库开发人员进行维护,但实际情况是,往往由程序开发员人员兼职

2、设计逻辑变更,修改存储过程没有SQL灵活

为什么在实际应用中,存储过程用到相对较少呢?

在通常的项目研发中,用存储过程却相对较少,这是为什么呢?
分析原因如下:
1)没有特定的数据库开发人员,普通程序员兼职进行数据库操作
2)程序员往往只需操作程序,即可完成数据访问,无需再在数据库上进行开发
3)项目需求变动比较频繁,修改SQL语句比较方便,特别是涉及逻辑变更 

存储过程与SQL语句如何抉择?

基于实际应用的经验,给予如下建议:

1、在一些高效率或者规范性要求比较高的项目,建议采用存储过程
2、对于一般项目建议采用参数化命令方式,是存储过程与SQL语句一种折中的方式
3、对于一些算法要求比较高,涉及多条数据逻辑,建议采用存储过程

分享到:
评论

相关推荐

    SQL Server中存储过程比直接运行SQL语句慢的原因

    在了解这个问题之前,我们通常认为存储过程具有以下优点:首先,存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的 SQL 语句每执行一次就编译一次,所以使用存储过程可以...

    存储过程中怎么动态执行sql语句

    “存储过程中怎么动态执行SQL语句”这一标题表明文章将介绍如何在Oracle数据库的存储过程中编写能够动态执行的SQL语句。动态SQL是指在运行时才能确定其具体内容的SQL语句,它允许用户根据不同的条件构造不同的查询或...

    SQL语句创建存储过程

    在SQL Server 2005中,存储过程是一种预编译的SQL代码集合,它可以封装一组复杂的查询和操作,以供以后重复使用。这极大提高了数据库管理效率,减少了网络流量,并增强了安全性。以下将详细解释如何创建存储过程,...

    SQL语句大全和存储过程

    在IT领域,SQL(Structured Query Language)是一种用于管理和操作关系数据库的强大工具,而存储过程是SQL中的高级特性,用于封装一组复杂的SQL语句并进行执行。以下是对标题和描述中涉及的知识点的详细阐述。 首先...

    SQL Server存储过程对比工具

    首先,存储过程是SQL Server数据库中预编译的SQL语句集合,通常用于执行复杂的业务逻辑或提高数据访问效率。它们可以接受参数、返回结果集,甚至包含控制流程语句,如IF-ELSE、WHILE等。对比存储过程对于多环境部署...

    mysql 查询存储过程的 sql 语句.docx

    通过使用存储过程,开发者可以在一次操作中执行多个 SQL 语句和逻辑处理。 #### 二、创建存储过程 创建存储过程需要用到 `CREATE PROCEDURE` 语句。以下是一个简单的示例: ```sql CREATE PROCEDURE ...

    SqlServer存储过程及调试指南

    1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作数据库中的重要对象,对于设计良好的数据库应用程序...

    SQL中存储过程中SQL语句的单引号和双引号问题[总结].pdf

    SQL 中存储过程中 SQL 语句的单引号和双引号问题 在 SQL 中,单引号和双引号的问题是一个常见的混淆点,特别是在存储过程中编写 SQL 语句时。下面将对此问题进行详细的解释和总结。 一、单引号和双引号的基本概念 ...

    学习sql存储过程的心得

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,它们被预先编译并存储在数据库中,可以通过一个名称来调用执行。学习SQL存储过程是提升数据库管理和应用开发效率的关键步骤,它可以帮助我们更好...

    学生管理系统(三种方法控制台实现:ArrayList、SQL语句、存储过程)

    在这个项目中,我们将探讨如何使用三种不同的方法在控制台上实现这样的系统:ArrayList、SQL语句和存储过程。每种方法都有其特点和适用场景,理解它们有助于提升对数据管理和程序设计的理解。 1. **ArrayList实现**...

    SQL语句,存储过程,触发器

    SQL语句,存储过程,触发器

    自动生成SQL语句_C#_sql_

    1. 动态SQL:在C#中,你可以使用字符串操作生成动态SQL语句,这在需要根据条件生成不同结构的SQL时非常有用。例如,你可以根据用户的选择决定是否在WHERE子句中包含某个条件。 2. 存储过程:另一种方法是使用SQL ...

    sql存储过程学习,详细的解说存储过程的语法,结构和用法。

    SQL存储过程是数据库管理系统中的一种重要工具,它允许程序员和数据库管理员预先定义并存储一系列复杂的SQL语句,以便后续调用。存储过程不仅能够提高数据处理的效率,还能增强数据库的安全性和可维护性。以下是对...

    在存储过程中执行字符串中存有的sql语句

    oracle在存储过程中执行字符串中存有的sql语句

    SQL存储过程试题及答案

    SQL存储过程试题及答案 SQL存储过程是数据库中的一种程序单元,能够完成特定的数据库操作。今天,我们将讨论三道关于SQL存储过程的试题,这些试题涵盖了存储过程的创建、调用和参数传递等方面。 1. 创建分数存储...

    自动执行SQL语句&创建标准的Sql 存储过程

    在SQL数据库管理中,自动执行SQL语句和创建标准的SQL存储过程是两个重要的操作,它们对于数据库管理和数据处理有着深远的影响。以下是这两个主题的详细解释: 首先,自动执行SQL语句是指通过一定的机制,让预定义的...

    数据库的存储过程

    数据库的存储过程是数据库管理系统提供的一种预编译的SQL语句集合,它是数据库中的一个对象,可以被多次调用,从而提高数据访问的效率。在本文中,我们将深入探讨存储过程的基本理念、语法以及常见的实现方式,特别...

    sql语句大全存储过程

    经典sql语句,SQL查询语句精华使用简要,sql存储过程等等!

    通用的存储过程sql分页查询语句

    存储过程是一组预先编译好的SQL语句,存储在数据库服务器中,可以按需调用执行。它的优点包括提高性能、减少网络流量、增强安全性以及简化复杂的操作。在分页查询场景下,创建一个存储过程可以有效地封装分页逻辑,...

Global site tag (gtag.js) - Google Analytics