锁定老帖子 主题:有关存储过程--考虑很多
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-17
【引用开始:】 复杂的语句自然要放在存储过程中,虽然我反对乱用存储过程,但是如果你真的有一个sql语句长达百行,那不放在存储过程中才是有毛病呢。
不同数据库的存储过程写法不一样,如果要兼容不同数据库,那最好就不用存储过程,因为你要维护两套岂不是很头疼。
【引用开始:】 偶也不赞成使用存储过程.原因:
【存储过程有好处的确,但抓问题要抓主要矛盾,这些好处是你的性能瓶颈吗?这才是优化的唯一出发点】
【引用结束:】
【最后:】 首先软件的分层是为了更好的解耦:
数据库的用途就是存放数据,程序才是处理挖掘数据的工具,把业务的功能封装在数据库里成存储过程是换来了性能的一点提升,但本身是违背软件的设计原理的,但好还是不好,我们都不要绝对,从cost 出发考虑问题,客户第一,效益最大。回过头继续聊,打个比方,一个电脑或者专业点的大型机器,预装有基本的动作,我可以拿它买给n多客户而不需要更改任何东西,这是最好的做法,但如果有客户需要你特制一些功能在里面,那么这太机器就耦合了该客户的一些业务了,当然了对这个客户来说性能上绝对是大提升,但对于制造方要花人员去维护了。
O/R mapping 对象关系映射, 如heibernate 这种纯面向对象对开发速度是一种极大的提高,性能上我估计人家也会尽量的优化。例如一级缓存,二级缓存。
总结:我做程序比较注重程序的可读性,也许是我维护别人的代码怕了,所以尽量把自己知道的全部注释上去,这中做法很多情况恰恰是帮了自己。如果是我带队,我绝对不用存储过程,总觉得用存储过程的是人还是少,做好的程序,让别人来维护,除了代码外,他还需要面对一对数据库里的过程,他会头大的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-17
在考虑到效率因素的话,存储过程还是有很大必要的。再说,存储过程不是也可通过注释、文档和适当的写法表现在程序中。存在即合理。我觉得存储过程还是考虑效率和安全时候的一个方式。
|
|
返回顶楼 | |
发表时间:2008-12-22
xleon 写道 在考虑到效率因素的话,存储过程还是有很大必要的。再说,存储过程不是也可通过注释、文档和适当的写法表现在程序中。存在即合理。我觉得存储过程还是考虑效率和安全时候的一个方式。 好多论天里的朋友都提到过存储过程的效率提升问题,很微不足道的 |
|
返回顶楼 | |
发表时间:2008-12-22
个人觉得 如果滥用存储过程在系统群集的时候 会碰见很大的麻烦。
|
|
返回顶楼 | |
发表时间:2009-06-18
很可能在上千万的项目
你看到的就是一堆一堆的SQL |
|
返回顶楼 | |
发表时间:2009-06-18
存储过程带来的预编译优势并不是很大.数据库的性能主要还是靠好的设计,索引,缓存等机制来提高.
--- 这个比较法明显有问题,要对比预编译和非编译的区别,当然是基于相同的数据可设计,否则有什么可比性。 |
|
返回顶楼 | |
发表时间:2009-06-18
我个人认为存储过程这东西能不用的话就尽量不用吧...
各种数据库的存储过程写法都不一样,万一更换或者添加数据库系统则会很麻烦,用程序写的话对数据库之间的差异考虑得少一点.. |
|
返回顶楼 | |
发表时间:2009-07-16
wangjia4202 写道 我个人认为存储过程这东西能不用的话就尽量不用吧...
各种数据库的存储过程写法都不一样,万一更换或者添加数据库系统则会很麻烦,用程序写的话对数据库之间的差异考虑得少一点.. 很简单,不让换数据库.你见过哪个正常的系统没事去换数据库的. |
|
返回顶楼 | |
发表时间:2009-09-08
现在的项目全是存储过程...想不明白为什么要这么做。
难道是使用语言的原因? |
|
返回顶楼 | |
发表时间:2009-09-08
写得很中肯。。但是也很苍白。。。
针对一些特定的项目,如电信方面的,存储过程是有它存在的必要的。 至于成本,我们公司是有专门的数据库人才的,每个项目组也都在培养数据库人才。值得不值得,那就仁者见仁,智者见智了。 |
|
返回顶楼 | |