一次性执行4W条update,在本机上执行8分钟,在服务器上报错:没有足够的系统内存运行。。
这个如何解决?

解决方案 »

  1.   

    4w就内存不足了。。好像pc都不会吧~是服务器吗?
      

  2.   

    服务器是多少位的啊?你看一下服务器属性-》内存中
    AWE内存分配选项是否开启,如果没开启的话开启它,不过要重启服务
    如果不想重启服务的话,update的时候就一次少更新点,一批一批的更新吧
      

  3.   

    SELECT  bpool_commit_target [内存目标的页数] ,
            bpool_committed [缓冲区高速缓存中当前提交的页数]
    FROM    sys.dm_os_sys_info 
    看看结果
      

  4.   

    我的执行8分钟的电脑 SQL服务器内存3066M 没有打开AWE内存分配选项
    137738 ,10811
    服务器(运行了其他程序,不能重启服务)
    128000,128000
    服务器内存4087M 没有打开AWE内存分配选项
      

  5.   


      sql += "update [Nop_ProductVariant] set SKU='c'+'" + first + "'+'" + second + "'+RIGHT('00000'+CAST(ProductID AS VARCHAR),6)"
                      + " where [ProductVariantId]=" + productVariantId + ";";我是把4W条sql拼接到一起
    传到一个方法里面更新的
    ProductVariantId是主键
      

  6.   

    运行了别的服务都被占掉了内存,不足是很正常的拉。另外你7楼说的,明显是在挑战服务器的极限。改成参数化和存储过程实现吧。纯sql执行一般不会出现问题,但是你这样执行,缓冲区一下子都给你代码给占光了。看清楚哦,是代码不是数据。