2010-05-15 22 views
0

J'ai une question sur la ligne fine entre le gain d'un index à une table, il y a une croissance constante de la taille tous les mois et le gain de requêtes avec Un index.Une question sur les index concernant le gain des insertions et mises à jour dans la base de données

La situation est, que j'ai deux tables, et Tableau 1 Table2. Chaque table se développe lentement mais régulièrement chaque mois (avec environ 100 nouvelles lignes pour Table1 et quelques lignes pour Table2).

Ma question concrète est d'avoir un index ou de le laisser tomber. J'ai fait des mesures qu'un index de couverture sur Table2 améliore mes requêtes SELECT et certaines plutôt mais encore une fois, je dois considérer le pour et le contre mais avoir vraiment du mal à décider.

Pour Tableau1 Il peut ne pas être nécessaire d'avoir un index car les requêtes SELECT ne sont pas communes.

J'apprécierais n'importe quelle suggestion, conseils ou juste de bons conseils à ce qui est une bonne solution. Soit dit en passant, je suis en utilisant la version IBM DB2 9.7 comme mon système de base de données

Sincèrement

Mestika

Répondre

2

Tout indice supplémentaire fera des insertions plus lentes et plus rapidement vos requêtes. Pour prendre une décision intelligente, vous devrez mesurer exactement de combien, avec la quantité de données que vous attendez de voir. Si plusieurs clients accèdent à la base de données en même temps, il peut être judicieux d'écrire une petite application multithread qui simule la charge maximale, à la fois pour les insertions et pour les requêtes.

Vos résultats dépendront de la nature de vos données et du matériel que vous utilisez. Si vous voulez connaître la meilleure réponse pour votre utilisation, il n'y a aucun moyen de tester vous-même avec précision vos données et votre matériel.

Ensuite, vous devez vous demander:

Quelles performances des requêtes ai-je besoin?
Si la performance de la requête est assez bonne sans l'index de toute façon, facile: N'ajoutez pas l'index!

De quelle performance d'insertion ai-je besoin?
Peut-il tomber en dessous de la limite nécessaire avec l'indice supplémentaire? Sinon, facile: ajoutez l'index!

Si vous constatez que vous avez absolument besoin de l'index pour les performances de la requête et que vous ne pouvez pas obtenir les performances d'insertion requises avec l'index, vous devrez peut-être acheter un meilleur matériel. Les disques à l'état solide peuvent faire des merveilles pour les serveurs de bases de données et ils deviennent abordables.

Si votre système fonctionne correctement pour tout le monde, ne vous inquiétez pas, laissez-le fonctionner tel quel.