SóProvas


ID
2490868
Banca
FGV
Órgão
IBGE
Ano
2017
Provas
Disciplina
Banco de Dados
Assuntos

Os Bancos de Dados PostgreSQL necessitam de manutenção periódica conhecida como "Vacuuming". O comando VACUUM tem que processar cada tabela regularmente por várias razões, dentre as quais se inclui:

Alternativas
Comentários
  • Letra C) Questão elaborada conforme texto abaixo:

     

    O comando VACUUM do PostgreSQL deve ser executado regularmente por diversos motivos:

     

    - Para recuperar o espaço em disco ocupado pelas linhas atualizadas e removidas.

    - Para atualizar as estatísticas dos dados utilizadas pelo planejador de comandos do PostgreSQL.

    - Para proteger contra perda de dados muito antigos devido ao recomeço do ID de transação.

     

    http://pgdocptbr.sourceforge.net/pg80/maintenance.html

  • a) Na verdade, o vacuum recupera o espaço em disco ocupado por linhas alteradas ou removidas, e não inseridas. ERRADA

    b) As estatísticas do banco de dados são utilizadas pelo planejador de consultas do SGBD para que ele possa escolher a melhor maneira de executar cada consulta no banco de dados. Essas estatísticas dizem respeito aos dados que estão armazenados na tabela em um dado momento.

    Assim, quando realizamos muitas operações DML como alterações ou remoções de registros, os dados mudam bastante e as estatísticas precisam ser atualizadas. Essas estatísticas podem ser atualizadas manualmente através do comando ANALYZE ou podem ser atualizadas como uma etapa do comando VACUUM. 

    O item está errado pois fala em comandos DDL, e não DML! ERRADA

    c) Correto! Como exposto na justificativa do item B, as estatísticas sobre os dados armazenados em uma tabela servem para o planejador de consultas do PostgreSQL adotar a estratégia mais eficiente para extrair os dados da tabela. Uma das funcionalidades do comando VACUUM é justamente permitir essa atualização. CERTA

    d) A atualização do mapa de visibilidade permite que os índices funcionem de forma mais eficiente, mais rápida, pois permite que o SGBD considere somente os registros que estão sendo utilizados por alguma das transações ativas no momento. O vacuum não faz a remoção de índices. ERRADA

    e) Por fim, algumas falhas nos identificadores de transações podem gerar a remoção de dados muito antigos armazenados nas tabelas. A operação de vacuum tem como um de seus efeitos prevenir esse tipo de perda, mas não tem a capacidade de recuperar dados que tenham sido perdidos. ERRADA

  • VACUUM recupera o armazenamento ocupado por tuplas mortas. Na operação normal do PostgreSQL, as tuplas excluídas ou obsoletas por uma atualização não são removidas fisicamente de sua tabela; eles permanecem presentes até que um VÁCUO seja feito. Portanto, é necessário executar VACUUM periodicamente, especialmente em tabelas atualizadas com frequência.

    FULL

    Seleciona o vácuo "total" , que pode recuperar mais espaço, mas leva muito mais tempo e bloqueia exclusivamente a mesa. Este método também requer espaço extra em disco, pois grava uma nova cópia da tabela e não libera a cópia antiga até que a operação seja concluída. Normalmente, isso só deve ser usado quando uma quantidade significativa de espaço precisa ser recuperada de dentro da tabela.

    FREEZE

    Seleciona "congelamento" agressivo de tuplas. Especificar FREEZE é equivalente a executar VACUUM com o parâmetro vacuum_freeze_min_age definido como zero.

    VERBOSE

    Imprime um relatório detalhado da atividade de vácuo para cada tabela.

    ANALYZE

    Atualiza as estatísticas usadas pelo planejador para determinar a maneira mais eficiente de executar uma consulta.

    table

    O nome (opcionalmente qualificado pelo esquema) de uma tabela específica para limpar. O padrão é todas as tabelas do banco de dados atual.

    column

    O nome de uma coluna específica a ser analisada. O padrão é todas as colunas. Se uma lista de colunas for especificada, ANALYZE estará implícito.