Supervisor de Distribuição no Azure Synapse SQL

Aplica-se a: Pools SQL dedicados do Azure Synapse Analytics (anteriormente SQL DW)

No Azure Synapse SQL, cada tabela é distribuída usando a estratégia escolhida pelo cliente (Round Robin, Hash Distributed, Replicated). A estratégia de distribuição escolhida pode afetar substancialmente o desempenho da consulta.

O recurso Distribution Advisor (DA) do Azure Synapse SQL analisa as consultas dos clientes e recomenda as melhores estratégias de distribuição para tabelas para melhorar o desempenho da consulta. As consultas a serem consideradas pelo orientador podem ser fornecidas pelo cliente ou retiradas de consultas históricas disponíveis no Detran.

Nota

O Distribution Advisor está atualmente em pré-visualização para o Azure Synapse Analytics. Os recursos de visualização destinam-se apenas a testes e não devem ser usados em instâncias de produção ou dados de produção. Como um recurso de visualização, o Distribution Advisor está sujeito a sofrer alterações no comportamento ou na funcionalidade. Guarde também uma cópia dos dados do teste, se os dados forem importantes. O Distribution Advisor não suporta tabelas distribuídas com várias colunas.

Pré-requisitos

  • Execute a instrução SELECT @@version T-SQL para garantir que seu pool SQL dedicado do Azure Synapse Analytics seja a versão 10.0.15669 ou superior. Se a sua versão for inferior, uma nova versão deverá chegar automaticamente aos pools SQL dedicados provisionados durante o ciclo de manutenção.

  • Certifique-se de que as estatísticas estão disponíveis e atualizadas antes de executar o consultor. Para obter mais detalhes, os artigos Gerenciar estatísticas de tabela, CRIAR ESTATÍSTICAS e ATUALIZAR ESTATÍSTICAS para obter mais detalhes sobre estatísticas.

  • Habilite o consultor de distribuição do Azure Synapse para a sessão atual com o comando SET RECOMMENDATIONS T-SQL.

Analise a carga de trabalho e gere recomendações de distribuição

O tutorial a seguir explica o exemplo de caso de uso do recurso Distribution Advisor para analisar consultas de clientes e recomendar as melhores estratégias de distribuição.

O Distribution Advisor analisa apenas as consultas executadas em tabelas de usuários.

1. Criar procedimentos armazenados do Distribution Advisor

Para executar o consultor facilmente, crie dois novos procedimentos armazenados no banco de dados. Execute o script CreateDistributionAdvisor_PublicPreview disponível para download no GitHub:

Comando Description
dbo.write_dist_recommendation Define as consultas nas quais o DA será analisado. Você pode fornecer consultas manualmente ou ler de até 100 consultas anteriores das cargas de trabalho reais no sys.dm_pdw_exec_requests.
dbo.read_dist_recommendation Executa o consultor e gera recomendações.

Aqui está um exemplo de como você pode executar o conselheiro.

2a. Executar o orientador sobre a carga de trabalho passada no Detran

Execute os seguintes comandos para ler até as últimas 100 consultas na carga de trabalho para recomendações de análise e distribuição:

EXEC dbo.write_dist_recommendation <Number of Queries max 100>, NULL
go
EXEC dbo.read_dist_recommendation;
go

Para ver quais consultas foram analisadas pelo DA, execute o script e2e_queries_used_for_recommendations.sql disponível para download no GitHub.

2b. Executar o consultor em consultas selecionadas

O primeiro parâmetro in dbo.write_dist_recommendation deve ser definido como 0, e o segundo parâmetro é uma lista separada por ponto-e-vírgula de até 100 consultas que o DA analisará. No exemplo abaixo, queremos ver a recomendação de distribuição para duas instruções separadas por ponto-e-vírgula select count (*) from t1; e select * from t1 join t2 on t1.a1 = t2.a1;.

EXEC dbo.write_dist_recommendation 0, 'select count (*) from t1; select * from t1 join t2 on t1.a1 = t2.a1;'
go
EXEC dbo.read_dist_recommendation;
go

3. Ver recomendações

O dbo.read_dist_recommendation procedimento armazenado do sistema retornará recomendações no seguinte formato quando a execução for concluída:

Nome da coluna Descrição
Table_name A tabela que DA analisou. Uma linha por tabela, independentemente da alteração na recomendação.
Current_Distribution Estratégia atual de distribuição de tabelas.
Recommended_Distribution Distribuição recomendada. Isso pode ser o mesmo que Current_Distribution se não houvesse nenhuma alteração recomendada.
Distribution_Change_Command Um comando CTAS T-SQL para implementar a recomendação.

4. Implementar o aconselhamento

  • Execute o comando CTAS fornecido pelo Distribution Advisor para criar novas tabelas com a estratégia de distribuição recomendada.
  • Modifique consultas para serem executadas em novas tabelas.
  • Execute consultas em tabelas antigas e novas para comparar melhorias de desempenho.

Nota

Para nos ajudar a melhorar o Consultor de Distribuição, preencha esta pesquisa rápida.

Resolução de Problemas

Esta seção contém cenários comuns de solução de problemas e erros comuns que você pode encontrar.

1. Estado obsoleto de uma série anterior do conselheiro

1 bis. Sintoma:

Você verá esta mensagem de erro ao executar o orientador:

Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1 ter. Mitigação:
  • Verifique se você está usando aspas simples '' para executar o consultor em consultas selecionadas.
  • Inicie uma nova sessão no SSMS e execute o orientador.

2. Erros durante a execução do consultor

2a. Sintoma:

O painel 'resultado' mostra CommandToInvokeAdvisorString abaixo, mas não mostra o RecommendationOutput abaixo.

Por exemplo, você vê apenas o conjunto de Command_to_Invoke_Distribution_Advisor resultados.

Screenshot of the output of a T-SQL result showing the Command_to_Invoke_Distribution_Advisor.

Mas não o segundo conjunto de resultados que contém os comandos T-SQL de alteração de tabela:

Screenshot of the output of a T-SQL result showing the Command_to_Invoke_Distribution_Advisor with a second resultset containing table change T-SQL commands.

2b. Mitigação:
  • Verifique a saída acima CommandToInvokeAdvisorString .

  • Remova as consultas que podem não ser mais válidas e que podem ter sido adicionadas aqui das consultas selecionadas manualmente ou do Detran editando WHERE a cláusula em: Queries Considered by DA.

3. Erro durante o pós-processamento da saída de recomendação

3a. Sintoma:

Você vê a seguinte mensagem de erro.

Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Mitigação:

Certifique-se de ter a versão mais atualizada do procedimento armazenado do GitHub:

Comentários do grupo de produtos Azure Synapse

Para nos ajudar a melhorar o Consultor de Distribuição, preencha esta pesquisa rápida.

Se você precisar de informações não fornecidas neste artigo, pesquise na página de perguntas e respostas da Microsoft para que o Azure Synapse seja um local para fazer perguntas a outros usuários e ao Grupo de Produtos do Azure Synapse Analytics.

Monitorizamos ativamente este fórum para nos certificarmos de que as suas perguntas são respondidas por outro utilizador ou um de nós. Se você preferir fazer suas perguntas sobre o estouro de pilha, também temos um Fórum de estouro de pilha do Azure Synapse Analytics.

Para solicitações de recursos, use a página Comentários do Azure Synapse Analytics . Adicionar os seus pedidos ou votar outros pedidos ajuda-nos a concentrarmo-nos nas funcionalidades mais procuradas.

Próximos passos