引起超時的原因及表解鎖的方法

2022-02-06 16:06:49 字數 748 閱讀 5640

[sql server]超時時間已到。在操作完成之前超時時間已過或伺服器未響應。

原因分析:

1.如果用到了事務處理

在事務開始begintransaction()與事務結束transaction.commit()中間用到了沒有啟動事務的過程,如其他查詢等,會提示此錯誤。另外一種情況就是沒有正確的使用事務導致表被鎖定,此時也會引起超時。

2.ado.net的使用引發的問題

connection未及時關閉也會引發超時的問題。另外就是command命令執行超時,此時根據需要可以修改command.commandtimeout的時間,預設時間為30秒。

3.web頁面執行超時,如上傳大批量的檔案

需要修改配置檔案:

表解鎖的方法:

select id from sysobjects where  name='tablename' --查詢表名為tablename的表的id

exec  sp_lock --執行該儲存過程得到所有鎖定的表的資訊,根據前一步中查到的id可找到spid資訊即程序id

kill spid --解鎖,例如kill 70 就是關閉程序id為70的鎖定表的程序

以上是表解鎖的方法,根本的解決方法還是得找出引起表被鎖定的原因。我遇到的情況是未正確使用事務引起的。

另外,在未解鎖的情況下可以使with (nolock)來執行sql,例如select username from user with (nolock) where userid=101 。

參考:

引起超時的原因及表解鎖的方法

sql server 超時時間已到。在操作完成之前超時時間已過或伺服器未響應。原因分析 1.如果用到了事務處理 在事務開始begintransaction 與事務結束transaction.commit 中間用到了沒有啟動事務的過程,如其他查詢等,會提示此錯誤。另外一種情況就是沒有正確的使用事務導致...

引起超時的原因及表解鎖的方法《轉》

原因分析 1.如果用到了事務處理 在事務開始begintransaction 與事務結束transaction.commit 中間用到了沒有啟動事務的過程,如其他查詢等,會提示此錯誤。另外一種情況就是沒有正確的使用事務導致表被鎖定,此時也會引起超時。2.ado.net的使用引發的問題 connect...

引起超時的原因及表解鎖的方法《轉》

原因分析 1.如果用到了事務處理 在事務開始begintransaction 與事務結束transaction.commit 中間用到了沒有啟動事務的過程,如其他查詢等,會提示此錯誤。另外一種情況就是沒有正確的使用事務導致表被鎖定,此時也會引起超時。2.ado.net的使用引發的問題 connect...