2012-08-13 65 views
1

我有一個程序可以將大約1GB的數據上傳到SQL Azure數據庫。 我使用SqlBulkCopy來上傳這些數據。我上傳了大約8,000,000個實體,平均每次有32,000個實體,最多一次約爲1,200,000個實體。Azure SqlExceptions

我收到了很多的SQLException的,錯誤代碼4815

起初我以爲這可能是因爲我上載了太多的時間和Azure的節流我的連接或採用DDoS防禦,但我不允許mhy程序只提交了每個SqlBulkCopy的25,000個實體,並且我得到了更多的錯誤!多很多!

+0

此篇完全相同的副本:[SQL-天青-更間歇超時(http://stackoverflow.com/questions/11147490/sql-azure-more-intermittent-timeouts)。另見這個鏈接:http://our.umbraco.org/forum/core/general/27179-SQL-Azure-connectivity-issues – paulsm4 2012-08-14 00:02:22

+0

@ paulsm4不同的例外。他使用ASP.net我的是一個WPF應用程序,他沒有上傳1GB的數據... 除了我已經做了他們的建議 - 重試提交,我仍然收到這些錯誤消息。 – 2012-08-14 01:51:19

+0

錯誤4815看起來像日誌寫入IO延遲異常。有關更多詳細信息,請參閱以下鏈接http://msdn.microsoft.com/en-us/library/windowsazure/ff394106.aspx – 2013-06-27 06:32:37

回答

1

我一直在使用BCP移動大量數據到SQL Azure的的都有不錯的效果。 SQL Azure遷移向導在後臺使用這種方法。本博客文章是有點過時,但其概念是健全的,當涉及到進口大量的數據: Brute Force Migration of Existing SQL Server Databases to SQL Azure

問題並沒有說明數據的來源,所以很明顯這不會爲你工作,如果你不從另一個數據庫導入。

+0

這不是我所做的嗎?我使用了SqlBulkCopy,它是數據庫BulkCopy的CLR包裝器,不是嗎? 但是,我從計算機上的文件上傳文件,因爲我有解析代碼和用戶界面,並且已經完成了所有工作,所以我可以對其進行更改,以創建本地數據庫(.mdf),然後可能將其上傳到Azure?或SQL Server的實例,然後做一個BCP? – 2012-08-14 07:36:11

+0

我的理解是,SqlBulkCopy利用其連接效率低得多。 (閱讀緩慢:))http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=112718我只使用過BCP,而不是SqlBulkCopy,所以有人可能會說速度比較是傳聞:) – 2012-08-14 12:48:12

+0

如果您正在解析大型文本文件並將內容放入數據庫,我想知道您是如何處理失敗的事務。你是否必須失敗整個文件上傳?也許更細化的方法可能會奏效。您可以將導入失敗的項目保存到「例外表」中進行手動分析。 – 2012-08-14 12:50:24

1

在我的情況,我得到了4815,當我在地裏的一個發送的數據比在表定義字段大小大...發送13個字符爲VARCHAR(11)。

+0

我遇到了這個問題。謝謝你爲我節省了很多時間! :-) – 2017-03-08 17:18:59