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”.

Limitações e outras informações de DML no Aurora PostgreSQL Limitless Database - Amazon Aurora

Limitações e outras informações de DML no Aurora PostgreSQL Limitless Database

Os tópicos a seguir descrevem as limitações ou fornecem mais informações sobre os comandos SQL de DML e processamento de consultas no Aurora PostgreSQL Limitless Database.

ANALYZE

O comando ANALYZE coleta estatísticas sobre o conteúdo das tabelas no banco de dados. Posteriormente, o planejador de consultas usa essas estatísticas para ajudar a determinar os planos de execução mais eficientes para as consultas. Para obter mais informações, consulte ANALYZE na documentação do PostgreSQL.

No Aurora PostgreSQL Limitless Database, o comando ANALYZE coleta estatísticas da tabela em todos os roteadores e fragmentos quando é executado.

Para evitar o cálculo de estatísticas em cada roteador durante as execuções de ANALYZE, as estatísticas da tabela são calculadas em um dos roteadores e depois copiadas para os roteadores de mesmo nível.

CLUSTER

O comando CLUSTER reordena fisicamente uma tabela com base em um índice. O índice já deve ter sido definido na tabela. No Aurora PostgreSQL Limitless Database, o clustering é local para a parte do índice que está presente em cada fragmento.

Para ter mais informações, consulte CLUSTER na documentação do PostgreSQL.

EXPLAIN

Você usa o seguinte parâmetro para configurar a saída do comando EXPLAIN:

  • rds_aurora.limitless_explain_options: o que incluir na saída de EXPLAIN. O valor padrão é single_shard_optimization: é mostrado se os planos são otimizados para fragmento único, mas os planos de fragmento não estão incluídos.

Neste exemplo, a saída de EXPLAIN não mostra planos de fragmentos.

postgres_limitless=> EXPLAIN SELECT * FROM employees where id =25; QUERY PLAN ------------------------------------------------------ Foreign Scan (cost=100.00..101.00 rows=100 width=0) Single Shard Optimized (2 rows)

Agora, configuramos rds_aurora.limitless_explain_options para incluir shard_plans e single_shard_optimization. Podemos ver os planos de execução das instruções em roteadores e fragmentos. Além disso, desativamos o parâmetro enable_seqscan para garantir que a varredura de índice seja usada na camada de fragmento.

postgres_limitless=> SET rds_aurora.limitless_explain_options = shard_plans, single_shard_optimization; SET postgres_limitless=> SET enable_seqscan = OFF; SET postgres_limitless=> EXPLAIN SELECT * FROM employees WHERE id = 25; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------- Foreign Scan (cost=100.00..101.00 rows=100 width=0) Remote Plans from Shard postgres_s4: Index Scan using employees_ts00287_id_idx on employees_ts00287 employees_fs00003 (cost=0.14..8.16 rows=1 width=15) Index Cond: (id = 25) Single Shard Optimized (5 rows)

Para obter mais informações sobre o comando EXPLAIN, consulte EXPLAIN na documentação do PostgreSQL.

INSERT

A maioria dos comandos INSERT é compatível com o Aurora PostgreSQL Limitless Database.

O PostgreSQL não tem um comando UPSERT explícito, mas é compatível com as instruções INSERT ... ON CONFLICT.

INSERT ... ON CONFLICT não é compatível se a ação de conflito tiver uma subconsulta ou uma função mutável:

-- RANDOM is a mutable function. INSERT INTO sharded_table VALUES (1, 100) ON CONFLICT (id) DO UPDATE SET other_id = RANDOM(); ERROR: Aurora Limitless Tables doesn't support pushdown-unsafe functions with DO UPDATE clauses.

Para obter mais informações sobre o comando INSERT, consulte INSERT na documentação do PostgreSQL.

UPDATE

A atualização da chave de fragmento não é compatível. Por exemplo, você tem uma tabela fragmentada chamada customers, com uma chave de fragmento customer_id. As seguintes instruções DML causam erros:

postgres_limitless=> UPDATE customers SET customer_id = 11 WHERE customer_id =1; ERROR: Shard key column update is not supported postgres_limitless=> UPDATE customers SET customer_id = 11 WHERE customer_name='abc'; ERROR: Shard key column update is not supported

Para atualizar uma chave de fragmento, primeiro aplique DELETE à linha com a chave de fragmento e, em seguida, aplique INSERT a uma nova linha com o valor atualizado da chave de fragmento.

Para obter mais informações sobre o comando UPDATE, consulte Updating data na documentação do PostgreSQL.

VACUUM

É possível realizar a limpeza em tabelas fragmentadas e de referência. As seguintes funções VACUUM são totalmente compatíveis com o Aurora PostgreSQL Limitless Database:

  • VACUUM

  • ANALYZE

  • DISABLE_PAGE_SKIPPING

  • FREEZE

  • FULL

  • INDEX_CLEANUP

  • PARALLEL

  • PROCESS_TOAST

  • TRUNCATE

  • VERBOSE

VACUUM no Aurora PostgreSQL Limitless Database tem as seguintes limitações:

Para obter mais informações sobre o comando VACUUM, consulte VACUUM na documentação do PostgreSQL. Para obter mais informações sobre como a limpeza funciona no Aurora PostgreSQL Limitless Database, consulte Recuperar espaço de armazenamento por meio de limpeza.

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