Index + Like où sont les performance?
Bonjour.
Je m'interroge devant certaines performance d'un de mes queries.
J'ai une table qui n'a pour seul index sa clé primaire composée d'un entier (IdClub) et d'un nvarchar(250) (FilePath).
J'aimerais retrouvé dans ma table toutes les lignes où IdClub correspond à un certain paramètre entier et où FilePath est le début (ou la totalité) d'un certain paramètre chaîne de caractères.
Cela donne quelque chose comme ceci :
Code:
1 2 3 4 5 6
|
SELECT
*
FROM dbo.tManagement_SkipFiles AS SK
WHERE SK.IdClub IN (0, 1040)
AND N'app[_]themesdsqfdqazzzzzzzzzzzzsfdsqf' LIKE SK.FilePath + '%' |
Le problème avec cette écriture est que l'index n'est pas utilisé (sinon pour le paramètre entier).
J'aimerais évidement tirer un meilleur parti de l'index, mais je ne trouve pas d'écriture permettant de le faire.
Par exemple, ceci est un non-sens:
Code:
1 2 3 4 5 6 7
|
SELECT TOP(1)
@Dummy = SK.NoSkip
FROM dbo.tManagement_SkipFiles AS SK
WHERE SK.IdClub IN (0, 1040)
AND SK.FilePath LIKE SUBSTRING(N'app[_]themesdsqfdqazzzzzzzzzzzzsfdsqf', 0, LEN(SK.FilePath)) + N'%'
ORDER BY SK.IdClub DESC |
Avez-vous une idée ?