有关存储过程的是是非非

真是无语,有这么比的吗?
有点象比较汇编语言和java语言那个效率高。

虽然结论很清楚,但几乎没有意义,因为两者用途完全不一样。

存储过程肯定是比其他一切访问数据库的方式都高效!!!

存储过程完全在数据库内部执行,完全没有任何额外数据交换。

http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece76310459737430fc4342bd7a7442384cd15c6254c413037bee43a710d04d1c67e6304af5448afad7624381450b18cbf8c5dadbd855b2f9f2644676c8d5666a50edfca5154b037902bb4ef46f0ba8125e5acc5a0da4322ca44740997f0fa4d7017dd1efa0340e7b1e94e&p=8b2a9559c8981ef234bd9b7f1b&user=baidu&fm=sc&query=%B4%E6%B4%A2%B9%FD%B3%CC+ORM+%D0%A7%C2%CA+%B1%C8%C6%B4&qid=b36ff23904930b5b&p1=3

这篇文章的作者,对于存储过程可以说一知半解,
他的例子可以比较各种应用开发工具与数据库操作的效率,但是完全无法说明存储过程的优势!

存储过程的优势不是体现在,插入或者读取一条记录,比用ado.net,或者更高层次工具速度来的快,而是体现在复杂数据库操作上。

比如,OLTP业务,需要根据多个表相关记录的数据,更新多个表记录。
此时用存储过程,所有数据都在数据库引擎内部处理,
而任何其他方式说简单点,都是分多次读取数据到内存,计算后,再分多次更新到数据库,性能还用测试比较吗?

任何有一点点计算机技术的人都会很清楚,存储过程肯定是效率最高的!

如果业务逻辑不是存储过程语言无法完成的,而数据操作又是复杂,性能很重要,那么存储过程就是最佳选择。

性能不是关键,注重开发效率,代码要更容易维护,那么可以选择ORM,
或者其他高级语言。

存储过程局限,比如一个系统,有100个子操作,最终有1000种操作,每种将调用这100个子操作中的某几个来完成。全部用存储过程,代码维护成本是巨大的!

这时候,将这些逻辑放到ORM,甚至只是放到.NET/Java中,也将带来极大便利。


这个争论可以结束了。。
posted @ 2011-04-27 20:27  灿烂三国  阅读(399)  评论(5)    收藏  举报