我们遇到了Azure hits database cpu limits too easy中提到的类似问题。我们还在使用 Azure 弹性池,并正在为每个客户创建一个新数据库。我们使用 EF6-code-first 来处理 SQL 内容。
使用 Web 前端,用户可以创建客户。他们每周这样做几次,有时(不总是,但肯定是每周一次)数据库只是部分创建,我们会Microsoft.Azure.SqlDatabase.ElasticScale.ShardManagement
出错。当我们删除此客户端/数据库并再次创建时,它工作正常。当然,这很烦人。我们现在正在努力捕捉这个错误,删除数据库并重新开始在代码中创建。这有人有类似的经验,希望有更好的解决方案吗?
同样创建数据库需要很长时间:3-5 分钟。我们每个数据库只有 18 个表。我们可以加快速度吗?
工作流的下一步是解析用户上传的 XML 文件。我们使用 EF6 填充我们的模型并将其保存到数据库中。这真的很慢。XML 文件包含我们需要填充到几个表(大约 15 个表)中的员工数据。例如,我们有一个 9.7MB 的 XML 文件,其中包含 4416 名员工,“.save()”步骤大约需要 12 分钟。考虑到一个客户每年大约有 25 个 XML 文件,而用户一次上传 5 年,这种保存时间太长了。
我们已经查看了代码,并且在 EF6 的边界内,我们认为我们无法对其进行更多优化。我们现在正在查看我们的 Azure 订阅的配置,但文档很吓人,我们无法弄清楚要更改什么以获得更好的性能。
非常感谢任何指导。