Partilhar via


Recomendações para a otimização do desempenho de dados

Aplica-se a esta Power Platform recomendação de lista de verificação de eficiência de desempenho bem arquitetada:

PE:08 Otimizar o desempenho de dados. Otimize os armazenamentos de dados para seu uso pretendido e real na carga de trabalho.

Este guia descreve as recomendações para otimizar o desempenho de dados. A otimização do desempenho dos dados consiste em refinar a eficiência com que a carga de trabalho processa e armazena os dados. Todas as operações, transações ou cálculos de cargas de trabalho, normalmente, dependem da obtenção, processamento e armazenamento rápidos e precisos de dados. Quando o desempenho dos dados é otimizado, a carga de trabalho é executada sem problemas. O desempenho de dados comprometido cria um efeito dominó de baixa eficiência de desempenho. A falha na otimização do desempenho dos dados resulta em atrasos de resposta, latência aumentada e escalabilidade reduzida. Compromete a eficiência de toda a carga de trabalho.

Definições

Termo Definição
Arquivo de dados Um recurso que armazena dados, tais como uma base de dados, arquivo de objetos ou partilha de ficheiros.
Index Uma estrutura de banco de dados que fornece acesso rápido aos itens.
Processamento analítico online (OLAP) Uma tecnologia que organiza grandes bancos de dados de negócios, suporta análises complexas e executa consultas analíticas complexas sem afetar negativamente os sistemas transacionais.
Processamento de transações online (OLTP) Uma tecnologia que regista as interações de negócio tal como ocorrem nas operações diárias de uma organização.
Criação de partições O processo de divisão física de dados em armazenamentos de dados separados.
Afinação de consultas Um processo que otimiza a velocidade de uma consulta de banco de dados.

Principais estratégias de design

Para otimizar o uso de dados, certifique-se de que os armazenamentos de dados são otimizados para seu uso pretendido e para seu uso real em uma carga de trabalho. A utilização de dados otimizada pode melhorar o desempenho das consultas, reduzir o consumo de recursos e melhorar a eficiência global do sistema. Considere as seguintes estratégias:

  • Dados de perfil. Compreenda os seus dados e certifique-se de que o seu modelo de dados é adequado para a sua carga de trabalho. Considere fatores como normalização de dados e técnicas de particionamento. Para uma obtenção de dados eficiente, certifique-se de que seleciona os tipos de dados apropriados e define relações entre tabelas.

  • Otimizar o desempenho de consultas. Analise e otimize consultas que são executadas na carga de trabalho. Utilize técnicas como a otimização de consultas e colocação em cache. Utilize vistas do lado do servidor para pré-filtrar dados. Para identificar gargalos, use ferramentas de monitoramento de desempenho e faça as melhorias necessárias.

  • Monitorize e ajuste regularmente o sistema. Monitorize continuamente o desempenho da sua carga de trabalho e itere a configuração do armazenamento de dados e otimizações de consultas. Com base nas melhores práticas de ajuste de desempenho, analise métricas do sistema, identifique áreas de melhoria e implemente alterações. À medida que os dados aumentam, poderá ter de atualizar as suas consultas para manter o desempenho.

Dados de perfil

O perfilamento de dados envolve examinar os dados de uma origem e recolher informações sobre eles. O objetivo é compreender a qualidade, a estrutura e as características dos dados da carga de trabalho. Este processo permite a identificação de problemas, tais como valores em falta, duplicados, formatos inconsistentes e outras anomalias.

Para uma análise eficaz do perfil de dados, considere as seguintes estratégias:

  • Compreender a estrutura de dados. Examine a estrutura dos seus dados, incluindo tabelas, colunas e relações. Determine os tipos de dados, comprimentos e restrições que são aplicados a cada coluna. A avaliação da estrutura de dados ajuda-o a compreender como os dados estão organizados e como se relacionam com outros elementos de dados.

  • Analisar o volume de dados. Avalie o volume dos seus dados para compreender o tamanho global e os padrões de crescimento. Determine o número de registros ou documentos e o tamanho de tabelas ou coleções individuais. Essas informações ajudam a estimar os requisitos de armazenamento e identificar problemas de escalabilidade.

  • Identificar relações de dados. Explore as relações entre os elementos de dados. Compreenda como os dados estão ligados, para que possa determinar como as alterações numa tabela ou documento poderão afetar os dados relacionados.

  • Avalie a qualidade dos dados. Avalie a qualidade dos dados examinando fatores como integridade, precisão, consistência e exclusividade. Identifique anomalias de dados, valores em falta ou registos duplicados que possam afetar a integridade dos dados e o desempenho da consulta. Este passo ajuda-o a identificar áreas para a limpeza e o melhoramento de dados.

  • Capturar a distribuição de dados. Analise a distribuição de valores dentro de cada coluna para determinar padrões de dados. Identifique valores frequentes e raros, valores atípicos e distorções de dados. Para otimizar o desempenho da consulta, analise se chaves alternativas seriam apropriadas para fornecer um melhor desempenho.

