Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Por que as consultas SOQL podem correr mais rápido em um ambiente de sandbox


Por que as consultas SOQL podem correr mais rápido em um ambiente de sandbox


As consultas SOQL (Salesforce Object Consulta) às vezes podem ser executadas mais rapidamente em um ambiente de sandbox em comparação com um ambiente de produção devido a vários fatores técnicos e operacionais intrínsecos à forma como as caixas de areia do Salesforce são configuradas e gerenciadas. A compreensão desses fatores requer investigação de diferenças nos volumes de dados, indexação, cache, contenção de recursos e otimizações de sistema específicas para ambientes de sandbox versus produção.

volume de dados e complexidade

Uma das principais razões pelas quais as consultas SOQL são mais rápidas em ambientes de sandbox é a diferença no volume de dados. As caixas de areia geralmente têm conjuntos de dados menores que os ambientes de produção, especialmente se forem caixas de areia parciais ou desenvolvedores, que copiam apenas um subconjunto dos dados de produção. Esse volume de dados reduzido significa que menos registros precisam ser digitalizados, indexados e devolvidos por consultas, naturalmente acelerando os tempos de execução da consulta. Mesmo em caixas de areia completas que refletem os dados de produção, refrescos ou instantâneos frequentes podem significar que os dados não são tão volumosos ou freqüentemente acessados ​​quanto na organização de produção ao vivo, resultando em melhor desempenho devido à menor carga geral do sistema.

Indexação e seletividade

O otimizador de consulta do Salesforce depende muito de índices para acelerar a execução da consulta. As consultas que filtram nos campos indexadas geralmente são muito mais rápidas porque o Salesforce pode diminuir rapidamente o conjunto de resultados em vez de digitalizar toda a tabela. Em ambientes de sandbox, o otimizador de consulta pode se comportar com mais eficiência porque a distribuição de dados pode ser diferente, permitindo que os índices sejam mais seletivos. Por exemplo, se uma caixa de areia tiver menos valores duplicados ou nulos em certos campos indexados do que a produção, o otimizador de consulta poderá usar índices de maneira mais eficaz para executar consultas mais rapidamente. Além disso, os ambientes de sandbox geralmente permitem maior flexibilidade na experiência com índices personalizados ou ajuste de consulta sem afetar a produção, o que pode otimizar o desempenho do SOQL durante o desenvolvimento e o teste.

contenção reduzida e isolamento de recursos

Os ambientes de produção são multi-inquilinos e fortemente utilizados por usuários finais que executam várias operações simultaneamente, criando contenção de recursos. Essa contenção pode desacelerar a execução da consulta como CPU, memória e E/S são compartilhadas entre numerosos processos simultâneos. Por outro lado, as caixas de areia, especialmente as caixas de areia Pro desenvolvedores e desenvolvedores, tendem a ter menos usuários simultâneos e menor carga geral do sistema. Essa redução na demanda de processamento simultânea significa que as consultas podem acessar os recursos com mais facilidade, reduzindo os tempos de espera e acelerando a execução.

Cache e estabilidade do plano de consulta

A Salesforce emprega mecanismos sofisticados de cache de cache para melhorar o desempenho. Em ambientes de sandbox, certos resultados de consulta e planos de execução podem ser armazenados em cache, principalmente se testes repetidos ou iterações de desenvolvimento executarem as mesmas perguntas. Esse efeito de cache pode acelerar o desempenho da consulta nas execuções subsequentes. Além disso, como os dados da caixa de areia mudam com menos frequência que a produção, os planos de consulta em cache e os resultados permanecem válidos por mais tempo, aumentando a eficiência da consulta. Os ambientes de produção, com suas mudanças dinâmicas e contínuas de dados e atividade transacional pesada, não podem aproveitar o cache de maneira eficaz, levando a uma recompilação mais frequente dos planos de consulta e, portanto, um desempenho mais lento da consulta.

Limites do governador e contexto de execução

