comment effectuer une search efficace sur un champ non-index d'une très grande table dans le server sql

J'ai une très grande table avec seulement 6 champs. Le nombre de lignes est d'environ 20 millions. J'ai un index clusterisé comprenant un champ entier. Cependant, il y a un champ nvarchar (max) (pas nécessairement unique, mais jamais nul) sur lequel je devrai fréquemment chercher et le problème est que je ne peux pas indexer dessus car SQL a une limite maximum pour la taille de l'index. Quelles sont mes options pour résoudre ce problème? Je ne connais pas très bien SQL, alors évitez les termes techniques.

Il semble que vous deviez utiliser la search en text intégral :

La search de text intégral dans SQL Server permet aux users et aux applications d'exécuter des requêtes de text intégral sur datatables basées sur des caractères dans les tables SQL Server.

Ces colonnes peuvent avoir l'un des types de données suivants: char , varchar , nchar , nvarchar , text , ntext , image , xml ou varbinary(max)

Non seulement vous aurez besoin d'un index de text intégral pour pouvoir append l'index à la colonne de text volumineux … mais si vous searchz ce gros bloc de text pour des correspondances partielles, telles que la search d'un mot spécifique ou d'un phrase au milieu d'un document volumineux, un index normal serait inutile, car un caractère générique principal (c'est-à-dire WHERE TextField LIKE '%Specific word or phrase%' ) dans votre search empêcherait l'utilisation d'un index non-full-text.

La search sans index ne peut pas être efficace.

La search en text intégral peut être effectuée sur les colonnes char, varchar, nvarcahr . Cependant, cela fonctionnera toujours mieux si vous créez un index de text intégral.

La raison pour laquelle cela fonctionne sans index sur certaines colonnes – est de permettre une fonctionnalité étendue de search de text intégral: sémantique, distance de mot, mots d'arrêt, etc.