Entendo que as exibições são implementadas usando o sistema de regras, mas não tenho certeza se isso tem alguma vantagem/desvantagem ao executar o DDL transacional contra elas. A emissão CREATE OR REPLACE VIEW ...;
ou DROP VIEW ...; CREATE VIEW...;
em uma transação remove um ACCESS EXCLUSIVE
bloqueio semelhante ao DDL em uma tabela ? Todas as consultas emitidas antes do DDL teriam que ser concluídas antes que o DDL pudesse ser executado? As consultas seriam emitidas após o bloco DDL até que o DDL fosse concluído?
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?
As respostas diretas às suas três perguntas seriam;
Sim. Quando você substituir sua exibição, o objeto de bloqueio de exibição será AccessExclusiveLock .
Sim, mesmo as consultas 'selecionar' que usam essa exibição específica aguardarão até que a instrução 'criar ou substituir' seja confirmada.
Sim, eles fazem. Depois que a consulta "view changer" for confirmada, as consultas que estão aguardando serão iniciadas