Comment puis-je accélérer les requêtes sur des tables, je ne peux pas ajouter des index?

StackOverflow https://stackoverflow.com/questions/2500596

  •  21-09-2019
  •  | 
  •  

Question

accès à plusieurs tables à distance via DB Link. Ils sont très normalisées et les données dans chacun est efficace à jour. Parmi les millions d'enregistrements dans chaque table, un sous-ensemble de ~ 50k sont les enregistrements actuels.

Les tables sont gérées en interne par un produit commercial qui jette un énorme ajustement si j'ajouter des index ou apporter des modifications à ses tables de quelque façon.

Quelles sont mes options pour accélérer l'accès à ces tables?

Était-ce utile?

La solution

Vous pouvez essayer de créer un vue matérialisée de certains sous-ensemble des tables sur la DB lien et requête de ceux-ci.

Autres conseils

Je pense que vous êtes coincé entre un rocher et un endroit dur, mais dans le passé, ce qui suit a fonctionné pour moi:

Vous pouvez tirer vers le bas un aperçu des données actuelles à intervalles réguliers, toutes les heures ou tous les soirs ou tout ce qui fonctionne, et ajoutez vos index à vos propres tableaux selon les besoins. Si vous avez besoin d'accéder en temps réel les données, vous pouvez essayer de tirer tous les enregistrements actuels dans une table temporaire et l'indexation au besoin.

La charge supplémentaire de la copie d'une base de données dans votre propre peut éclipser l'avantage réel, mais sa vaut le coup.

Vous aurez besoin de regarder les plans. Vous pourrez peut-être changer l'ordre de la jointure, ajouter des critères ou fournir des conseils pour le rendre plus rapide, mais sans l'expliquer plan, vous ne savez pas pourquoi il est lent, de sorte que vous ne savez même pas si vous pouvez le faire plus rapide.

Pourriez-vous prendre une décharge quotidienne des dossiers dont vous avez besoin dans votre propre base de données / tables?

données d'archives qui n'est plus courant. (Ou si ce n'est pas acceptable, les données qui dépasse un certain seuil de caducité adapté à vos besoins.)

Qu'en est-il de créer un matérialisée / vue indexée? Cela pourrait aider un peu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top