Sqlite
SQLite 連接字元串中的“預設超時”值用於什麼?
我查看了 SQLite 文件,但找不到任何關於“預設超時”值的明確資訊。
查看其他網站,似乎是指某種“連接超時”,而其他網站則表明它更像是“命令超時”
一些快速測試似乎並沒有表明它與命令有任何關係。
任何人都可以確認/參考連接字元串中該值的用途嗎?
編輯這是使用官方 SQLite .NET 庫
我通過查看原始碼發現了這一點:命令的超時值被初始化
DefaultTimeout
並傳遞給內部SQLite3.Prepare函式。這用於控制自動重試因 Locked 或 Busy 錯誤而失敗的語句的循環。當超時過期(由 衡量
Environment.TickCount
)時,無論最新的錯誤程式碼是什麼,都會引發異常。否則,它會隨機休眠一段時間(1 到 150 毫秒之間)並再次嘗試。