O Salesforce impõe limites do governador, incluindo o número máximo de consultas SOQL por transação para manter a estabilidade da plataforma. Em caixas de areia de desenvolvimento, os desenvolvedores geralmente configuram e controlam contextos de execução com mais cuidado para evitar atingir esses limites, por exemplo, com consultas em pleno valor e processamento de dados em lotes. Esse desenvolvimento e teste conscientes ajudam a manter as consultas otimizadas antes da implantação na produção. Na produção, processos e integrações de negócios complexos podem inadvertidamente causar consultas excessivas ou ineficientes, levando a um desempenho mais lento devido a acertos repetidos no banco de dados e aos limites do governador. As caixas de areia fornecem um espaço mais seguro para depurar e otimizar essas consultas, produzindo melhor desempenho relativo.

Diferenças no compartilhamento de regras e configurações de segurança

Os ambientes de sandbox podem ter regras de compartilhamento e configurações de segurança simplificadas ou diferentes em comparação com a produção. O Salesforce aplica regras de compartilhamento e visibilidade no nível do banco de dados durante a execução da consulta. Os cálculos complexos de compartilhamento na produção podem adicionar despesas gerais às consultas, especialmente aquelas relacionadas a objetos e segurança no nível de registro. As caixas de areia usadas para desenvolvimento ou teste às vezes elevam ou simplificam essas regras, reduzindo a complexidade da execução e, assim, acelerando o desempenho da consulta SOQL.

Foco de teste e otimização

Em ambientes de sandbox, geralmente há um foco em testes e otimização. Desenvolvedores e administradores perfilam ativamente, analisam e melhoram as consultas SOQL usando ferramentas do Salesforce, como a ferramenta de plano de consulta, os registros de desempenho do console do desenvolvedor e os logs de depuração. Consequentemente, as melhores práticas aprendidas durante o desenvolvimento da caixa de areia, como a seleção apenas de campos necessários, aplicando filtros seletivos, evitando loops com consultas dentro deles, usando relacionamentos e agregados de maneira cuidadosa e processamento assíncrono (como o ápice em lote) é implementado, resultando em consultas mais fáceis. Os ambientes de produção ainda podem conter consultas legadas ou não otimizadas que degradam o desempenho.

Outros fatores contribuintes

- Data Skew: os dados de produção geralmente têm distribuições distorcidas, onde um pequeno subconjunto de registros domina o conjunto de dados. Essa inclinação pode degradar o desempenho da consulta derrotando estratégias de indexação. As caixas de areia podem ter menos inclinação, permitindo consultas mais eficientes.

- Estado de lixeira a vácuo e reciclagem: registros excluídos na lixeira pode afetar o desempenho. As organizações de produção geralmente têm uma lixeira mais completa do que as caixas de areia, que podem retardar as consultas de SOQL que acessam objetos ou histórias relacionadas.

- Estatísticas de atraso e consulta de replicação: o otimizador de consulta do Salesforce depende de estatísticas pré -computadas que são atualizadas periodicamente. As caixas de areia, particularmente as recém -atualizadas, podem ter novas estatísticas que permitem ao otimizador escolher melhores planos de consulta.

- Aprimoramentos da plataforma: Às vezes, o Salesforce implanta novas melhorias e recursos de desempenho primeiro em caixas de areia para testes antecipados. Isso pode melhorar temporariamente o desempenho da caixa de areia em relação aos ambientes de produção mais antigos.

Em resumo, as consultas SOQL são mais rápidas em ambientes de sandbox principalmente devido a conjuntos de dados menores e menos complexos, melhor seletividade de índices, contenção reduzida do sistema, cache eficaz, otimização de consultas focadas durante o desenvolvimento e configurações de segurança e compartilhamento mais simples. Esses fatores combinados criam condições em que o otimizador de consulta do Salesforce pode executar consultas com mais eficiência e onde os recursos estão mais prontamente disponíveis para o processamento de consultas. Esse ambiente promove um melhor desempenho inatingível na natureza altamente carregada e complexa das organizações de produção. As caixas de areia servem assim como um playground de desenvolvimento/teste e um local para ajuste de desempenho antes de implantar consultas e aplicações na produção, onde as demandas de desempenho e as complexidades de dados são muito mais altas. Todas essas idéias são extraídas das melhores práticas de desempenho do Salesforce, experiências de desenvolvedor e características da arquitetura do Salesforce.