Bonjour,
J'ai une table contenant quelques millions de lignes, dont une définition simplifiée est la suivante :
Je cherche à optimiser la recherche dans les noms puisque jusqu'à présent celle-ci est effectuée avec des LIKE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE personne_recherche_nom ( personne_recherche_nom_id int identity NOT NULL CONSTRAINT PKperson_search_name PRIMARY KEY , personne_id int NOT NULL CONSTRAINT FKpersonne_recherche_nom__personne_id FOREIGN KEY (personne_id) REFERENCES dbo.personne , premier_nom_type int NOT NULL CONSTRAINT FKperson_search_name__premier_nom_type FOREIGN KEY (premier_nom_type) REFERENCES dbo.nom_type , premier_nom nvarchar(64) NOT NULL , second_nom_type int NOT NULL CONSTRAINT FKperson_search_name__second_nom_type FOREIGN KEY (second_nom_type) REFERENCES dbo.nom_type , second_nom nvarchar(64) NOT NULL )
Un requête type est :
J'ai fait un peu de lecture sur la recherche en texte intégral, et j'ai compris que je ne peux pas utiliser cette fonctionnalité pour accélérer la recherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT TOP 500 person_id FROM dbo.personne_recherche_nom WHERE premier_nom LIKE 'toto%' AND second_nom LIKE 'titi%'
Est-ce que je me trompe ?
Si non, avez-vous des idées ?
@++![]()
Partager