Tecnologia da Informação Banco de Dados Linguagem SQL

Utilizando-se o comando apresentado a seguir, foi criada a tabela TAB1, em uma base de dados, armazenada em um Sistema Gerenciador de Bancos de Dados (SGBD) relacional. Logo após a criação da tabela, ela foi carregada com 5 milhões de linhas, a partir de dados contidos em um arquivo texto.

 CR

Não existem restrições de integridade na tabela, mas sabe-se que o valor da coluna CODIGO não se repete em diferentes linhas. Sabe-se, também, que existem cerca de 20 mil valores distintos para CODIGO_TAB2, sendo que as quantidades de ocorrências de cada um de tais valores na tabela são aproximadamente iguais. De forma análoga, existem 5 valores distintos para a coluna SITUACAO, e as quantidades de ocorrências de cada um desses valores na tabela também são aproximadamente iguais.

Visando a atualizar os valores da coluna SITUACAO, um usuário irá executar repetidas vezes comando similar ao apresentado a seguir. Para cada execução do comando, o usuário substitui os valores das variáveis @VALOR_SITUACAO e @CODIGO por valores adequados. No entanto, a execução de tal comando de atualização está tendo desempenho insatisfatório.

Nesse contexto, qual a ação que pode gerar maior ganho de desempenho na execução do comando?

  • A.

    Definição da chave primária na coluna CODIGO.

  • B.

    Definição de constraints do tipo CHECK, nas colunas SITUACAO e CODIGO_TAB2, de forma a limitar os valores distintos que essas colunas podem conter.

  • C.

    Criação de um índice na coluna SITUACAO.

  • D.

    Criação de um índice na coluna CODIGO_TAB2.

  • E.

    Criação de um índice na coluna CODIGO.