"Selecionar contagem (id) da tabela" leva até 30 minutos para calcular no SQL Azure
Eu tenho um banco de dados no SQL Azure que não está demorando entre 15 e 30 minutos para fazer uma simples:
select count(id) from mytable
O banco de dados tem cerca de 3,3 GB e a contagem está retornando aproximadamente 2.000.000, mas eu tentei localmente e leva menos de 5 segundos!
Eu também executei um:
ALTER INDEX ALL ON mytable REBUILD
Em todas as tabelas no banco de dados.
Gostaria que alguém pudesse me apontar algumas coisas para tentar diagnosticar / corrigir isso.
(Vá para a ATUALIZAÇÃO 3 abaixo, pois agora acho que esse é o problema, mas ainda não o entendo).
ATUALIZAÇÃO 1: Parece demorar 99% do tempo em uma verificação de índice em cluster, como mostra a imagem abaixo. eu tenho
ATUALIZAÇÃO 2: E é assim que as mensagens estatísticas retornam como quando:
SET STATISTICS IO ON
SET STATISTICS TIME ON
select count(id) from TABLE
Estatisticas:
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 317037 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
(1 row(s) affected)
Table 'TABLE'. Scan count 1, logical reads 279492, physical reads 8220, read-ahead reads 256018, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
(1 row(s) affected)
SQL Server Execution Times:
CPU time = 297 ms, elapsed time = 438004 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
ATUALIZAÇÃO 3: OK - Eu tenho outra teoria agora. O portal do Azure está sugerindo cada vez que eu testo essa consulta simplesmente selecionada, que está maximizando minha porcentagem de DTU para quase 100%. Estou usando uma instância SQL do Azure padrão com nível de desempenho S1 (20 DTUs). É possível que essa consulta simples esteja sendo retardada pelo meu limite de DTU?