0

J'ai une très grande table avec une colonne indexée en texte intégral. Si je partitionne cette table judicieusement (pour moi, c'est raisonnablement par date), cela accélérera-t-il les requêtes? Ou la clause de texte intégral recherchera-t-elle encore dans toute la table, même si la requête est limitée à une seule partition? De ce que j'ai vu jusqu'ici, je pense que la réponse est le partitionnement n'aidera pas. Donc, les meilleures alternatives sont des réponses valorisées. Par exemple, créez des tables pour chaque plage de dates et maintenez-les facilement en faisant [???].Puis-je utiliser le partitionnement SQL Server pour optimiser les recherches en texte intégral?

EDIT: Très grand est actuellement de 4,5 millions de lignes, mais va croître au fil du temps dans les poussées (il pourrait être 20 millions demain, donc je veux planifier pour cela). En termes de matériel, je suis assez désemparé. Je sais que la requête est lente lorsque la requête fulltext renvoie un grand nombre de lignes, même si la requête dans son ensemble ne le fait pas. Je ne sais pas si cela signifie que c'est lié au calcul ou lié à l'E/S ou si c'est encore assez d'information à dire.

Répondre

1

Je ne pense pas que ce sera le cas.

L'index de texte intégral se trouve sur un seul catalogue de texte intégral. Ceci est très différent du partitionnement de données basées sur une plage de dates sur des groupes de fichiers de données, en utilisant des vues et des contraintes pour diriger les requêtes vers la partition correcte. Mon idée serait de vous assurer que votre catalogue de texte intégral et votre index sont sur leur propre LUN/ensemble de disques.

0

GBN a raison - ça n'aidera pas.

Habituellement, ma recommandation est d'éviter de changer votre schéma pour résoudre un problème matériel. Suivez les meilleures pratiques pour l'installation FTS, et vous pouvez très bien évoluer. Si vous pouvez clarifier ce que vous entendez par «une très grande table» et quel type de matériel c'est, nous pouvons probablement vous aider à donner de meilleures réponses. Par exemple, est-ce une table de 1 million de lignes sur une bote de 16 bits de 2 cpu avec 6 disques dans un raid lent 5, ou est-ce une table de 10 millions de lignes sur une cde 4 cpu 64 gb avec un SAN de 100 disques en RAID dix?

Questions connexes