Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/10/2011, 21h46   #1
Membre confirmé
 
Avatar de Pierre8r
 
Homme
Inscription : octobre 2004
Messages : 477
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2004
Messages : 477
Points : 225
Points : 225
Envoyer un message via Skype™ à Pierre8r
Par défaut Si vous maitrisez un ORM, y a-t-il des cas où vous préférez ne pas utiliser d'ORM ?

Bonjour,

Si vous maitrisez un ORM, y a-t-il des cas où vous préférez ne pas utiliser d'ORM, et donc de développer en SQL je pense ?

Merci,
__________________
Pierre8r
Pierre8r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 00h38   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Oui.
Je préfère nettement maîtriser la partie SQL de mes programmes et je fais l'architecture de la BDD avant le programme ; pas question que ce soit l'ORM qui crée les tables !
En plus les ORM semblent avoir la mauvaise manie de vouloir réinventer un pseudo SQL pour faire les requêtes par morceaux et il est bien plus rapide de faire la requête en SQL natif et demander à l'outil du programme qui s'interface avec le SGBD (même si c'est un ORM) de lancer les requêtes écrites en SQL natif.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/10/2011, 01h08   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 958
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 958
Points : 17 789
Points : 17 789
Lisez ceci : http://img1.lemondeinformatique.fr/f...s-epaisses.pdf
Vous serez convaincu que le ORM constituent une véritable plaie en matière de performance et à long terme s’avèrent plus couteux à tous niveau (temps de codage, maintenance, performances...) C'est pourquoi on les qualifient de guerre du Vietnam !
En sus vous pouvez avoir une bonne indication des performances catastrophiques d'un ORM an lisant cet article : http://www.ormbattle.net/
Bref, un ORM comme nHibernate est 24 fois plus lent pour un simple INSERT que le SQL !!!

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 03/10/2011, 19h51   #4
Membre du Club
 
Inscription : décembre 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 36
Points : 63
Points : 63
et oui, c'est vraiment catastrophique.

Il y a 20 ans on programmait avec de l'IMS et du PL1 et ca dépotait severe
Apres on a fait du Cobol avec du DB2 et du relationnel, c'etait plus lent mais ca allait encore.
Apres on a fait du java et c'etait lent.
Maintenant on a ajouté des ORMs et là sur des machines surpuissantes, j'ai des batchs qui tournent aux memes vitesses qu'il y a 20 ans sur des machines équivalentes à des Pentium 75 Mhz avec 8Mo de RAM.

Il y a 4 ou 5 ans, j'avais un collegue qui vient tout fier me dire j'ai un batch qui insere 160000 lignes de données et qui fait des calculs de cumul de CA en 10 minutes...
Super j'ai pris le meme fichier, j'ai fait un batch Cobol, ca faisait la meme chose en 38 secondes chrono...
Vive le progres !
zOS19 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/10/2011, 21h08   #5
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 641
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 641
Points : 2 634
Points : 2 634
En même temps les ORM n'ont jamais été fait pour faire des pgm batch.

Ils ont leur utilité quand on traite 1 élément (ligne), en facilité de dev.

Par contre au delà de ça je préfère utiliser du sql.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 23h21   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par punkoff Voir le message
Ils ont leur utilité quand on traite 1 élément (ligne), en facilité de dev.
Et voilà ! Ça ne sert qu'à ça ! et encore, comme j'ai dit plus haut, c'est plus rapide d'écrire une requête SQL qu'avec le pseudo SQL saucissonné des ORM !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 00h18   #7
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Et encore, sur un applicatif tout le SQL devrait être dans des vues et procédures stockées, l'application n'appelant que ces dernières en envoyant simplement des paramètres.
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 11h22   #8
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 641
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 641
Points : 2 634
Points : 2 634
Citation:
Envoyé par CinePhil Voir le message
Et voilà ! Ça ne sert qu'à ça ! et encore, comme j'ai dit plus haut, c'est plus rapide d'écrire une requête SQL qu'avec le pseudo SQL saucissonné des ORM !
Ne vous en déplaise le gain de temps pour gérer des CRUD basic n'est pas à négliger.

Vu que vous n'avez strictement aucune requête à écrire, pas de synchronisation d'objet pour changer de couche, etc.

Je veux bien qu'on tappe dessus, mais il faut quand même rester objectif sur les possibilités qu'offre un ORM.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 15h54   #9
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
Un ORM n'est qu'un outil : il ne faut pas le rendre responsable des manquements de ceux qui l'utilisent à tort et à travers.

Toutes les applications ne bénéficient pas d'un ORM (et même dans une application toutes les fonctionnalités) : les détracteurs ont tendance à prendre des exemples où l'intérêt d'utiliser un ORM est plus que discutable.

Et s'il y a bien un manquement chez les vendeurs d'ORM, c'est de n'offrir aucune méthodologie qui permette de distinguer clairement les conditions "GO - NO GO".
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 17h02   #10
Membre chevronné
 
Avatar de Jester
 
Inscription : septembre 2003
Messages : 624
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 624
Points : 633
Points : 633
En même temps c'est un forum SGBD ...

C'est comme proposer un language de script sur un forum C++.

Je dirais que peut importe la technologie, ce qui compte c'est la personne qui l'utilise.

L'ORM comme le fait de développer énormement dans le code vient des lacunes des bases de données pour gérer les développements quoiqu'en disent les évangélistes SGBD.

Et comme les SGBD ne sont pas des plateformes de développement acceptables, on a tendance à ne les utiliser que pour le stockage. Parce que pour des consérations de gestion de projet, ça enlève une techno finalement peut compatible avec les autres (quand vous débuggez un code en Java et qu'il apelle une procédure stockée, vous ne pouvez pas entrer dans cette procédure) et surtout qu'en général personne n'a les deux compétences (SQL + le language de dev).

J'ai vu un exemple où la majorité du code métier était en SQL et ça n'évite en rien les dérives.
Jester est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 06/10/2011, 17h38   #11
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
J'ai vécu quelques mésaventures avec Hibernate utilisé par le framework Seam l'an dernier.
Un exemple de ce que je disais ici plus haut : c'est plus facile en SQL pur ! Vous pouvez lire toute la discussion si ça vous intéresse pour comprendre la galère ce cette usine à gaz !
Un autre exemple sur la soi-disant facilité apportée par l'automatisation du mapping ! Et dans la même discussion, encore un exemple concret d'une requête un peu complexe impossible à faire avec Hibernate et relativement facile à faire en SQL pur.
Citation:
Envoyé par CinéPhil
La grosse requête SQL, impressionnante en apparence par le nombre de ses jointures, je l'ai écrite en 5 minutes, débuggage des fautes de frappe compris !
La moindre requête en java me prend des jours ! Galère !
Je ne retrouve pas rapidement le lien mais il me semble aussi avoir remarqué que Hibernate interrogeait des tables de la BDD dont je n'avais pas besoin. Autrement dit, il complique inutilement les requêtes pour traficoter les données comme bon lui semble !

Bref, après quelques mois de galère, j'ai redéveloppé entièrement le projet en PHP avec Zend Framework pendant ma semaine de vacances de Noël et avec des modèles plus simples et des requêtes en SQL natif.

Pour ne pas parler que de mes mésaventures avec Hibernate, j'ai aussi vu récemment plusieurs messages de personnes qui avaient des problèmes pour faire fonctionner, ou simplement écrire, des requêtes relativement simples avec Doctrine.

Non vraiment, jusqu'ici, je n'ai vraiment pas vu grand chose de positif aux ORM que j'ai rencontrés !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 20h48   #12
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 641
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 641
Points : 2 634
Points : 2 634
C'est pour ce genre de problème que l'on met en place un projet avec ... un architecte java.

Je ne dirais pas le contraire qu'un orm te bride d'une certaine manière sur les possibilités de modélisations.

Après selon le projet, ce bridage est plus ou moins critique, et le contournement peut ou non être acceptable.

Faut pas oublier quand même que tu peux mapper des vues ... déporter les traitements de type batch / complexe dans des procStock, etc...

Mixer les deux approches n'est pas si débile en soit il faut juste avoir une équipe qui tienne la route => laissez les traitements simple à l'orm, ensuite déporter les requêtes / objet complexe dans des vues et si vraiment nécessaire faire des traitements via proc-stock / pgm batch appelé via proc-stock.

Fin bref, je suis assez d'accord sur l'interprétation de JeitEmgie et un peu sur celle de Jetser.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h08.


 
 
 
 
Partenaires

Hébergement Web