Concevoir et développer pour la performance
- Eviter absolument les conflits et limites de ressource
- Ne pas penser que l'investissement en matériel va assurer les performances
- Penser en terme de ''passage à l'échelle``
- Comportement linéaire dans la charge de travail
- Spécificités internet
- disponibilité 24/24
- nombre d'accès imprévisible
- souplesse des requêtes
- Volatilité et exigence des utilisateurs (7s. d'attente au maximum)
- Concevoir/développer vite et bien !
- Causes de mauvaises performances
- Mauvaise conception, ou mauvaise implémentation
- Mauvais dimensionnement matériel
- Limitations logicielles : application, DBMS ou SE
Concevoir et développer pour la performance (cont.)
- Savoir répondre aux questions suivantes
- Combien d'utilisateurs à supporter ? très peu, peu à beaucoup, une infinité
- Quelle mode d'interaction ? Navigateur web ou application cliente personnalisée
- Où sont les utilisateurs ? (Temps de transfert réseaux)
- Quelle charge d'accès, combien de données en lecture seule ?
- Quel est le temps de réponse requis par les utilisateurs ?
- Quelle disponibilité requise par les utilisateurs ?
- Mises à jour en temps réel ?
- Quel taille à prévoir pour les données ?
- Quelles sont les contraintes budgétaires ?
Principes pour la conception
- Ne pas faire compliqué quand on peut faire simple
- Eviter les schémas ou requêtes incompréhensibles (utiliser des vues si besoin)
- Eviter les superpositions de couches logicielles
- Soigner la modélisation des données pour les parties principales
- Implémenter un schéma en 3NF au moins pour assurer la flexibilité
- Optimiser avec vues matérialisées, clusters, colonnes calculées
- Bien organiser les index
- Organiser des campagnes de tests crédibles facilitera le déploiement
fabien
2007-11-22