Questão de Banco de Dados — SQL Server — CESPE / CEBRASPE 2024
- Código
- ce403662
- Banca
- CESPE / CEBRASPE
- Órgão
- TC DF
- Ano
- 2024
- Cargo
- ACE ( )
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: Certo. O comando CREATE CLUSTERED INDEX cria um índice clusterizado sobre as colunas column1, column2 e column3 da tabela table1 no esquema schema1, respeitando as direções de ordenação especificadas: column1 e column3 em ordem decrescente (DESC) e column2 em ordem crescente (ASC). A sintaxe apresentada está correta e a descrição do enunciado reflete exatamente o que o comando executa.
Um índice clusterizado é um tipo especial de índice no qual a ordem física das linhas na tabela é a mesma ordem lógica do índice. Isso significa que a tabela em si é reorganizada para seguir a ordem definida pelas colunas do índice. Diferentemente de um índice não clusterizado, que mantém uma estrutura separada apontando para as linhas, o clusterizado define a própria disposição dos dados na página. Por isso, uma tabela só pode ter um único índice clusterizado, pois os dados só podem ser armazenados fisicamente em uma ordem.
A sintaxe do comando é: CREATE CLUSTERED INDEX nome_do_indice ON nome_da_tabela (coluna1, coluna2, ...). No SQL Server, é possível especificar a direção de ordenação de cada coluna individualmente, usando ASC (ascendente, que é o padrão) ou DESC (descendente). No comando do enunciado, column1 e column3 são ordenadas de forma decrescente, enquanto column2 é ordenada de forma crescente. A ordem das colunas na definição do índice é crucial, pois define a hierarquia de ordenação: primeiro os dados são ordenados por column1, depois por column2 dentro de cada valor de column1, e assim por diante.
Na prática, um índice clusterizado é frequentemente usado na chave primária da tabela, pois garante que os dados sejam armazenados de forma ordenada e otimiza consultas que buscam por faixas de valores ou que precisam retornar os dados já ordenados. No entanto, a escolha das colunas e da direção de ordenação deve ser feita com base nos padrões de consulta da aplicação. Por exemplo, se uma consulta frequentemente filtra por column1 em ordem decrescente, um índice clusterizado com column1 DESC pode ser benéfico.
A pegadinha desta questão é justamente a atenção à direção de ordenação de cada coluna. O candidato pode ler o comando rapidamente e assumir que todas as colunas estão na mesma ordem, ou confundir ASC com DESC. A banca explora a necessidade de interpretar corretamente a sintaxe do comando, que é uma habilidade essencial para quem trabalha com bancos de dados.
A alternativa está correta porque descreve com precisão o que o comando CREATE CLUSTERED INDEX faz. O comando cria um índice clusterizado na tabela table1, que está no esquema schema1, sobre as colunas column1, column2 e column3. A direção de ordenação é especificada individualmente para cada coluna: column1 e column3 estão em ordem decrescente (DESC), e column2 está em ordem crescente (ASC). A descrição do enunciado espelha exatamente a sintaxe e o efeito do comando, não havendo nenhum erro de interpretação.
Gabarito: Certo
Link permanente: /questoes/ce403662