我有一个运行MVC 5应用程序的Azure Web应用程序。 此应用程序的数据库是Azure SQL数据库。
这个应用程序还处于起步阶段,因此它几乎没有stream量,数据库中的项目也很less。 即使如此,Web应用程序响应速度也很慢。 有时候,只有一个数据库查询的请求需要4-5秒(也许更多)。
当我使用应用程序时,速度会变快。 这些要求最终会在100毫秒以下。 但是,由于不明原因,它又开始变慢了。 它并不遵循确切的模式。
我已经在Web Apps上设置了“AlwaysOn = true”,但是我看不出有什么大的改进。
有什么可以做的,还是有什么我失踪?
谢谢
如果您还没有,请尝试将您的数据库和网站放在同一个区域。 AlwaysOn是一个很好的方法,但看起来问题更复杂,应该有更多的疑难解答。 正如Sam所build议的那样,由于各种限制和限制,模式也很重要,但是如果你说负载很低,那不应该是问题。
我会build议你去解决一些SQL问题,例如(感谢Liam Cavanagh )查询会显示一些耗时最长的顶级查询。
顺便说一下,您是否尝试过使用虚拟机中的本地数据库或数据库?
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;