我刚才比较了一下Log,上一表一批Insert语句,我这里笔记本上用了不到半秒钟,客户那里Server上用了2秒多。这个表的一批Insert语句,我这里笔记本上用了2秒钟,客户那里Server上用了30秒没完成,超时了。那我现在有两个问题:
1.这个时间的差异明显是不正常的,都哪些因素会导致这个呢?
2.我已经改成-1了,为什么还有这个30秒的超时呢?是哪里限制这个的呢?这个和防火墙、杀毒软件之类的有关系吗?

解决方案 »

  1.   

    如果你能连接到数据库并且执行查询,就和防火墙,杀毒软件没有关系。最大的问题就是在你的这个客户那里。如果每次都在相同位置出错的话,那么可能是主键或外键冲突之类,检查一下表中的记录和要插入的记录有什么冲突的。如果每次出错的位置是不固定的,那么很可能是锁冲突。核实一下你的那个用户没有其他程序在同一个表上做修改(update, delete, insert, create index等)的操作,如果有的话,你的插入操作就可能失败。如果可以的话,执行你的脚步前将数据库设置到单用户状态,确保没有其他用户能访问这个数据库。
    你的脚本插入多少条记录?
    如果可能的话,给你的客户发个脚本,让他把他们那个表的数据倒出来,仔细检查一下。
    再,sp_configure 仔细看看配置,客户端是否有超时设置??
      

  2.   

    通过在程序里把CommandTimeout从默认的30改为100,30秒这个限制已经过去了。那为什么这么慢呢?