Questão de Banco de Dados — PostgreSQL — VUNESP 2024
- Código
- vu212047
- Banca
- VUNESP
- Órgão
- SPTrans
- Ano
- 2024
- Cargo
- Ana Info ( )
- AREASSING OWNED.
- BREVOKE.
- CREINDEX.
- DRELEASE SAVEPOINT.
- EROLLBACK.
GabaritoC — REINDEX.
Gabarito: letra C. O comando REINDEX é o utilitário do PostgreSQL responsável por reconstruir índices existentes, seja para corrigir corrupção, seja para reorganizar a estrutura física após muitas atualizações. Os demais comandos pertencem a outras categorias: REASSIGN OWNED e REVOKE lidam com permissões, enquanto RELEASE SAVEPOINT e ROLLBACK gerenciam transações.
O PostgreSQL oferece um conjunto de comandos administrativos que vão além do SQL padrão, e a banca explora exatamente essa distinção. Para entender a questão, é preciso separar os comandos por sua finalidade: manutenção de objetos, controle de permissões e controle de transações. O REINDEX se enquadra na primeira categoria, sendo usado para reconstruir índices de uma tabela ou de todo o banco de dados.
A reconstrução de índices é uma operação de manutenção importante. Com o tempo, índices podem ficar fragmentados ou corrompidos, especialmente após muitas operações de atualização e exclusão. O REINDEX recria o índice do zero, eliminando a fragmentação e restaurando a eficiência das consultas. No PostgreSQL, a sintaxe básica é REINDEX INDEX nome_do_indice; ou REINDEX TABLE nome_da_tabela; para reconstruir todos os índices de uma tabela, e REINDEX DATABASE nome_do_banco; para reconstruir todos os índices do banco.
É importante não confundir o REINDEX com o VACUUM. Enquanto o VACUUM recupera espaço ocupado por tuplas mortas (versões antigas de linhas atualizadas ou excluídas), o REINDEX reconstrói a estrutura do índice em si. Ambos são comandos de manutenção, mas atuam em aspectos diferentes: um na tabela, outro no índice.
A pegadinha desta questão está em reconhecer que os comandos das alternativas A, B, D e E pertencem a outras categorias, e não à manutenção de índices. O candidato que não conhece o REINDEX pode ser tentado a escolher um comando de transação, como ROLLBACK, por associar "reconstrução" a "desfazer". No entanto, a reconstrução de índices é uma operação de manutenção física, não de reversão de dados.
Guarde a classificação dos comandos: REINDEX é manutenção de objetos, REASSIGN OWNED e REVOKE são controle de permissões, e RELEASE SAVEPOINT e ROLLBACK são controle de transações. É essa fronteira que separa a alternativa correta das demais.
O comando REASSIGN OWNED é utilizado para alterar a propriedade de objetos do banco de dados de um papel (role) para outro. Ele não tem relação com a reconstrução de índices. A banca incluiu essa alternativa para testar se o candidato conhece comandos de administração de permissões e propriedade.
O comando REVOKE é usado para retirar privilégios de acesso concedidos anteriormente a um usuário ou papel. Ele faz parte do controle de permissões (DCL - Data Control Language), não da manutenção de índices. A confusão aqui seria associar "revogar" a "reconstruir", mas são operações completamente distintas.
O comando REINDEX é exatamente o utilitário do PostgreSQL para reconstruir índices. Ele recria a estrutura do índice, eliminando fragmentação e corrigindo possíveis corrupções. É a ferramenta correta para a manutenção de índices no banco de dados.
O comando RELEASE SAVEPOINT é utilizado para excluir um ponto de salvamento (savepoint) definido dentro de uma transação. Ele faz parte do controle de transações, permitindo liberar um ponto de restauração sem desfazer as alterações. Não tem relação com índices.
O comando ROLLBACK é usado para desfazer todas as alterações feitas desde o início da transação ou desde um savepoint. Ele também pertence ao controle de transações. A banca pode tentar confundir o candidato, pois "reconstruir" pode ser associado a "reverter", mas são operações diferentes: ROLLBACK desfaz dados, REINDEX reconstrói índices.
Para memorizar, agrupe os comandos por categoria: manutenção (REINDEX, VACUUM, ANALYZE), permissões (GRANT, REVOKE, REASSIGN OWNED) e transações (BEGIN, COMMIT, ROLLBACK, SAVEPOINT, RELEASE SAVEPOINT). Quando a questão perguntar sobre reconstrução de índices, a resposta será sempre REINDEX.
Gabarito: letra C
Link permanente: /questoes/vu212047