SQL Server 錯(cuò)誤 ''80040e31'' 超時(shí)已過期
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
一種可能是數(shù)據(jù)庫文件在增加的時(shí)候超時(shí)了,而不是平常常以為的具體的SQL語句超時(shí)。把 FILEGROWTH 設(shè)置為一個(gè)更低的值,可能會(huì)恢復(fù)這個(gè)錯(cuò)誤。 FILEGROWTH 的設(shè)置就是在數(shù)據(jù)庫的 Enterprise Manager 中,對數(shù)據(jù)庫的屬性的如下窗口進(jìn)行設(shè)置: 一旦你的數(shù)據(jù)庫文件大了后,上述超時(shí)就可能出現(xiàn)。這時(shí)候不要簡單地以為服務(wù)器壓力太大了。也許就是你的一個(gè)設(shè)置導(dǎo)致了超時(shí)。 默認(rèn)SQL Server 在數(shù)據(jù)庫文件滿了后,是自動(dòng)增加原數(shù)據(jù)庫文件的10%大小,用來繼續(xù)使用,解決方法就是把上述的文件增長這里設(shè)置為一個(gè)更低的百分比或者直接指定增加多少兆字節(jié)。如果是默認(rèn)的10%的話,可能導(dǎo)致的問題在于數(shù)據(jù)庫大小一次性需要增長數(shù)G。 另外:不僅是數(shù)據(jù)文件滿會(huì)導(dǎo)致此問題,日志文件滿也一樣。 某一條數(shù)據(jù)更新語句在數(shù)據(jù)庫或日志文件即將滿的時(shí)候執(zhí)行,數(shù)據(jù)庫增長的IO操作會(huì)導(dǎo)致延時(shí),此延時(shí)會(huì)阻塞其他數(shù)據(jù)庫操作,連鎖反應(yīng),形成blocking。 其實(shí)此時(shí)找出一條正在阻塞的更新語句,在查詢分析器中執(zhí)行,此時(shí)是沒有超市時(shí)間的。忍過幾分鐘,當(dāng)這條語句執(zhí)行完后,數(shù)據(jù)文件就會(huì)增長完成,所有的blocking也就解開了。 微軟的 文章招錄:(由機(jī)器人翻譯) 替代方法 要變通解決此問題, 請使用下列方法之一: 手動(dòng)展開數(shù)據(jù)庫。以手動(dòng), 展開數(shù)據(jù)庫使用 ALTERDATABASE 語句或 SQLServer 企業(yè)管理器。 增大的應(yīng)用程序,以便有時(shí)間來展開數(shù)據(jù)庫服務(wù)器請求 DML 客戶查詢超時(shí)值。DML 提示數(shù)據(jù)庫以展開。 例如, 如果使用 SQL 查詢分析器, 默認(rèn)查詢超時(shí)值為 0 (無限)。如果正在使用默認(rèn)值, 您不會(huì)遇到此問題。如果不使用默認(rèn)值,增大查詢超時(shí)值。 可用于其他應(yīng)用程序(無論它們是否基于Web),您在應(yīng)用程序進(jìn)行更改。 例如, 如果您使用 ADO, 可更改 CommandTimeout 屬性 連接 或 Command 對象。
確定服務(wù)器上數(shù)據(jù)庫擴(kuò)展多長時(shí)間。確定此, SQL 查詢分析器中運(yùn)行 ALTERDATABASE 語句,然后查看狀態(tài)欄。在您確定此, 設(shè)置客戶超時(shí)值為東西大于此值。 不要更改客戶超時(shí)值。 繼續(xù)執(zhí)行測試自動(dòng)擴(kuò)展并查看多少擴(kuò)展完成小于客戶超值中。 自動(dòng)增長 選項(xiàng)設(shè)置為此新(小)值。 該文章在 2012/3/2 23:39:13 編輯過
|
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |