Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — CESPE / CEBRASPE 2024

Banco de DadosSQL Server
Código
ce403662
Banca
CESPE / CEBRASPE
Órgão
TC DF
Ano
2024
Cargo
ACE ( )
CREATE CLUSTERED INDEX idx_clustered  ON schema1.table1 (column1 DESC, column2 ASC, column3 DESC);   Considerando o comando precedente, do banco de dados MS-SQLSERVER 2019, julgue o próximo item.   O comando cria um índice clusterizado em column1, column2 e column3 da tabela table1 no esquema schema1, com column1 e column3 classificados em ordem decrescente e column2 classificado em ordem crescente.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Índices Clusterizados no SQL Server

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.

Alternativa C — ✅ Certo ⟵ GABARITO

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