为什么网上说plsql存储过程一定比c语言、java语言写的存储过程的执行速度快而且执行效率要高呢?我个人感觉不一定啊,因为,那些操作运算中、oracle数据库内存与java虚拟机以及c手动分配的内存比起来,应该不存在一定的谁快谁慢的道理吧!

解决方案 »

  1.   

    1,如果单纯的从运算来讲,而不涉及到从数据文件取数据的话,在存储过程里面进行+-*/等运算,比起来c语言来做这些操作的话,应该是c语言快,java次之,存储过程最慢。2,但是如果是plsql的存储过程跟c语言写的存储过程以及java写的存储过程来比的话,一定是plsql>c>java,因为只要是存储过程一定被提交到SGA里面去解析的吧,plsql是直接操作SGA里面的内存的,而c存储过程以及java存储过程还需要通过oracle的专门对c语言以及java语言的sql解析器解析成标准sql存储过程之后再提交到SGA内存块去解析的;这样算起来,c存储过程以及java存储过程就多了一个步骤,所以就慢,而对于c存储过程以及java存储过程来说,当然是c>java啦。说的有点乱,不对的地方,大家指点指点啊!
      

  2.   

    plsql写的存储过程就是oracle系统内总自带的语言,对oracle来说已经编译好了,不需要花时间去编译;
    而c,java写的存储过程在运行时不还需要编译为oracle可识别的代码,这无疑是需要花费一定的时间,所以会慢一些;