我想了解一下存储过程的效率

bluebohe 2021-04-02 09:17:30
好久不用sql server了,实现同样一块逻辑,把数据无关的代码放在c里面快,还是放在存储过程里面快?差多少?
...全文
435 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰思雨 2021-04-12
  • 打赏
  • 举报
回复
引用 楼主 bluebohe 的回复:
好久不用sql server了,实现同样一块逻辑,把数据无关的代码放在c里面快,还是放在存储过程里面快?差多少?
一般情况下,数据无关的代码是放在C里面的,存储过程不会放置数据无关的代码。 存储过程中放置数据无关的代码,唯一的理由,应该就是为了开发方便吧,用C语言写这些逻辑的代码量和复杂度,要比直接写在存储过程里面要高。 注意开发过程中,功能的封装要贯彻到底。 哪个快? 看具体情况,比如: 1. 数据无关代码的时间复杂度是多少,很消耗CPU指令的话,还是使用C程序的性能要高一些。 2. C实现是否是分布式的程序(多线程的程序也有可能造成这个情况),多个C程序连接一个数据库,那么,在并行计算时,数据库的CPU可能会过载,导致性能降低。 另外, 存储过程绝大多数都要进行预编译,这个步骤会提升执行效率,但是,依然不如C语言的执行效率,我指的是数据无关的代码。
唐诗三百首 2021-04-04
  • 打赏
  • 举报
回复
请问什么是"数据无关的代码"? 例如哪些.
morliz子轩 2021-04-03
  • 打赏
  • 举报
回复
引用 楼主 bluebohe 的回复:
好久不用sql server了,实现同样一块逻辑,把数据无关的代码放在c里面快,还是放在存储过程里面快?差多少?
我个人感觉,如果需要产生大数据量运算过程,Proc是最好的选择。只是涉及到组合性的查询,View都能解决。 真正要说到快慢的问题,非标准化的逻辑,建议还是少用proc实现,应尽量在UI端来实现。 始终认为,DB应快速响应查询集,或者执行数据处理集的这样的一个结果 。 越复杂的业务逻辑,还是放在中间层或前端设计为宜。从运维和查错上讲,更易检查发现。
吉普赛的歌 版主 2021-04-03
  • 打赏
  • 举报
回复
从快慢上来说, 肯定是存储过程。 存储过程 一来后端到数据库只需要传一个存储过程名和参数, 传输上快了不少; 二来前面有过预编译,这方面也就快了。 至于是否用存储过程, 个人建议看情况吧。 比较复杂的数据处理, 还是用存储赛程; 一般简单的sql ,或者希望记录调试日志比较齐全的逻辑, 写后端,不用存储过程。
wenoxy 2021-04-02
  • 打赏
  • 举报
回复
肯定是存储过程啊,毕竟是预编译的

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