Partilhar via


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.

Observação

Distribution Advisor está atualmente em versão de 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 up-toantes 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 Descrição
dbo.write_dist_recommendation Define as consultas que o DA analisará. 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 automático e gera recomendações.

Aqui está um exemplo de como podes executar o assistente.

2a. Executar o consultor na carga de trabalho anterior no DMV

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 a ferramenta de aconselhamento 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.
Distribuição_Atual Estratégia atual de distribuição de tabelas.
Distribuição_Recomendada 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.

Observação

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

Soluçã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

1a. 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.
1b. 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 a ferramenta de aconselhamento.

2. Erros durante a utilização do assistente

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.

Captura de tela da saída de um resultado T-SQL mostrando o 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:

Captura de tela da saída de um resultado T-SQL mostrando o Command_to_Invoke_Distribution_Advisor com um segundo conjunto de resultados contendo comandos T-SQL de alteração de tabela.

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

  • 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 precisar de informações que não estejam neste artigo, consulte a página de perguntas e respostas da Microsoft Q&A sobre o Azure Synapse, que é um local para fazer perguntas a outros utilizadores 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 preferir colocar as suas perguntas no Stack Overflow, também temos um Fórum do Azure Synapse Analytics no Stack Overflow.

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