Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Práticas recomendadas para desempenho de RLS - Amazon Redshift

Práticas recomendadas para desempenho de RLS

Veja a seguir as práticas recomendadas para garantir um melhor desempenho do Amazon Redshift em tabelas protegidas por RLS.

Segurança dos operadores e funções

Ao consultar tabelas protegidas por RLS, o uso de determinados operadores ou funções pode levar à degradação do desempenho. O Amazon Redshift classifica operadores e funções como seguros ou não seguros para consultar tabelas protegidas por RLS. Uma função ou operador é classificado como seguro para RLS quando não tem efeitos colaterais observáveis, dependendo das entradas. Em particular, uma função ou operador seguro para RLS não pode ser um dos seguintes:

  • Produz um valor de entrada, ou qualquer valor que seja dependente do valor de entrada, com ou sem uma mensagem de erro.

  • Falha ou retorna erros que são dependentes do valor de entrada.

Os operadores não seguros para RLS incluem:

  • Operadores aritméticos: +, -, /, *, %.

  • Operadores de texto: LIKE e SIMILAR TO.

  • Operadores Cast.

  • UDFs.

Use a seguinte instrução SELECT para verificar a segurança dos operadores e das funções.

SELECT proname, proc_is_rls_safe(oid) FROM pg_proc;

O Amazon Redshift impõe restrições na ordem de avaliação dos predicados do usuário que contêm operadores e funções não seguros para RLS ao planejar consultas em tabelas protegidas por RLS. Consultas que fazem referência a operadores ou funções não seguras para RLS podem causar degradação do desempenho ao consultar tabelas protegidas por RLS. O desempenho pode degradar significativamente quando o Amazon Redshift não pode enviar predicados não seguros para RLS para varreduras de tabela base para aproveitar as chaves de classificação. Para obter um melhor desempenho, evite consultas usando predicados não seguros para RLS que tiram proveito de uma chave de classificação. Para verificar se o Amazon Redshift é capaz de enviar operadores e funções, é possível usar instruções EXPLAIN em combinação com a permissão de sistema EXPLAIN RLS.

Armazenamento em cache dos resultados

Para reduzir o tempo de execução da consulta e melhorar a performance do sistema, o Amazon Redshift armazena em cache os resultados de certos tipos de consultas na memória no nó líder.

O Amazon Redshift usa resultados armazenados em cache para uma nova consulta que verifica tabelas protegidas por RLS quando todas as condições para tabelas desprotegidas são verdadeiras e quando todas as seguintes opções são verdadeiras:

  • As tabelas ou as exibições na política não foram modificadas.

  • A política não usa uma função que precisa ser avaliada cada vez que ela é executada, por exemplo GETDATE ou CURRENT_USER.

Para melhorar a performance, evite usar predicados de política que não satisfaçam as condições anteriores.

Para obter mais informações sobre o armazenamento em cache de resultados no Amazon Redshift, consulte Armazenamento em cache dos resultados .

Políticas complexas

Para obter um melhor desempenho, evite usar políticas complexas com subconsultas que unem várias tabelas.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.