1.3 - Como o SGBD processa uma operação que contenha a expressão LIKE

Operações SQL que utilizam a expressão LIKE não utilizam índices; essas operações fazem pesquisa linear em todos os dados do conjunto de dados. Se uma instrução SQL possuir um operador LIKE e algum outro operador lógico (como os citados anteriormente), primeiramente os operadores lógicos serão processados (utilizando índices) e diminuindo o conjunto de dados, e, posteriormente o operador LIKE será executado apenas nesse subconjunto, por meio de uma consulta linear.

Exemplo: Vamos ver como o SGBD processa a operação SELECT * FROM FUNCIONARIOS WHERE Nome LIKE “%Marcelo%” AND Idade > 18 AND Salario > 1000. Vamos supor ainda que a tabela de funcionários possua 10.000 registros:

Veja no exemplo acima que a pesquisa linear do operador LIKE não foi processada nos 10.000 registros do conjunto, mas somente nos 800 registros que atenderam às duas outras condições impostas na cláusula WHERE. Entretanto, a consulta consumiu 23 testes lógicos para os dois filtros iniciais e mais 800 para o filtro LIKE, totalizando 823 testes lógicos. Perceba como as operações LIKE podem ser extremamente onerosas para o banco de dados!
Copyright © 2016 AIEC.