Comment faire pour synchroniser et optimiser une base de données Oracle de l'index de Texte?
Nous voulons utiliser un ctxsys.context
type d'index de recherche en texte intégral. Mais j'ai été assez surpris, qu'un indice de ce type n'est pas automatiquement mis à jour. Nous disposons de 3 millions de documents avec environ 10k de mises à jour/insertions/suppressions par jour.
Quelles sont vos recommandations pour la synchronisation et de l'optimisation d'un Oracle de l'index de Texte?
quelles indications avez-vous que l'index n'est pas rester dans une synchronisation?
Il est assez commun pour ces types d'outils pour ne pas faire des hypothèses à propos de à vos besoins spécifiques. La création et le maintien des indices sur de grandes quantités de données non structurées nécessite généralement une certaine considération, de sorte que vos choix de conception de produire une solution de compromis acceptable. La mise à jour et des stratégies de maintenance pour un moteur de recherche sera probablement très différente de la collaboration, une solution de création, qui world appart forme de soutien analytique. Oracle ne vous donner une petite gamme d'options de synchronisation à choisir, et avec seulement 10k quotidien DML vous pouvez vous en sortir avec l'un d'eux.
Il est assez commun pour ces types d'outils pour ne pas faire des hypothèses à propos de à vos besoins spécifiques. La création et le maintien des indices sur de grandes quantités de données non structurées nécessite généralement une certaine considération, de sorte que vos choix de conception de produire une solution de compromis acceptable. La mise à jour et des stratégies de maintenance pour un moteur de recherche sera probablement très différente de la collaboration, une solution de création, qui world appart forme de soutien analytique. Oracle ne vous donner une petite gamme d'options de synchronisation à choisir, et avec seulement 10k quotidien DML vous pouvez vous en sortir avec l'un d'eux.
OriginalL'auteur trunkc | 2009-12-16
Vous devez vous connecter pour publier un commentaire.
Je pense que " SYNC CHAQUE option, comme indiqué dans la réponse précédente uniquement disponible dans Oracle 10g ou plus récent. Si vous utilisez une ancienne version de Oracle, vous devez exécuter l'opération de synchronisation périodiquement. Par exemple, vous pouvez créer la procédure stockée suivante:
puis de planifier l'exécution via DBMS_JOB:
Comme pour l'indice de l'optimisation, la commande suivante peut être utilisée (peut également être programmé avec DBMS_JOB ou via cron):
Il est également CTX_* forfait avec fonction similaire disponible.
OriginalL'auteur maximdim
Qu'entendez-vous par "pas automatiquement mis à jour"?
L'indice peut être synchronisé sur valider ou périodiquement.
Je vous n'avez pas besoin de recherche en temps réel de l'exactitude de notre DBA recommandé de synchroniser l'indice périodiquement, de dire chaque 2 min. Si vous pouvez vous permettre de le faire pour la nuit, puis encore mieux. Ce qui est le mieux dépend de la charge et de la taille du document.
Ces liens peuvent probablement vous fournir plus d'informations:
Pour le DBA conseils, peut-être serverfault est mieux?
Juste une remarque pour garder à l'esprit: Si vous utilisez la SYNCHRONISATION des données ( validation ) avec un MULTI_COLUMN_DATASTORE l'indice de synchronisation ne sera déclenchée que lorsque la colonne contenant l'indice réel est affecté. Par exemple, si vous avez un multi-colonne d'index sur les colonnes A,B et C avec l'index résidant sur l'Une, puis une mise à JOUR de la colonne B ne déclenchera PAS l'indice de synchronisation.
OriginalL'auteur ewernli
De mettre cela ici comme une mise à jour pour Oracle 12C utilisateurs.
Si vous utilisez l'index en mode temps réel, alors il conserve les éléments en mémoire, et periodicially pousse les tables principales, ce qui maintient la fragmentation vers le bas et permet aux TNS de recherche sur la diffusion de contenu.
Voici comment le configurer
ce sera mis en place l'index du TNS mode. Il est assez doux.
OriginalL'auteur markgiaconia