SóProvas


ID
5566897
Banca
INSTITUTO AOCP
Órgão
FUNPRESP-JUD
Ano
2021
Provas
Disciplina
Banco de Dados
Assuntos

Referente a bancos de dados relacionais e NoSQL, julgue o seguinte item.

Para melhorar o desempenho de uma consulta no SQL server 2012, pode-se utilizar o seguinte índice:

CREATE INDEX IXNomeCliente ON
dbo.Cliente(Nome) INCLUDE (Codigo)
Para a seguinte consulta:
SELECT Codigo, Nome FROM Clientes
WHERE Nome like 'MA%'

Alternativas
Comentários
  • Essa eu não entendi... Por que uma consulta cuja condição é no atributo nome vai ter seu desempenho melhorado por um índice no campo chave código??? Alguém sabe explicar?

  • C

    @Valéria, o índice realmente é "nome" e ele é quem vai se beneficiar do filtro WHERE.

    Porém, por se tratar de um índice não clusterizado, para imprimir o valor de "código" eu precisaria:

    • Buscar pelo índice "nome"
    • Após encontrá-lo, devo pegar o ponteiro para acessar o cluster que contém os dados
    • Encontrar o valor da coluna "código"

    Caso eu inclua a coluna "código" ao meu índice "nome", só preciso fazer

    • Buscar pelo índice "nome"
    • Esse índice já terá uma referência direta à coluna "código"

     

    O motivo dessa query ficar mais rápida é porque "código" está no SELECT. Se ele não tivesse, realmente não faria diferença alguma

  • Eu tenho experiência prática no assunto e pra quem estuda só por teoria fica difícil entender. Um índice cria uma acesso rápido ao conteúdo da tabela, há os índices clusterizados (que criam índices junto aos dados, como uma lista telefônica e há os índices não clusterizados, que são como índices atrás de um livro, vc olha a palavra chave e vê onde está o assunto no livro). Vc nao precisa ler cada página do livro, vc vai direto na página (linha) que o índice aponta, otimizando o tempo de busca.

  • Para mim a questão ou está errada ou deveria ser anulada. Afinal o índice foi definido na tabela cliente (no singular) e a consulta é na tabela clienteS (no plural). Se a tabela estivesse no plural ou no singular na criação do índice e na consulta a questão estaria certa, conforme as explicações da Valéria e do Leandro Henrique.