SóProvas


ID
3379711
Banca
INSTITUTO AOCP
Órgão
UFOB
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Os Sistemas de Gerenciamento de Banco de Dados (SGBD) precisam de manutenção, atividades como configuração, administração e tunning são comuns. Considerando a utilização do SGBD Postgres (Versão 9.3), julgue o item a seguir.


O comando VACUUM libera espaço dentro das tabelas, eliminando, fisicamente, tuplas que foram deletadas ou se tornaram obsoletas. Usando o comando dessa forma, libera-se espaço para o Sistema operacional, diminuindo, assim, o tamanho das tabelas.

Alternativas
Comentários
  • A descrição do que o comando faz está correta. O problema é que o COMANDO VACUUM precisa de parâmetros que estão suprimidos na questão. O mais engraçado é que, salvo engano, que somente o comando vacuum, sem parametros, já diminuiria o tamanho da tabela, o que de certa forma deixaria a questão correta.

  • Alguém sabe o motivo do erro?

    Segundo o manual do Postgres:

    "O comando VACUUM recupera a área de armazenamento ocupada pelas tuplas excluídas. Na operação normal do PostgreSQL as tuplas excluídas, ou tornadas obsoletas por causa de uma atualização, não são fisicamente removidas da tabela; permanecem presentes até o comando VACUUM ser executado. Portanto, é necessário executar o comando VACUUM periodicamente, especialmente em tabelas freqüentemente atualizadas.

    Sem nenhum parâmetro, o comando VACUUM processa todas as tabelas do banco de dados corrente. Com um parâmetro, o comando VACUUM processa somente esta tabela."

    Fonte: http://pgdocptbr.sourceforge.net/pg82/sql-vacuum.html

  • Pelas pesquisas que realizei, a causa mais provável do erro está em dizer "Usando o comando dessa forma, libera-se espaço para o Sistema operacional", pois o comando que faz a liberação de espaço em disco para o sistema operacional, é o comando VACUUM FULL.

    @Juliano, somente o comando VACCUM, não deixaria a questão correta. Pois não liberaria espaço para o Sistema Operacional.

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

  • Acredito que a única maneira de realizar a eliminação física, seria mediante a formatação do disco. Comandos de deleção de arquivos ou dados de qualquer SO e mesmo de SGDB realizam, a meu ver, eliminação LÓGICA do dado.

  • Errado

    No momento em que o comando >VACUUM é executado, é feita uma varredura em todo o banco a procura de registros inúteis, onde estes são fisicamente removidos, agora sim diminuindo o tamanho físico do banco. Mas além de apenas remover os registros, o comando >VACUUM encarrega-se de organizar os registros que não foram deletados, garantindo que não fiquem espaços/lacunas em branco após a remoção dos registros inúteis.

    O Vacuum diminui consideravelmente o tamanho físico do banco, mas não só isso, ele também aumenta a performance do otimizador do banco de dados.

    http://www.devmedia.com.br/postgresgl-vacuum-limpando-o-banco-de-dados/29716

  • É o que o colega @Luciano falou:

    "Plain VACUUM (without FULL) simply reclaims space and makes it available for re-use. (...). However, extra space is not returned to the operating system (in most cases); it's just kept available for re-use within the same table. VACUUM FULL rewrites the entire contents of the table into a new disk file with no extra space, allowing unused space to be returned to the operating system. "

    .

    https://www.postgresql.org/docs/9.1/sql-vacuum.html