Azure SQL数据库v12的奇怪问题:数据库在第一次插入或删除执行时总是很慢,但不是V11

时间:2015-12-15 12:00:20

标签: azure azure-sql-database azure-web-sites

我们正在使用MVC4,ASP.NET 4.5,Entity Framework 6。

当我们使用Azure SQL Database v11时,通过EF进行初始记录插入和删除,工作正常并且很快。但是现在,在v12上,我注意到初始插入和删除可能非常慢,特别是如果我们在插入时选择新值。如果我们插入具有相同值的新记录,则响应很快。我所说的延迟可能在S1上约为30,在S2上为15秒,在S3上为7秒。

正如我所说,我们从未在v11上遇到过这种情况。

感激地收到任何想法。

EDIT1

刚做了一些诊断工具,我现在使用的视图现在第一次运行速度非常慢:

db.ExecuteStoreCommand("DELETE FROM Vw_Widget where Id={0}", ID);

我是否需要为Azure SQL数据库v12重新调整视图?

EDIT2

再看一下Code,我发现我已经在View中添加了一个删除触发器,所以基本上我已经设置了一个视图,所以我可以在某些情况下使用这个触发器代码。我现在正试图取出触发器代码并从应用程序运行它,它确实运行得更快。也许这段代码应该是一个存储过程。

2 个答案:

答案 0 :(得分:2)

当然,您需要对视图进行一些诊断以检查查询的性能,您可能需要调整查询。你说的时间措施是如此之高,以执行任何操作。请确保在目标表上执行插入或删除操作,而不是视图。最佳做法是不使用视图来插入或删除。

您只能在select语句中使用视图。

答案 1 :(得分:1)

将sql database v2迁移到v12时遇到了类似的问题。实际上我正在使用商业模式,我试图迁移到S0。 DB的性能不佳。一段时间后,我发现dtu模型有特定的视图来监控你需要什么类型的provison模型。如果是第一次出现问题,可能是您的应用程序正在进行大量查询以在内存中加载数据,这些可能会影响CRUD语句的性能。

SELECT end_time      ,(SELECT Max(v)          FROM(VALUES(avg_cpu_percent))                      ,(avg_data_io_percent)                      ,(avg_log_write_percent)        )AS值(v))AS [avg_DTU_percent] FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

有关这方面的更多信息,请访问以下页面:

https://azure.microsoft.com/en-us/documentation/articles/sql-database-upgrade-server-portal/