什么时候通过程序处理,什么时候通过存储过程处理

时间:2022-08-27 16:04:31
我有一个困惑 , 很多东西在程序中可以处理,在数据库中也可以,那我怎么判断是在程序中处理还是在数据库中处理才能比较合理。
比如一个业务逻辑,这个在程序中可以处理,也可以调用一个过程处理,哪样更合适呢?

还有些触发器能处理的逻辑,程序也能处理

6 个解决方案

#1


逻辑尽量放在程序中,数据库少做逻辑操作,一个减少数据库压力,一个是方便修改!

#2


引用 1 楼 u013489937 的回复:
逻辑尽量放在程序中,数据库少做逻辑操作,一个减少数据库压力,一个是方便修改!

学习了。  什么时候通过程序处理,什么时候通过存储过程处理

#3


不能一概而论,一般我们都是用程序去处理。如果某操作需要执行大量SQL语句或重复执行,调用过程很明智

#4


同问,有时候一个sql在过程中执行很快,在ibatis中就是执行很慢,不知道为什么

#5


如果都是表中的数据,建议在数据库上计算,省掉数据从数据库到应用再到库的传输成本。一般而言数据库有服务器配置优于应用服务器的配置。且数据库的内存管理不用人为一般干与,如果用应用,内存就要考虑了。
例如一般的报表、分析运算都会考虑在数据库SERVER上计算,试想几个G的数据传来传去的效率能高吗?还有几个G的数据加载到应用的内存中。。。。。

#6


适合存储过程的场景:
1、业务与DB相关性非常高,频繁的操作DB。
2、事务性很强。
3、独立的模块化业务。

#1


逻辑尽量放在程序中,数据库少做逻辑操作,一个减少数据库压力,一个是方便修改!

#2


引用 1 楼 u013489937 的回复:
逻辑尽量放在程序中,数据库少做逻辑操作,一个减少数据库压力,一个是方便修改!

学习了。  什么时候通过程序处理,什么时候通过存储过程处理

#3


不能一概而论,一般我们都是用程序去处理。如果某操作需要执行大量SQL语句或重复执行,调用过程很明智

#4


同问,有时候一个sql在过程中执行很快,在ibatis中就是执行很慢,不知道为什么

#5


如果都是表中的数据,建议在数据库上计算,省掉数据从数据库到应用再到库的传输成本。一般而言数据库有服务器配置优于应用服务器的配置。且数据库的内存管理不用人为一般干与,如果用应用,内存就要考虑了。
例如一般的报表、分析运算都会考虑在数据库SERVER上计算,试想几个G的数据传来传去的效率能高吗?还有几个G的数据加载到应用的内存中。。。。。

#6


适合存储过程的场景:
1、业务与DB相关性非常高,频繁的操作DB。
2、事务性很强。
3、独立的模块化业务。