2013-10-31 110 views
4

我們有一些託管在Windows Azure中的雲服務以及一些Azure SQL數據庫。在晚上(在4:00 - 6:00 utc期間)有一些Jobs將數據導入數據庫。幾個星期以來,所有的作業都失敗,超時過期,數據庫異常。如果我在模擬器中的本地機器上稍後(在7:00 - 9:00 utc期間)運行作業,則所有作業在同一數據庫上都沒有任何問題。SQL Azure:超時已過期

在mport時間,我們的網站在數據庫服務器上沒有太多流量。管理門戶的監控顯示,沒有多少打開的連接,沒有節流連接,也沒有連接錯誤。在我的本地跑步中有更多的流量。

sys.event_log不包含任何錯誤或其他可能的問題。

是否有任何日誌或其他選項可以獲取有關爲什麼喬布斯在晚上失敗的更多信息?

更新 看來,該SQL Azure的服務器忽略該命令超時屬性。作業從UTC開始於4:30,並在4:37停止超時異常。但是,獲取超時的查詢的命令超時時間爲1200(20分鐘)。在啓動命令之前,有一些來自ftp-server,文件解析和其他SQL查詢的下載。

+0

我真的很想看看您是否可以將服務器移動到另一個團隊或地區,該文檔指出,您永遠無法確定其他人在該數據庫服務器上可能最終會限制您的操作。你有沒有找到任何解決方案,你可能想分享? – Archlight

+0

不,我沒有找到任何解決方案。這些問題目前不會發生,但我沒有做任何相關的事情。 –

回答

0

需要注意的是,SQL Azure不是MS SQL的完整版本,並且有一些限制。最顯着的限制是它的基礎設施。您的SQL Azure數據庫將託管在與數百個其他用戶共享資源的小型實例服務器上。雖然在機器上有合理的使用策略,但服務器需要時間才能啓動。

我的建議是有一些方法來確定作業是否實際啓動或者連接池是否超時開始工作。 I.E.創建一個插入的工作表來說出它的開始,並將其作爲工作中的第一個動作。

或者,您可以考慮遷移到Azure中的VM安裝程序。這是您擁有小型或中型實例虛擬機並且運行MS SQL Server的完整版本的位置。這樣,您就可以正確地在服務器上運行作業,並更適當地控制連接池。