我在Azure SQL上有两个数据库,它们由.net EF应用程序使用。对一个数据库的查询超时,另一个数据库的查询立即完成。
我进去并将超时延长到180秒,然后
var watch = System.Diagnostics.Stopwatch.StartNew();
result = db.Objects.Select(o => λ);
watch.Stop();
System.Diagnostics.Debug.WriteLine(watch.ElapsedMilliseconds);
数据库1在66秒后响应。 数据库2在0.2秒后响应。
我去查询性能洞察,找到了查询并通过VS的SQL Server对象资源管理器手动执行。
数据库1在1秒内响应。
数据库2在1秒内响应。
对数据库1的查询洞察力向我展示了以下内容:
Date: Time CPU% Total time Executions count
4/11: 11 AM - 12 PM 5.8 00:08:30.340 17
4/11: 12 PM - 01 PM 8.35 00:17:55.890 12
所以我知道它在过去一小时内变得越来越糟。考虑到两个数据库属于同一服务器和同一定价层,我如何影响/调试呢?
2016-04-13:故事继续
在近20个数据库中,只有一个被注意到。从那时起,效果逐渐消退,但我会留意。
查询地址对象的导航属性,并且仅当联结表具有其他列时才会观察到减速(在包含除两个外键之外的有用数据的表上)。
答案 0 :(得分:0)
你在哪个地区?也许您可以请求Azure支持人员查看它?
与此同时,我们提出了一个排除故障的建议:创建2个新数据库,并以与使用前2个数据库相同的方式使用它们。
新款的性能是否相同?或者你看到有什么不同吗?