论坛上很多人说用sp比用动态的sql语句更加安全和有效
但是我不明白的是sp是在服务器端运行的,而一般sql语句是在客户端生成的
两者有什么优缺点?????是在客户端用调用sp来代替动态的sql语句吗?

解决方案 »

  1.   

    sp在服务器上运祥一次,就进驻到内存中了,以后在运行就不用编译了,效率上比Sql来得快
    还有Sql在客户断很容易被人拦截,或者专你Sql语句上的空子,执行些其他的语句,而SP用的是参数传递,不会有这样的漏洞
    本人建议,复杂的数据处理用SP效率高,如果简单的Sql,还是Sql来得快,而且方便
    适当搭配才会好
      

  2.   

    你好
    比如一个程序要都用sp来代替sql语句,
    是不是我在客户端只要调用sp,
    但是这样的话要在服务器端编写很多的sp
    是不是在实际的使用中不方便??
    真正的项目中使用sp是怎样作的,即是怎样合理使用sp和sql的
      

  3.   

    需要动态设置sql语句的,我才使用sql,其他的尽量用sp
      

  4.   

    我的问题是
    如果都用sp的话,小的程序没有问题。但是大的程序编写sp的量就比较大
    sp可以进行很好的封装,保证数据的安全我想问问看如果遇到一个大的项目,怎样合理的使用sp和sql语句,以尽量的做到数据的封装和减少工作量
      

  5.   

    我个人的观点:
    1、SP确实比SQL性能高,且安全。尤其是在先从数据库中读取数据,经过一定的计算,然后存回数据库的情况下,性能的优越性实在是太明显了。
    2、SP是在数据库管理系统中运行的,在性能优化方面通常比我们写的软件做得好。有好的且容易用的为何不用呢?
    3、如果仅仅是往数据库里添加新数据,我倒建议你直接使用SQL语句。因为简单明了,比较适合软件工程化管理。当然,使用SP并非没有代价。
    如果你将运行在MS SQL上的SP迁移到ORACLE上,估计90%的SP得重写。