存储过程 中间件
数据库迁移 难 易
编写生产率 低 高
调优能力 强 弱
逻辑重用 异构平台,强 异构平台,弱
大数据汇总 易 难
性能 高 低
触发约束机制 强 弱
储存过程好处:
1. 适合监管,适合调用 --- 通过存储过程暴露业务过程,适合异构平台重用业务逻辑,这在企业开发中也很普遍,需要从许多数据库汇总业务数据, 每个业务数据库暴露出其可用的存储过程,远比暴露出表结构强. 举个例子: QA部门的客服数据是java 系统, 物料部门的BOM是cobol, 你如何去查询每种物料的故障率??? 这种在业务发展中不段出现的跨数据库查询, 用存储过程是个相当不错的方法,远比web service好用
2. 性能比在中间层快,适合调优 --- 尤其是在长时间的报表汇总中, 存储过程调优远比什么ejb,hibernate强悍,可用工具也多.
3. 大数据量汇总,中间件根本无法胜任.
所以,我仍然坚持,对于中小型企业系统,我只考虑哪些需要实时数据,客户对响应时间要求较高,而又牵涉的大量数据的场景,才会使用存储过程。其他的,还是用java好了。
存储过程也绝不是一无是处,在进行数据汇总、聚合等操作时存储过程时必然的选择,但复杂逻辑还是交给更适合的其他语言实现吧。也就是说不涉及业务逻辑的、单纯数据的操作应交给存储过程。
分享到:
相关推荐
标题中的“什么时候使用存储过程比较适合”是一个关于数据库管理和优化的话题。存储过程是数据库系统中预编译的SQL语句集合,通常用于执行复杂的数据库操作。以下是对存储过程适用场景和优缺点的详细阐述: **适合...
以下是对何时使用存储过程及其优缺点的详细说明: **适用场景:** 1. **多表操作**:当一个业务操作涉及到对多个数据库表的操作,如更新、插入、查询或删除时,存储过程可以帮助简化逻辑,一次性处理所有操作,避免...
### PL/SQL中存储过程的建立、导出、导入与使用 #### 一、存储过程的概念及优势 存储过程是一种数据库对象,它是由一系列SQL语句组成的预编译的程序块,存储在数据库中,可以通过调用的方式执行。在Oracle数据库中...
- **数据分析**:创建一个存储过程,计算某个时间段内的销售统计数据。 - **事务处理**:在一个存储过程中处理多个数据库操作,确保事务的原子性和一致性。 综上所述,DB2存储过程是提高数据库应用程序效率的重要...
- 使用这些工具,开发人员和DBA无需手动编写SQL查询来检查存储过程,可以节省大量时间,减少错误,并提高工作效率。 7. **安全性**: - 存储过程参数查看器和助手还可以提供安全性方面的帮助,比如查看和管理存储...
这类存储过程在需要在短时间内多次执行相同操作的场景下很有用。 4. **扩展存储过程**:扩展存储过程是为了增强SQL Server的功能而设计的,通常由C或C++编写,以“xp_”开头。它们提供了对操作系统和其他系统资源的...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...
一、什么是MySQL存储过程? 在大型项目中,有时候需要重复执行能够完成特定功能的SQL语句集,而MySQL为我们提供了存储过程的概念,存储过程是数据库中的一个重要对象,它是存储在数据库中的一组完成特定功能的...
其次,存储过程可以将复杂的业务逻辑和对数据库的操作封装起来,并与数据库提供的事务处理结合使用,提高数据的使用效率,减少程序的执行时间。在代码上看,SQL 语句和程序代码语句的分离,可以提高程序代码的可读性...
- **本地执行**:由于存储过程和数据都在同一服务器上,减少了网络传输时间。 - **减少网络传输量**:只需传输存储过程名和参数,而非整个SQL脚本,降低了网络负载。 - **易于管理和重用**:存储过程可以被多次调用...
Visual C++源代码 130 如何使用存储过程查询时间段数据Visual C++源代码 130 如何使用存储过程查询时间段数据Visual C++源代码 130 如何使用存储过程查询时间段数据Visual C++源代码 130 如何使用存储过程查询时间段...
2. **性能提升**:存储过程在数据库中预先编译,执行时减少了解析和编译的时间。 3. **网络流量减少**:调用存储过程比发送单独的SQL语句在网络上传输的数据量少。 4. **安全性增强**:可以通过权限管理限制对存储...
`p12`存储过程同样实现了这一功能,但使用了子查询和声明局部变量的方式。 在实验过程中,我们执行了每个存储过程,验证了它们的功能是否正确。例如,我们调用`CUS_BUY2`查询客户编号为"C00005"的购买记录,调用`TP...
- **性能提升**:存储过程在首次被调用时编译,之后的调用会重用已编译的代码,减少了解析和编译的时间。 - **安全性增强**:通过权限控制,可以限制对数据的直接访问,只允许通过存储过程操作。 - **可复用性**...
什么时候需要用存储过程: 1. 在服务器上执行存储过程,可以改善应用程序的性能。这是因为服务器往往具有强大的计算能力和速度。 2. 避免把大量的数据下载到客户端,减少网络上的传输量。 系统存储过程: 1. sp_...
3. **代码重用**:存储过程可以被多次调用,减少了代码的冗余,节省了数据库开发人员的时间和精力。 4. **增强安全性**:通过限制特定用户对存储过程的访问权限,可以有效地控制对数据库的访问级别,从而提高整体的...
使用存储过程可以减少数据添加的时间,并且可以实现批量添加数据。 知识点三:Mysql 自动提交 Mysql 自动提交是指 Mysql 数据库在执行每条 SQL 语句后自动提交事务的功能。自动提交可以提高数据库的性能,但是它也...
为了优化性能,存储过程使用了`ROW_NUMBER()`窗口函数进行分页,避免了一次性加载所有结果集的问题,大大减少了内存占用和响应时间。此外,通过`WITH(NOLOCK)`提示,避免了读取数据时的锁竞争,进一步提升了查询速度...