Monitorizar o desempenho de dados

O monitoramento do desempenho de dados é a prática de rastrear consistentemente a eficiência dos armazenamentos de dados. Envolve a recolha e a análise de métricas de desempenho específicas de operações de dados, utilizando ferramentas adaptadas para soluções de monitorização ao nível do sistema, específicas da base de dados ou de terceiros. A monitorização eficaz do desempenho de dados permite-lhe identificar e mitigar potenciais estrangulamentos, assegurando que os processos e as tarefas relacionados com dados são eficientes.

Para monitorizar o desempenho dos dados, considere as seguintes estratégias:

  • Recolher métricas específicas de dados. Reúna métricas-chave que estão diretamente relacionadas com o desempenho dos dados. Estas métricas incluem tempos de resposta de consulta e débito de dados.

  • Configure alertas dedados. Configure alertas especificamente para métricas de dados. Utilize limiares ou anomalias predefinidos nestas métricas para acionar alertas. Os alertas permitem-lhe que receba notificações quando as métricas de desempenho excederem intervalos aceitáveis ou mostrarem comportamento anormal, por exemplo, se uma consulta de banco de dados demorar mais do que o esperado ou se o débito de dados diminuir significativamente. Você pode configurar esses alertas usando ferramentas de monitoramento especializadas ou scripts personalizados.

  • Diagnosticar problemas de desempenho de dados. Reveja regularmente as métricas de dados recolhidas para identificar potenciais estrangulamentos de desempenho ou degradação nas operações de dados. Ferramentas de visualização ou dashboards podem ser inestimáveis neste processo, ajudando a destacar tendências, estrangulamentos e valores atípicos no desempenho dos dados. Uma vez identificados, investigue as causas desses problemas e planeje as etapas de correção apropriadas.

Criar partições de dados

O particionamento envolve a divisão de grandes conjuntos de dados ou cargas de trabalho de alto volume em subconjuntos menores e gerenciáveis. O particionamento melhora a eficiência do desempenho de dados distribuindo a carga de trabalho e melhorando o processamento paralelo. Também assegura um acesso aos dados mais eficaz com base em necessidades específicas e padrões de consulta. Pode particionar dados vertical ou horizontalmente (também chamado de sharding). Por exemplo, se estiver usando Dataverse tabelas elásticas, considere qual deve ser a chave de particionamento.

Estratégia Definição Exemplo Casos de utilização
Particionamento vertical Divida uma tabela em tabelas menores selecionando colunas ou campos específicos para cada partição. Cada partição representa um subconjunto dos dados completos. Se tiver uma tabela com as colunas A, B, C e D, pode criar uma tabela com as colunas A e B e outra com as colunas C e D. - Uma tabela contém muitas colunas, mas as consultas não acedem a todas as colunas juntas.
- Algumas colunas são maiores do que outras e separá-las pode aumentar o desempenho de E/S.
- Diferentes partes de dados têm diversos padrões de acesso.
Particionamento horizontal Divida os dados com base em linhas ou intervalos de valores (também conhecido como fragmentação). Cada partição contém um subconjunto de linhas com características semelhantes. Se tiver uma tabela com linhas 1 a 1000, poderá criar uma partição com linhas 1 a 500 e outra com linhas 501 a 1000. - Um conjunto de dados é muito grande para um único local ou servidor.
- Os dados são acedidos com base em intervalos ou filtros específicos.
- Necessidade de distribuir a carga de trabalho entre nós físicos ou servidores para melhorar o desempenho.

