SQL存储过程越多越好? 我把网站里几乎所有select都做成存储过程了,效率上应该只好不会坏吧? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我把网站里几乎所有select都做成存储过程了,效率上应该只好不会坏吧?******************传统的观念:存储过程执行一次以后被缓存,这样下次执行此存储过程就可以提高性能。但是从sql2000开始,后台代码中的sql语句也有类似的功能了。所以效率的提升不在于使用后台sql还是存储过程,关键在于你的select语句怎么写,数据表建了合适的索引没。当然使用存储过程比后台sql有一个明显的好处就是,修改存储过程以后不需要重新编译代码。 我觉得不是越多就越好,关键在于你的SQL语句和要实现的功能. 应用存储过程应该有选择的来做,如果太多调试也不方便,还有不方便移植,我的做法是通常需要在数据库服务器做很多工作的情况下才应用存储过程,普通select没必要,如果条件很多的或需要临时表操作的才用存储过程。。 但是如果你当前系统要改在ORACLE就不太好移植了,各有各的好处吧,把它们放到恰当的位置才最重要. 应用存储过程应该有选择的来做,如果太多调试也不方便,还有不方便移植,我的做法是通常需要在数据库服务器做很多工作的情况下才应用存储过程,普通select没必要,如果条件很多的或需要临时表操作的才用存储过程。。同意! 同意楼上的。不过如果要考虑数据库移植问题,你也别指望用纯后台sql就能搞定,没那么简单。常见的做法是对不同的数据库分别创建不同的数据存取层。 存储过程和触发器都是不可移植的,也就是说当你想更换数据库时,你将不得不重写这些存储过程和触发器。所以在java项目中不提倡用存储过程。 存储过程执行一次后被缓存,但正如micor(愿赌服输)所说的它是不可移植的,至于是不是使用存储要根据实际情况来确定。 只站在执行效率角度来考虑的话,楼主的做法是非常不错的,存储过程在执行方面比SQL快。 1. 理论上存储过程比SQL语句快.2. 存储过程安全.3. 太多难以维护.我使用存储过程的原则是.1. 复杂查询.2. 处理大量数据. 优点:(1)请求时传送数据量小。(2)主程序代码清晰。缺点:(1)数据库不易移植,如果从SQL Server改为Oracle,需要重写存储过程。(2)存储过程维护比较麻烦,需要记住一个一个函数是干什么的。 怎样JS脚本的单行调试 Ajax问题,求解释?感激不尽!!! datatable如何将一行值赋给另一个datatable 能否实现这样一个功能, 不弹出IE窗口打印。。。。 文件删除问题 请教高手一个不知道如何下手的问题? WebConfig配置文件读取问题,跪求协助啊 求虚拟键盘程序 关于IIS的配设置问题?? 请问在asp.net和jmail4.3下怎样实现邮件抄送和密送? 关于FileUpload控件的问题 菜鸟提问,高手解决
******************
传统的观念:存储过程执行一次以后被缓存,这样下次执行此存储过程就可以提高性能。
但是从sql2000开始,后台代码中的sql语句也有类似的功能了。
所以效率的提升不在于使用后台sql还是存储过程,关键在于你的select语句怎么写,数据表建了合适的索引没。
当然使用存储过程比后台sql有一个明显的好处就是,修改存储过程以后不需要重新编译代码。
同意!
不过如果要考虑数据库移植问题,你也别指望用纯后台sql就能搞定,没那么简单。常见的做法是对不同的数据库分别创建不同的数据存取层。
2. 存储过程安全.
3. 太多难以维护.
我使用存储过程的原则是.
1. 复杂查询.
2. 处理大量数据.
(1)请求时传送数据量小。
(2)主程序代码清晰。
缺点:
(1)数据库不易移植,如果从SQL Server改为Oracle,需要重写存储过程。
(2)存储过程维护比较麻烦,需要记住一个一个函数是干什么的。