Bonjour,
Je bosse sur un projet COBOL/CICS/DB2V9 (V10 bientôt) sur ZOS. Ma boite (SSII) a décidé de mettre en place des accesseurs DB2. Le projet compte environ 3000 pgms et 1400 tables. La mise en place sera progressive.
Je conçois bien a quel point c'est séduisant pour un chef de projet (et un commercial). Et en laissant de coté ma mauvaise fois j'arrive même a voir des avantages pour les développeur.
J'ai également lu des articles de Craigs Mullins. L'article date pas mal les machines ont évolué. Je ne sais pas si les arguments de perfs sont valides.
(http://www.craigsmullins.com/dbu_0703.htm)
Résumé rapide: Evitez les accesseurs parce que:
* Les développeurs auront tendance a ignorer la complexité de ce qu'ils demandent a DB2. Et pour cause: ils le demandent a un programme. Mieux vaut éduquer les développeurs aux bonnes pratiques SQL.
* Avec le temps les accesseurs deviennent générique. Ils fetchent beaucoup de donnée inutiles. Soit parce que l'on ajoute des colonnes dans la clause select. Soit parce que l'on filtre dans le programme au lieu de filtrer dans la requête (concept de 3rd stage predicate qu'il développe dans un autre article). De plus les développeurs risquent de mettent en place des feintes dans les requêtes pour qu'une même requête puisse servir plusieurs fois. (mettre un prédicat qui évite d'évaluer un pan de la requête ds certains cas). En résumé cela pousse a l'utilisation de mauvaise pratiques.
* Il y a plus de code cela demande plus de CPU et c'est plus complexe a maintenir.
J'aimerais avoir votre avis sur le sujet ? En tant que dev ? En tant que DBA ?
Est ce qu'au niveau perf il y a un impact perceptible ?
Merci d'avance.
Partager