Para particionar os seus dados, considere os seguintes passos:

  • Analisar dados e consultas. Analise dados e padrões de consulta para identificar estratégias adequadas de particionamento ou fragmentação. Compreenda a natureza dos dados, padrões de acesso e requisitos de distribuição.

  • Determine uma chave. Escolha uma chave de particionamento ou fragmentação para distribuir dados entre partições ou fragmentos. Selecione cuidadosamente a chave com base nas características dos dados e nos requisitos da consulta.

  • Determinar a lógica. Determine uma lógica de particionamento ou fragmentação com base na chave escolhida. Considere dividir os dados em intervalos, aplicar algoritmos de hash ou usar outras técnicas de particionamento.

Otimizar consultas

A otimização de consultas refina as consultas para reduzir os dados que se qualificam e os dados devolvidos. Esses ajustes aumentam a eficiência e a velocidade de recuperação de dados. Como resultado, o banco de dados tem uma carga de trabalho mais leve, os recursos trabalham de forma mais eficaz e os usuários desfrutam de interações mais suaves.

Para otimizar consultas de banco de dados, considere as seguintes estratégias:

  • Reescrever consultas. Reveja e analise consultas complexas para identificar oportunidades de as reescrever. Considere reestruturar a lógica da consulta, eliminar operações redundantes ou simplificar a sintaxe da consulta.

  • Evite o problema de consulta N+1. Minimize o número de viagens de ida e volta ao banco de dados usando junções e buscas em lote para recuperar dados relacionados de forma eficiente.

  • Reordenar uniões. Avalie e considere reordenar a ordem de união para minimizar o número de linhas em cada operação de união. A ordem em que une tabelas pode afetar o desempenho da consulta.

  • Colocar consultas em cache. Armazene os resultados de consultas frequentemente executadas para reutilização fácil. A colocação em cache de consultas elimina a necessidade de executar repetidamente a mesma consulta e reduz a sobrecarga de processamento de consultas.

  • Monitorizar e ajustar. Monitorize métricas de desempenho da consulta, como o runtime, a utilização de recursos e o débito da consulta. Use ferramentas de criação de perfil de banco de dados e funcionalidades de monitoramento para identificar consultas de baixo desempenho. Utilize essas informações para otimizar o desempenho da consulta.

Arquivar e remover dados

O arquivamento e a limpeza são estratégias que simplificam o armazenamento de dados. O arquivamento realoca dados mais antigos e acessados com menos frequência para um armazenamento mais econômico. A limpeza de dados remove permanentemente os dados redundantes. Ambos os métodos contribuem para a eficiência de desempenho reduzindo o volume de dados, aumentando a velocidade de acesso aos dados e reduzindo os tempos de backup e recuperação.

  • Reduzir o volume de dados: Menos dados significa tempos de processamento mais rápidos, garantindo respostas rápidas às solicitações dos usuários.
  • Aumento da velocidade de acesso aos dados: Um conjunto de dados cortado permite consultas e recuperação de dados mais rápidas, otimizando a capacidade de resposta do sistema.
  • Redução dos tempos de backup e recuperação: conjuntos de dados menores agilizam os processos de backup e restauração, minimizando o tempo de inatividade e garantindo um desempenho consistente.

O arquivamento e a limpeza são fundamentais para manter a eficiência de desempenho máximo em sistemas orientados por dados.

Otimizar a carga de armazenamento

Otimizar a carga de armazenamento significa simplificar as solicitações ao sistema de armazenamento. Ele ajuda a eliminar solicitações desnecessárias, melhora a recuperação de dados e evita sobrecarregar o sistema de armazenamento. A otimização da carga de armazenamento garante que o sistema de armazenamento permaneça respondendo às solicitações legítimas e mantenha o desempenho máximo. Implemente estratégias para reduzir a carga de processamento no arquivo de dados. Para otimizar a carga do arquivo de dados, considere as estratégias a seguir.

Utilizar colocação em cache

O cache armazena dados comumente acessados em uma área de armazenamento de acesso rápido, tornando a recuperação de dados mais rápida do que obtê-los da fonte principal. Esta técnica aumenta o desempenho dos dados reduzindo os tempos de acesso e evitando buscas de dados repetitivas. O cache melhora as velocidades de leitura e os tempos de resposta do usuário, especialmente para dados acessados com frequência. Este método é mais eficaz em dados estáticos ou dados que raramente mudam.

Para garantir a eficiência ideal do cache, considere fatores como políticas de expiração, estratégias de remoção e gerenciamento do tamanho do cache. Ajuste as definições, tais como o TTL (Time To Live), para um desempenho ideal. Para usar um cache para otimizar a carga de armazenamento, considere as seguintes estratégias:

  • Cache na memória: execute o cache na memória para armazenar dados acessados com frequência na memória para recuperação rápida. Pode utilizar esta técnica para dados de aplicação que são dispendiosos para calcular ou obter a partir de uma base de dados. A colocação em cache na memória é útil para dados que lê com frequência, mas que não mudam com frequência. Por exemplo, pode usar variáveis em fluxos de cloud ou coleções em aplicações de tela para colocar dados em cache.

  • Cache de consulta de banco de dados: use essa técnica para armazenar em cache os resultados de consultas de banco de dados para evitar executar a mesma consulta várias vezes. O cache de consulta de banco de dados é útil para consultas de banco de dados complexas e demoradas. Quando você armazena em cache os resultados de uma consulta, as solicitações subsequentes para a mesma consulta são retornadas rapidamente. Considere também a utilização de vistas do lado do servidor, sempre que possível, para pré-filtrar dados para reduzir os dados relevantes para a sua consulta.

  • Cache de rede de entrega de conteúdo: use esta técnica para armazenar em cache conteúdo da Web em servidores de rede distribuída para reduzir a latência e melhorar a entrega de conteúdo. A colocação em cache da rede de entrega de conteúdos é eficaz para conteúdos estáticos, como imagens, ficheiros CSS e ficheiros JavaScript. As redes de entrega de conteúdos armazenam cópias de conteúdo em várias localizações em todo o mundo, para que os utilizadores possam aceder ao conteúdo a partir de um servidor que esteja geograficamente perto deles.

Otimizar atualizações de dados

A otimização das atualizações de dados envolve a avaliação das atualizações de dados que são efetuadas para garantir que têm um bom desempenho. As atualizações podem afetar o desempenho mais do que outras operações porque podem desencadear trabalhos desnecessários e causar conflitos de bloqueio.

Para avaliar como otimizar atualizações de dados, considere:

  • Alterações de dados. Otimize a automatização para utilizar pré-imagens dos dados ou filtros para minimizar o trabalho quando nenhuma alteração real tiver ocorrido. Evite acionar a automatização para dados não modificados.

  • Automação. Avalie quando e como as atualizações são acionadas com base em alterações de dados e otimize acionadores para incluir um filtro. Por exemplo, para acionar a automatização apenas quando um campo específico na origem de dados é modificado. Avalie atualizações que acionam automatizações de forma incremental várias vezes. Em vez disso, considere se pode criar uma operação personalizada para lidar com todo o processamento. Por exemplo, se um pedido for enviado e a data de envio e o número de rastreamento forem atualizados separadamente, ambos poderão ser atualizados ao mesmo tempo em uma operação personalizada "ShipOrder".

  • Impasses. Avalie operações de atualização lentas que podem estar a causar problemas devido a vários fluxos que atualizam os mesmos dados em sequências diferentes. Essa ineficiência pode levar a conflitos de bloqueio ou até mesmo possíveis impasses, resultando em retrabalho desnecessário. Atualize os diferentes recursos na mesma sequência para minimizar a contenção.

  • Atualizações em massa. Se executar operações em várias linhas de uma tabela, considere utilizar operações em massa.

Otimize o movimento e o processamento de dados

A otimização da movimentação e do processamento de dados envolve a melhoria da eficiência e do desempenho de operações relacionadas à extração, transformação, carregamento e processamento de dados. Considere os seguintes aspectos-chave da otimização da movimentação e do processamento de dados:

  • Otimização de extração, transformação e carregamento (ETL): otimize os processos de ETL para minimizar o tempo de processamento. Pode simplificar o processo de extração, implementar algoritmos de transformação eficientes e otimizar o processo de carregamento. Quando torna cada passo eficiente, otimiza o fluxo de trabalho global.

  • Processamento paralelo: use técnicas de processamento paralelo para melhorar o desempenho. Ao distribuir tarefas de processamento de dados em vários threads ou nós, você pode dividir e processar a carga de trabalho simultaneamente, o que resulta em processamento rápido.

  • Processamento em lote: agrupe tarefas semelhantes para reduzir a sobrecarga causada por operações repetidas. Processar várias tarefas num lote para reduzir o tempo total de processamento.

