C#程序,使用的是4.0的框架,数据库是SQL SERVER2008。
一次向主表提交的数据大概是1万多到5万之间,子表中插入的数据量有点大,最少是14多万条,最大是57多万条,使用事物批量提交,当子表数据超过1千万级别时,就容易出现超时(具体报错是:“Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。”)还有就是事物出错(具体报错是:“此sqlTranscation已完成,他再也无法使用了。”)。
这时还好一点,只是偶尔处出现几次,但是当子表数据量达到1800万条以后,再向里边插数据基本就挂了,报之前的说的两个错误,但是如果此时向子表插入1万条左右的数据时又没有什么问题,但关键是程序要处理的数据最少是14万啊,另外子表好像有2个索引,这两个索引没法删掉,其他地方要用到。
我有过在数据库写触发器直接把100万条数据从表结构相同的临时表中复制到该子表,完全没有问题,当时是在数据库操作的,子表原数据也达到了3千万,后来把触发器用到程序里,还是出现了之前的问题,是触发器报的错。
为了解决这个问题,头发都揪掉了不少啊。 有没有大神能帮帮我整么解决超时的问题?万分感谢!!