在我的ASHX页面内,我收到JSON 字符串解析后没有用存储过程,而是直接用拼成SQL 语句然后插入到数据库,没有用到存储过程。总感觉用了存储过程要走好多路,感觉效率要低些。请问我这个做法对吗 ?PS,我的数据量比较大,收到的数据直接解析后插入到数据库,所以对效率有一定要求。

解决方案 »

  1.   

    数据量大的话,你用sql插入和使用存储过程插入,没有多大区别。如果插入时间不是很久的话,两种方式都可行,但是时间很久的话,就要考虑分批插入了。
      

  2.   

    如果单单只是插入数据,更新或是删除数据,可以优先使用sql语句;
    如果你的数据业务逻辑处理非常多或是大的话,建议使用store procedure.Insus.NET的做法,即然都使用ms sql数据库了,当然是使用store procedure
      

  3.   


    没有业务逻辑,收到JSON数据解析后直接插入
      

  4.   

    统一用 store procedure 吧,这样清晰,以后也好维护
      

  5.   

    我是按你的标题来回答的:SQL语句,书写方便,开发效率高,修改容易,但速度慢,适合业务较单一的情况。存储过程,运行速度快,能处理复杂业务,但修改起来有点难,特别是没有服务器远程控制权限的程序员,使用SQL命令来修改存储过程。
      

  6.   

    存储过程的效率是最高的,SQL其次,但都得在正确使用的情况下,就是要用参数传递字段值,而不要把值拼接在SQL中。
    存储过程快的原因是SQL已经写在数据库中了,只需要发送过程过程名,这肯定比SQL要短很多。
      

  7.   

    多年以前,我做过几十个大型百货商场和大型超市,那时候使用SQL Server。后来也做过一些不小的项目,其中一个稍微有点规模的项目有几千万用户(现在已经上亿用户了)有几百万活跃用户,也是使用SQL Server。但是我的习惯,不使用存储过程。偶尔使用触发器。
      

  8.   

    搜索一下StopWatch 可以知道运行时间http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy%28v=vs.90%29.aspx
    批量添加,使用SqlBulkCopy更快
    如果看不到微软的例子,自己搜搜其他的~