Minha pergunta está relacionada a um incidente de produção em que foi necessário substituir um Postgres de baixo desempenho VIEW
sob carga. Tentamos inúmeras vezes redefinir o VIEW
using CREATE OR REPLACE
; isso não foi bem-sucedido porque a consulta DDL foi bloqueada por muitas outras SELECT
consultas. Então, pouco antes de mudarmos o banco de dados de produção para uma réplica (movimento desesperado), tentamos DROP e pareceu ter sucesso quase imediatamente. Pudemos então criar a visualização. Este incidente tornou-se um tanto controverso porque não conseguimos encontrar nenhuma documentação que diferencie o comportamento de bloqueio de CREATE OR REPLACE de DROP e depois CREATE. Alguns estão se perguntando: isso realmente aconteceu? Na esperança de obter alguns insights daqueles familiarizados com os componentes internos do Postgres.
relate perguntas
-
Posso ativar o PITR depois que o banco de dados foi usado
-
Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo
-
Os procedimentos armazenados impedem a injeção de SQL?
-
Sequências Biológicas do UniProt no PostgreSQL
-
Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?
Você teve sorte e nenhuma transação ou consulta de longa duração estava usando a visualização quando você a descartou.