SR0005: Evite usar modelos que comiencen con "%" en predicados LIKE
Identificador de regla |
SR0005 |
Categoría |
Microsoft.Performance |
Cambio problemático |
Poco problemático |
Causa
El predicado LIKE de una cláusula WHERE empieza con el carácter comodín, "%".
Descripción de la regla
Podría producir un recorrido de tabla si utiliza una cláusula WHERE que contiene un predicado LIKE como '%modelo cadena' para buscar texto que puede aparecer en cualquier lugar de una columna.
Cómo corregir infracciones
Para resolver este problema, debe cambiar la cadena de búsqueda para que empiece con un carácter que no sea un carácter comodín (%) o debe crear un índice de texto completo.
Cuándo suprimir advertencias
Podría suprimir esta advertencia si no usa apenas la instrucción que produce esta advertencia o si la tabla nunca contiene más que unas pocas filas.
Ejemplo
En el primer ejemplo, la instrucción SELECT hará que se examine la tabla porque la cadena de búsqueda comienza con un carácter comodín. En el segundo ejemplo, la instrucción causará una búsqueda de índice porque la cadena de búsqueda no comienza con un carácter comodín. Una búsqueda de índice recupera sólo las filas que coinciden con la 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%'
Vea también
Conceptos
Analizar el código de base de datos para mejorar la calidad del código