Design para proximidade de dados

A proximidade de dados refere-se à colocação estratégica de dados mais perto dos utilizadores ou serviços que os acedem com mais frequência. A redução da distância física ou lógica entre os dados e os utilizadores assegura um acesso mais rápido aos dados e uma melhor capacidade de resposta. Para otimizar o projeto para proximidade, considere estas estratégias:

  • Avalie padrões de acesso a dados: avalie os padrões de acesso da sua carga de trabalho e os dados acessados com frequência. Esta análise pode ajudar a determinar onde colocar dados para obter o máximo benefício.

  • Escolha soluções que suportem a realocação de dados: considere soluções que ofereçam realocação dinâmica de dados com base em padrões de acesso em mudança, garantindo o posicionamento ideal dos dados.

  • Escolha soluções que ofereçam suporte à sincronização de dados: se você estiver a atender a uma base de usuários distribuída, escolha soluções que habilitem a sincronização de dados entre as várias regiões, para garantir que as réplicas de dados estejam disponíveis na proximidade dos usuários.

Compensação: Se os dados subjacentes forem alterados com frequência, implemente um mecanismo de invalidação de cache para garantir que os dados armazenados em cache permaneçam atualizados.

Facilitação do Power Platform

Monitorar o desempenho dos dados: para monitorar o desempenho dos dados, considere usar o Azure Monitor para coletar e analisar métricas de infraestrutura, logs e dados de aplicativos. Pode integrar o Monitor com outros serviços como Application Insights. O Application Insights fornece monitorização de desempenho da aplicação e suporta muitas plataformas.

Application Insights Recolhe dados de utilização e desempenho. Pode utilizar o Log Analytics para correlacionar esses dados com dados de configuração e desempenho entre recursos do Azure. O fluxo de dados do Application Insights para o Dataverse fornece atualmente dados de desempenho relacionados com chamadas de entrada à API do Dataverse, chamadas de execução de plug-ins do Dataverse e chamadas SDK do Dataverse.

Otimizar padrões de dados de consulta em aplicativos de tela: Siga as orientações e sugestões documentadas. Consulte Padrões de dados de consulta otimizados em Power Apps.

Otimize a forma como está a personalizar, a alargar ou a integrar-se com Dataverse: Siga as melhores práticas e orientações documentadas. Consulte Melhores práticas e orientações ao utilizar o Microsoft Dataverse.

Otimizar consultas de banco de dados e desempenho de índice: use o recurso de perceção de desempenho de consulta do Banco de Dados SQL do Azure para otimizar consultas, tabelas e bancos de dados. Também pode utilizar esta funcionalidade para identificar e resolver problemas de desempenho de consulta.

Para bases de dados relacionais, siga as diretrizes de design de índices, as orientações sobre o índice do SQL Server e as orientações sobre o índice do Azure Cosmos DB. Utilize a Base de Dados SQL para efetuar o ajuste automático para consultas para melhorar o respetivo desempenho.

Para bases de dados SQL, deve reorganizar ou recriar índices regularmente. Identifique consultas lentas e sintonize-as para melhorar o desempenho. Muitos motores de base de dados têm caraterísticas de ajuste de consultas. Para mais informações, consulte as melhores práticas para o desempenho de consultas.

O Azure Cosmos DB tem uma política de indexação predefinida que indexa todas as propriedades de cada item e impõe índices de intervalo para qualquer cadeia ou número. Esta política proporciona-lhe um desempenho de consulta eficiente e não tem de gerir índices com antecedência.

Otimizar a carga de armazenamento: muitos serviços de banco de dados do Azure oferecem suporte a réplicas de leitura. A disponibilidade e a configuração das réplicas de leitura variam consoante o serviço de base de dados do Azure. Consulte a documentação oficial de cada serviço para entender os detalhes e opções.

Lista de verificação de eficiência de desempenho

Consulte o conjunto completo de recomendações.