簡體   English   中英

性能Azure彈性池數據庫

[英]Performance Azure Elastic pool databases

我們正在遇到類似於Azure命中數據庫cpu限制中提到的類似問題。 我們還使用Azure Elastic池,並為每個客戶創建一個新數據庫。 我們首先使用EF6-code來處理SQL的東西。

使用Web前端,用戶可以創建客戶。 他們每周都會這樣做幾次,有時候(並不總是,但肯定是一周)數據庫只是部分創建,我們得到Microsoft.Azure.SqlDatabase.ElasticScale.ShardManagement錯誤。 當我們刪除此客戶端/數據庫並再次創建它工作正常。 當然這很煩人。 我們現在正在努力捕獲此錯誤,刪除數據庫並重新啟動代碼中的創建。 這有誰有類似的經驗,希望更好的解決方案?

創建數據庫也需要很長時間:3-5分鍾。 每個數據庫只有18個表。 我們可以加快速度嗎?

工作流程的下一步是解析用戶上傳的XML文件。 我們使用EF6填充模型並將其保存到數據庫中。 這真的很慢。 XML文件包含我們需要填寫幾個表(大約15個表)的員工數據。 例如,我們有一個包含4416名員工的9.7MB XML文件,“.save()”步驟大約需要12分鍾。 考慮到客戶每年大約有25個XML文件,並且用戶一次上傳5年,這種節省需要太長時間。

我們已經看過代碼並且考慮到EF6的界限,我們認為我們不能對它進行更優化。 我們現在正在查看Azure訂閱的配置,但文檔很恐慌,我們無法弄清楚要改進哪些內容以獲得更好的性能。

任何指導都非常感謝。

我在Microsoft Azure> Azure SQL數據庫論壇上交叉發布此問題: https//social.msdn.microsoft.com/Forums/en-US/b7c7ad0a-0be4-4b15-8ae6-494181ec60b1/how-to-increase- max-of-databases-allowed-without-increase-pricetier?forum = ssdsgetstarted答案是:

您無法將部分(僅限某些資源)擴展到另一層。 您無法僅擴展最大數據庫數。

這不是我希望的答案。

我有一個雲應用程序,它使用新的數據庫分片非常類似地創建新的客戶實例。 我發現創建這些Azure數據庫的代碼必須非常容錯。 這是我做的:

  1. 創建數據庫時,請使用至少5分鍾的超時超時。 返回需要很長時間。

  2. 等待更長時間,因為即使腳本運行並且執行返回到您的應用程序,數據庫仍然無法使用。 我有一個簡單的查詢,我每隔10秒對數據庫運行一次。 首先,查詢在運行時拋出異常; 我捕獲異常以防止錯誤冒泡。 一段時間后,查詢將成功運行,您知道數據庫已准備好接收請求。 如果Azure從未成功創建表,我會在50次嘗試之后停止以阻止無限循環。

現在,對於像這樣的常規程序流使用try / catches並一遍又一遍地命中資源通常是不好的做法,但是,這是我發現100%的時間可以解決這個問題的唯一方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM