我的SQlserver 因为在共享的服务器上很多线程都要用(我放在一个廉洁的服务器...512mb内存)
以前我一直以为数据库并发控制 sqlserver内部就实现的很好了 但是现在有个问题我有个小程序(算是个蜘蛛) 是扫描网站 提取有用的数据 储存到数据库 并且 把扫描过的url一起存入数据库问题是 如果我使用1个线程扫描 或者 少数线程还好
如果使用30个线程 程序运行几秒钟 就出错了 错误内容就是数据库提供错误(provider error)另外 我如果把程序挪到我自己的电脑上(远程连接数据库,插入数据,但是扫描网站的是由我的电脑完成), 就没问题(我觉得是因为 每次数据库插入都是需要通过网络,这样一部分延迟花在了网络传输上,数据库插入就不会那么频繁 这样就不会出错)请问大家平时都是怎么处理这个问题的

解决方案 »

  1.   

    应该不是你说的这个原因哦。
    SQLSERVER最大连接数如果不做处理的情况下,100个以下都没有问题,
    可以尝试在连接字符串中启用连接池。
      

  2.   


    那个是读的连接吧.....我写的话一个线程可能写一次 但是读就很多了
    另外我用的EF....(内部实现不知道啥样的 )想问一下 怎么处理 让他最大连接数增加。
    另外:我觉得会不会和CPU和内存有关刚才查了查亚马逊服务器报告 现在cpu利用率100% 内存也是512用满了。但是现在我就用了2个线程 没什么问题 就是服务器卡了点。
    是不是50线程的时候 和 CPU和内存有关
      

  3.   

    哦,那这样,在控制台上观察一下sqlserver连接数的变化或者在性能计数器中查看下连接是否过多了,要么就是你的保存代码有问题,会引起锁定升级。