日期:2014-05-16  浏览次数:20851 次

就一条根据id删除,或者更新数据库的操作,有必要放到存储过程里面吗?
RT,就是一条删除的sql语句,
PROCEDURE DeleteDOC(id IN NUMBER) AS
BEGIN
  DELETE FROM DOC WHERE DC_DOCID = id;
END DeleteDOC;
就这一条语句有必要整理出一个存储过程吗?
我仅仅想知道的是效率问题,不是其他的什么编码规范什么的!

------解决方案--------------------
建议百度:存储过程的优点。
会很详细,简单说就是一次编译,多次适用,减少交互。
------解决方案--------------------
有效率优势。oracle本身有缓存。如果你用存储过程,他会编译,效率很高。如果没用,只有执行相同的语句效率才会高。(也就是带的id要一样)
------解决方案--------------------
存储过程之根本就在于“存储”
------解决方案--------------------
不要小看只有1条,万一人家一次这个操作是上W,10W,100W的删除行语句
比你程序直接发对应行sql快很多吧
------解决方案--------------------
不会涉及到调度问题吧,以前就写过一条delete语句放一个存储过程里面了
------解决方案--------------------
没有必要放到存储过程里啊。
当然目前对于是否应该使用存储过程,大家一直在激烈的讨论中。
有的认为有优势,有的认为没有优势。
可以自己看看相关的讨论,然后根据自己的情况来决定。
------解决方案--------------------
是否重复调用率高?
存储过程sql,不用重新编译。
------解决方案--------------------
如果修改某些条件的时候你是改程序,改了编译,然后发布么????
写到存储结构里,直接改存储结构,不编译,不发布。
谁好????
说好的三层呢?
------解决方案--------------------
看情况吧,不能一概而论。
------解决方案--------------------
探讨

没有必要放到存储过程里啊。
当然目前对于是否应该使用存储过程,大家一直在激烈的讨论中。
有的认为有优势,有的认为没有优势。
可以自己看看相关的讨论,然后根据自己的情况来决定。