SR0005: Evitar o uso de padrões que começam com "%" como predicados
RuleId |
SR0005 |
<strong>Categoria</strong> |
Microsoft.Performance |
Alteração significativa |
Não-separável |
Causa
O predicado LIKE de uma cláusula WHERE começa com o caractere curinga, "%".
Descrição da regra
Você pode fazer com que uma verificação de tabela se você usar uma cláusula WHERE que contém um predicado LIKE como, por exemplo, 'seqüência de caracteres padrão %' para procurar o texto que pode ocorrer em qualquer lugar em uma coluna.
Como corrigir violações
Para resolver esse problema, você deve alterar a seqüência de pesquisa para que ele começa com um caractere que não é um curinga (%) ou você deve criar um índice de texto completo.
Quando suprimir avisos
Você pode suprimir esse aviso se você raramente usa a instrução que faz com que esse aviso ou se a tabela nunca conterá mais de algumas linhas.
Exemplo
No primeiro exemplo, a instrução SELECT fará uma verificação de tabela porque a seqüência de pesquisa começa com um caractere curinga. No segundo exemplo, a instrução fará com que uma busca de índice, pois a seqüência de pesquisa não inicia com um caractere curinga. Busca de uma índice recupera apenas as linhas que correspondem à cláusula WHERE.
SELECT [dbo].[Table2].[ID], [dbo].[Table2].[c1], [dbo].[Table2].[c2], [dbo].[Table2].[c3], [dbo].[Table2].[Comment]
FROM dbo.[Table2]
WHERE Comment LIKE '%pples'
SELECT [dbo].[Table2].[ID], [dbo].[Table2].[c1], [dbo].[Table2].[c2], [dbo].[Table2].[c3], [dbo].[Table2].[Comment]
FROM dbo.[Table2]
WHERE Comment LIKE 'A%'
Consulte também
Conceitos
Analisando o código do banco de dados para melhorar a qualidade do código