`

存储过程与SQL语句的恩怨情仇

阅读更多
程序员说:存储过程还是SQL语句,这是一个问题。
江湖现在有三个流派,一个是SQL语句流的,崇尚使用SQL语句,一派是存储过程派的,崇尚用存储过程说话,还有一派是中庸派的,讲求和谐,所以也就前两派吵得厉害,中庸派的看热闹。现在SQL派的有Nhibernate为首的众多ORM助阵,最近风生水起比较得意,存储过程派也有自己的杀手秘籍,两派互不相让,争斗由来已久。
存储过程派的追求速度,所谓天下无功无坚不破,唯快不破,这也是存储过程派的人行走江湖的最大本钱。之前存储过程派的攻击SQL语句派的还有一个秘籍就是安全,不过现在都没人用连接String的动态SQL的了,这招也就失效了。
SQL语句派是资格很老的流派,但是新手居多,老资格很多投奔敌营存储过程派了。Java帮的人很多都是SQL语句派的,而存储过程派的以微软帮的居多。
不过存储过程派也有软肋,可移植性就是其一,还有一点就是可扩展性,因为一般大型的Web应用程序都是多Web服务器,然后用双数据库服务器做双机热备,其中一台开机,但是是闲置的,这里只是解决单点故障的问题,但是形成了多Web应用服务器,单数据库服务器的情况,如果所有的运算都用存储过程实现,那么会造成数据库服务器负担过重,而Web服务器负荷不足的情况,而扩展数据库服务器的话就会非常的麻烦,而且投资较大,程序也需要改,而投资Web服务器就相对便宜而且扩容更加简单。
人在江湖漂哪有不挨刀,所以中庸一点比较保险,我比较倾向于用把较多的负担放到程序里来,而降低数据库得负担,因为只要数据库扛得住,再增加Web服务器那是比较容易的,但是一旦数据库服务器扛不住了我们就只有哭了。一般报表阿,还有一些结果集比较复杂的我就用存储过程来包装,一般的查询和CUID操作我都是找个ORM来搞定。

其实主要是在说存储过程的软肋。
分享到:
评论

相关推荐

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

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

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

    SQL Server 中存储过程比直接运行 SQL 语句慢的原因 在 SQL Server 中,存储过程比直接运行 SQL 语句慢的原因是 Parameter sniffing 问题。Parameter sniffing 是指 SQL Server 在执行存储过程时,使用参数的统计...

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

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

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

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

    用sql语句创建库 表 视图与存储过程.sql

    用sql语句创建库 表 视图与存储过程 用sql语句创建库 表 视图与存储过程

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

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

    sql语句万能生成器,sql语句,sql语句生成

    SQL语句是数据库操作的核心,它用于查询、插入、更新和删除数据,是任何数据库管理系统中的基础工具。在IT行业中,编写SQL语句是一项必备技能,但手动编写和调试SQL语句可能会耗费大量时间和精力,尤其在处理复杂...

    Oracle Sql语句转换成Mysql Sql语句

    4. **游标**:Oracle SQL支持游标,MySQL则不直接支持,需要使用存储过程或临时表来实现类似功能。 5. **函数和操作符**:两者内置的函数和操作符有所不同,例如Oracle的NVL对应MySQL的IFNULL,Oracle的TO_DATE对应...

    SQLServer动态SQL语句的用法

    在动态 SQL 语句中,可以使用变量来存储字段名、表名、数据库名等信息,例如: declare @fname varchar(20) set @fname = 'FiledName' exec('select ' + @fname + ' from tableName') 输入或输出参数 在动态 SQL ...

    SQL语句大全和存储过程

    3. **SQL存储过程基础语法.doc**:这是一个关于存储过程基础知识的文档,可能包括了创建、调用、参数传递以及存储过程的管理等内容。 通过这些资源,你可以系统地学习和掌握SQL的基本用法和存储过程的编写技巧,...

    sql语句说明sql语句说明sql语句说明.zip

    sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明...

    Oracle教案 Oracle 存储过程 游标 SQL语句 PL/SQL

    Oracle 教案:深入理解 Oracle 存储过程、游标与 SQL 语句及 PL/SQL Oracle 是全球领先的数据库管理系统提供商,不仅提供数据库产品,还包括中间件、云计算服务等全面的企业级解决方案。"Oracle"一词源于古希腊神话...

    SQL语句执行过程详解

    SQL语句执行过程是一个涉及到客户端与服务器端交互、多个阶段的复杂过程,包含了对SQL语句的处理、解析、优化以及最终的执行。这个过程对于数据库管理员来说,需要对数据库内部结构有深入的了解,才能够完全掌握。 ...

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

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

    Java打印漂亮的SQL语句(被格式化的SQL语句)

    在Java编程中,调试SQL语句是开发过程中的常见任务,尤其当面对复杂且冗长的查询时。为了提高效率并使SQL语句更易于理解和分析,格式化SQL语句显得尤为重要。标题提及的"Java打印漂亮的SQL语句(被格式化的SQL语句)...

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

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

    PB 从SQL语句获取数据存储(MySQL)

    标题 "PB 从SQL语句获取数据存储(MySQL)" 指的是使用PowerBuilder (PB) 开发工具,通过SQL语句从MySQL数据库中检索和处理数据存储的过程。在这个Demo中,PB11.5 版本被用作开发环境,而MySQL作为后台数据库系统。...

    sqlserver自动生成sql语句工具sqlserver转oracle

    例如,通过这样的工具,我们可以导出SQL Server中的表结构、索引、存储过程、触发器等对象的创建语句。 描述中提到的"sqlserver转oracle"则是指将SQL Server数据库的内容迁移到Oracle数据库的过程。这个过程涉及到...

    SQL 语句存储过程

    SQL 语句存储过程 在本节中,我们将详细介绍 SQL 语句存储过程的知识点。存储过程是数据库中的一种编程对象,它可以将多个 SQL 语句组合成一个单一的执行单位,以提高数据库的性能和安全性。 标题:SQL 语句存储...

Global site tag (gtag.js) - Google Analytics