的設置超時更新記錄通過一個SqlDataReader(有時)
我已經配置帶回每一行中給定的表的簡單SqlDataReader的讀取。
我正在使用SQLDataReader,因爲我正在尋找我的內存佔用相對較低。
對於檢索的每一行,我正在對一些數據進行簡單的更改,並將其作爲我立即執行的更新的基礎。
通過這種方式,我可以將簡單的計算函數應用於表中的每條記錄。
它什麼時候工作?
這工作正常我的本地數據庫。它也適用於位於另一臺服務器上的測試數據庫。
什麼時候不起作用?
如果我恢復我們的實時數據庫的副本,該進程無法正常執行,遇到第一次嘗試執行更新時的超時。
有什麼不同?
LiveBackup和Test之間的唯一區別似乎是其中的記錄數。測試數據庫有4823個,LiveBackup有10182個記錄。
而且,如果我介紹的標準到從LiveBackup系統SqlDataReader的,使得其檢索的記錄數量有限(1000左右),它立即開始工作
理論
這很可能有一些鎖被引入,但我真的不知道在哪裏。
我明白,我可以簡單地將記錄分成1000個批次,但這仍然讓我不知道究竟是什麼導致了我的問題。
爲什麼當我的SQLDatareader尋址大量記錄時,更新(這是尋址單條記錄)時發生超時?