使用存储过程过多有什么弊端吗?什么情况下使用存储过程不好?

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:22:20
在什么样的情况下使用存储过程能收得比较好的效果,使用存储过程过多会为数据库带来怎样的问题,我公司老总特意不让我们使用存储过程,说怕将来建立的存储过场太多,哪位高手能解释一下具体什么情况下不适合使用存储过程,为什么?
老总说,我们的程序按照一定的规范写,数据库对SQL语句只需编译一次,之后这个SQL语句再访问数据库的时候,数据库会调用以前已经编译好的(这样存储过程岂不多余了,若每个SQL编译后都无条件的存在数据库中,数据库不也是有很大的负担?)。还有一个问题,系统在什么时候什么地方‘判断’出这个SQL已经访问过我数据库,我公司使用三层架构,是在中间层还是数据库?
要利用上面这个优化,其中一个要求是SQL语句必须使用传参数,不能拼语句,那么像这样 String strSql = "update DataTable1 set ID_Chr=:1, " + " Poster_Chr = :2, PostDate_Dat = sysdate" 是拼语句吗?这个问题在于,上面所提的比较究竟在什么地方,若在数据库则无疑不是拼语句,若在中间层则不一定,要看‘比较’是在程序编译时还是在运行时,我的意思是编译器可能在程序编译成DLL文件的时候就给特定的固定不变的SQL语句命一个别名,并在第一次以后就用这个别名来调用数据库中已编译过,因为我对这个优化内部的实现机制不明白所以胡乱作了一番猜测,我觉得这种方式性能最高,不知道是不是,哪位了解这一方面的高手能不吝赐教指点一下?

拼语句确实不好
不过滤下参数,整不好会被注入SQL的

最好埋参数

存储过程好像是 比较复杂时候用的吧

我只知道sql缓存, 如果一条语句执行过,下次再执行就非常快了.不过要求挺苛刻,空格,大小写啥的必须一摸一样