Azure Web 应用/Azure SQL - 延迟

Azure Web 应用/Azure SQL - 延迟

我有一个运行 MVC 5 应用程序的 Azure Web App。此应用程序的数据库是 Azure SQL 数据库。

此应用程序仍处于起步阶段,因此几乎没有流量,数据库中的项目也很少。即便如此,Web 应用程序的响应速度也经常很慢。有时,仅进行一次数据库查询的请求需要 4-5 秒(甚至更多)。

随着我使用这些应用程序,它变得越来越快;请求最终花费的时间不到 100 毫秒。但后来,由于未知原因,它又开始变慢了。它没有遵循确切的模式。

我已经在 Web 应用程序上设置了“AlwaysOn = true”,但我没有看到太大的改进。

有什么可以做的吗?或者我遗漏了什么?

谢谢

答案1

如果您还没有这样做,请尝试将您的数据库和网站放在同一区域。AlwaysOn 是好方法,但看起来问题更复杂,应该进行更多故障排除。正如 Sam 所建议的,模式也很重要,因为有各种限制和节流,但如果您说负载很低,那应该不是问题。

我建议你去进行一些 SQL 故障排除,例如(感谢利亚姆·卡瓦纳) 查询将显示一些耗时最长的顶级查询。

顺便问一下,您是否尝试过本地数据库或虚拟机中的数据库?

SELECT TOP 10
qs.total_elapsed_time / qs.execution_count / 1000000.0 AS average_seconds,
qs.total_elapsed_time / 1000000.0 AS total_seconds,
qs.execution_count,
SUBSTRING (qt.text,qs.statement_start_offset/2,
(CASE WHEN qs.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
ELSE
qs.statement_end_offset
END
- qs.statement_start_offset)/2) AS individual_query,
o.name AS object_name,
DB_NAME(qt.dbid) AS database_name
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
LEFT OUTER JOIN sys.objects o ON qt.objectid = o.object_id
where qt.dbid = DB_ID()
ORDER BY average_seconds DESC;

相关内容