Aplicativo da Web do Azure / SQL do Azure - Latência

1

Eu tenho um aplicativo Web do Azure que executa aplicativos do MVC 5. O banco de dados para esses aplicativos é o banco de dados SQL do Azure.

Esta aplicação ainda está em seu começo, por isso praticamente não tem tráfego e muito poucos itens no banco de dados. Mesmo assim, muitas vezes a aplicação web demora para responder. Às vezes, uma solicitação que faz apenas uma única consulta do banco de dados leva de 4 a 5 segundos (talvez mais).

Quando uso os aplicativos, fica mais rápido; os pedidos acabam sendo inferiores a 100 ms. Mas então, por um motivo desconhecido, começa a ficar lento novamente. Não segue um padrão exato.

Eu defini "AlwaysOn = true" nos Web Apps, mas não vejo uma grande melhoria.

Existe algo que pode ser feito ou há algo que me falta?

Obrigado

    
por Mihai 08.04.2016 / 14:59

1 resposta

1

Se você ainda não fez isso, tente colocar seu DB e WebSite na mesma região. AlwaysOn é a melhor maneira de fazer, mas parece que o problema é mais sofisticado e deve haver mais solução de problemas. Como Sam sugeriu, o modo também é importante por causa de vários limites e afogamentos, mas se você disser que a carga está baixa, não deve ser o problema.

Eu proporia que você fizesse algumas soluções de SQL, por exemplo, (graças a Liam Cavanagh ) mostrará algumas das principais consultas que demoram mais tempo.

Você tentou um banco de dados local ou um banco de dados na VM, a propósito?

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;
    
por 11.04.2016 / 20:39

Tags