在cnbeta看到bbsmax 2.0公测的消息,看了下介绍,里边提到“在数据库上,我们的开发蓝本为sql server版,最大限度地对数据库结构优化,每一个索引和聚焦索引都精心设计确保查询时的高速和低占用,且100%的使用了存储过程,整个bbs总共有超过300个存储过程”我怀疑真的有必要使用这么多存储过程吗?绝大部分语句应该都是只执行一次的吧?我认为多步操作用存储过程比较合适,数据库的性能最主要的还是看表结构和合理的索引吧?而且全部用存储过程以后要做改动也是相当麻烦。不知道大家怎么看?

解决方案 »

  1.   

    同意楼主的意见,当查询语句过于简单时,有的时候用存储过程反而没有view 或直接用sql语句效率高
      

  2.   

    使用存储过程增加可维护性,sql语句写在服务器端可以集中维护,写在代码里不容易维护
    存储过程还可以减少网络流量,如果写在代码里,会增加网络流量
      

  3.   

    用存储过程更容易维护吗?我倒不觉得啊,如果涉及到修改,比如读取再增加一个字段,程序代码要修改,还要跑到查询分析器里改存储过程,如果还有其他地方相关联,又是来回切换,有点累啊。。就算是把程序做得很完美了可以直接发布了,那以后还要添加一些新功能,系统优化什么的需要整体浏览代码,大量的存储过程也会带来干扰,因为不能直接看到sql语句。