João implementou um banco de dados no MS SQL Server ...
Para que as consultas produzidas pelo aplicativo possam resolver esse tipo de requisição com tempos de resposta aceitáveis, a solução adequada para João seria a utilização de:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: Letra C - índices full-text.
Para entender o porquê da alternativa C ser a correta, precisamos explorar o conceito de índices full-text no contexto do SQL Server. Este tipo de índice é especializado na pesquisa de texto completo dentro de uma base de dados. Ele permite que você execute consultas complexas de busca por palavras e frases em colunas de texto, possibilitando encontrar ocorrências de palavras ou frases mesmo quando elas não estão adjacentes umas às outras.
No cenário apresentado, João busca otimizar consultas que envolvem a localização de registros com duas ou mais palavras próximas entre si, como a expressão “menor de idade”. Índices full-text são projetados especificamente para esse propósito, usando algoritmos que permitem a busca rápida de padrões de texto, o que inclui a proximidade de termos.
Além do mais, é importante destacar que os outros tipos de índices e abordagens apresentados nas alternativas não são adequados para a situação descrita:
- Clustered (alternativa A) e hash (alternativa B) são tipos de índices utilizados para otimizar buscas baseadas em chaves, não sendo eficientes para buscas de texto.
- Tabelas particionadas (alternativa D) ajudam na organização e no desempenho de bancos de dados quando há grandes volumes de dados, mas não melhoram diretamente as buscas por texto.
- User-defined functions de manipulação de strings (alternativa E) podem auxiliar na manipulação de texto, mas não oferecem a mesma performance e otimização que um índice full-text oferece para buscas.
Dessa forma, a alternativa C é a escolha adequada para o caso apresentado, garantindo que as consultas sejam realizadas de forma eficiente e com tempos de resposta aceitáveis.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
A pesquisa full-text é bem rápida porque é baseada em índices full-text. Estes índices não são como os outros índices criados na base de dados, não são baseados na estrutura B-Tree habitual, são baseados em tokens (pedaços de palavras) e possuem uma estrutura bem particular o que faz com que as suas consultas sejam muito rápidas mesmo quando existem necessidades complexas como pesquisar todas as linhas da tabela de produtos, onde na coluna descrição, a palavra “tênis”, esteja próxima da palavra “running”, ou então pesquisar todas as linhas da tabela de produtos onde na coluna descrição existam variações da palavra “corrida”. Estes dois tipos de consultas são quase impossíveis de serem feitas com o operador like, e se forem feitas, com certeza serão tão lentas e consomem tantos recursos que são consultas inviáveis
Fonte: http://www.devmedia.com.br/desvendando-o-full-text-search-no-sql-server-2008-revista-net-magazine-90/22579
Os índices disponíveis no SQL Server são:
Clusterizado (clustere);
Não clusterizado (nonclustered);
Exclusivo (unique);
Columnstore;
Index com colunas incluídas;
Index com colunas computadas;
Filtrado (Filtered);
Espacial (Spatial);
XML;
Texto completo (Full-text);
a) ERRADO. O índice clusterizado classifica e armazena as linhas de dados da tabela ou exibição em uma ordem com base na chave do índice clusterizado. O índice clusterizado é implementado como uma estrutura de índice da árvore B que oferece suporte à recuperação rápida de linhas com base em seus valores da chave de índice clusterizado.
b) ERRADO. Um índice de hash consiste em uma coleção de buckets organizados em uma matriz. Uma função de hash mapeia chaves de índice para buckets correspondentes no índice de hash. A estrutura de índice de hash na memória consiste em uma matriz de ponteiros de memória. Cada bucket é mapeado para um deslocamento nesta matriz. Cada bucket na matriz aponta para a primeira linha desse bucket de hash. Cada linha no bucket aponta para a próxima linha, resultando em uma cadeia de linhas para cada bucket de hash.
c) CORRETO. Índice de texto completo (Full-text) é um tipo especial de índice funcional com base em token que é criado e mantido pelo Mecanismo de Texto Completo da Microsoft para o SQL Server. Ele fornece suporte eficiente para pesquisas sofisticadas de palavras em dados de cadeias de caracteres.
d) ERRADA. O SQL Server oferece suporte ao particionamento de tabelas e índices. Os dados de tabelas e índices particionados são divididos em unidades que podem ser difundidas por mais de um grupo de arquivos em um banco de dados. Mas isso diz respeito a melhoria de desempenho, sendo ineficaz na busca da solução para o problema de localizar registros com duas ou mais palavras.
e) ERRADA. Os benefícios de usar funções definidas pelo usuário em SQL Server são de permitir uma programação modular, uma execução mais rápida e uma redução do tráfego de rede nada relacionado a manipulação de strings, nem de cadeias de caracteres.
REFERÊNCIAS;
https://msdn.microsoft.com/pt-br/library/ms175049(v=sql.110).aspx
https://msdn.microsoft.com/pt-br/library/ms191007.aspx
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo