我正在使用MSSQL Server 2008.我必須與幾個數據庫一起工作。當插入或更新記錄時,系統給出錯誤「事務超時」。但它幾分鐘後就可以工作。
有很少有用戶使用差異窗口應用程序操縱數據庫中的數據。
我想知道, 這個問題和多個數據庫的使用有什麼關係嗎? 這種查詢類型(在查詢中鏈接多個數據庫)是否會影響Timeout?MSSQL超時錯誤
2
A
回答
1
高度依賴於超時的原因。當資源被一個應用程序鎖定並且第二個應用程序等待時間過長時,通常會導致這種情況。即使在單一實例中,多個數據庫也使用Distibuted Transaction Coordinator。
數據庫引擎的單個實例中跨越兩個或更多數據庫的事務實際上是分佈式事務。 實例內部管理分佈式事務;給用戶, 它作爲本地交易運行。 http://technet.microsoft.com/en-us/library/jj856598(v=sql.110).aspx
而且DTC比在同一個數據庫的範圍工作慢得多,所以它會導致數據被鎖定爲更廣泛的時間表,並可能導致超時。
1
如果您使用的是SqlConnection
,SqlCommand
和Transaction
您可能需要檢查並設置每個這些超時屬性以正確管理您的應用程序行爲。
爲IsolationLevel
和TimeOut
見TransactionOptions(第一個這倆是Required
)
見SqlCommand.CommandTimeout如果你使用的命令。
使用交易可能是
TimeSpan timeout = TimeSpan.FromSeconds(300); // 5 minutes
using(TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, timeout))
{
// Code ...
}
請記住,很多併發事務處理可能會影響SQL Server的效率的好方法。也許你需要同一臺服務器的不同實例才能正確使用它,但缺點是每個實例都有同步。
相關問題
- 1. 用的NodeJS MSSQL連接超時錯誤
- 2. 錯誤'超時(水豚::超時錯誤)'
- 3. PHP mssql錯誤
- 4. Adminer mssql錯誤
- 5. Laravel:設置MSSQL超時
- 6. 使用MSSql時運行時錯誤'91'
- 7. 超過cfhttp超時錯誤
- 8. 錯誤而在MSSQL
- 9. PHP PDO mssql錯誤
- 10. MSSQL語法錯誤
- 11. RabbitMQ錯誤超時
- 12. System.Net.WebRequest - 超時錯誤
- 13. Selenium超時錯誤
- 14. SQL超時錯誤
- 15. WCF:DuplexChannelFactory超時錯誤
- 16. MySQL超時錯誤
- 17. WebClient超時錯誤
- 18. WCF超時錯誤
- 19. SQl錯誤,超時
- 20. NSUrlRequest超時錯誤
- 21. android超時錯誤
- 22. requirejs超時錯誤
- 23. WCF:超時錯誤
- 24. Redis超時錯誤
- 25. ColdFusion超時錯誤
- 26. URLError:urlopen錯誤超時
- 27. httppost超時錯誤
- 28. PFFacebookUtil超時錯誤
- 29. eBay超時錯誤
- 30. libusb_get_string_descriptor_ascii()超時錯誤?
你是直接使用它還是通過某種客戶端應用程序? –
使用客戶端應用程序。有幾個客戶端應用程序。 – tishantha
C#一個? Java? –