12
votes

Est-ce que de grands sites Web à fort trafic utilisent des ormes?

J'ai finalement décidé d'aller avec le cadre d'entité car il a la meilleure performance de tous les orateurs. Mais avant de commencer à lire et à écrire du code, je veux juste savoir s'il existe des sites Web élevés qui utilisent des ormes.


9 commentaires

Je ne pense pas que ce soit vrai; Avez-vous regardé llblgen? Comment avez-vous décidé qu'il a la meilleure performance?


Oh..Je viens de faire beaucoup de recherche en ligne et de regarder des repères. Tout le monde, en ligne dit que les frameworks d'entité surpassent tout autre orj sur .NET. Pouvez-vous suggérer un orm que uotperfoms ef?


Il ne répond pas qui a la meilleure performance, mais cela vaut la peine de lire par rapport à la question: Stackoverflow.com/cevestions / 451845 / ORM-PERFORMANCE-COÛT


Je soulevais ma main et appelez BS sur n'importe quel site indiquant "EF surperforms tout autre orm".


Wow peut-être que j'aurais dû avoir encore plus de recherches. Je suis intéressé par le Llblgen. Est-ce efficace et puis-je le mettre dans mon dal. Aussi, y a-t-il de bons livres là-dessus?


Je serais intéressé par le nombre de serveurs de ces sites Web de trafic élevés, car ils utilisent un orj. Si j'ai 10 serveurs pour mon site Web, les performances peuvent ne pas être aussi grossibles, mais que ORM serait la meilleure à utiliser pour un site Web à haute circulation à l'aide d'un seul serveur Web.


Au lieu d'une quête de "Teh le plus rapide Orm", choisissez-en un qui semble être assez bien considéré et monté bien avec vos besoins et commencez à écrire. J'appelle BS sur le choix ORM finissant par votre goulot d'étranglement sur la route.


Une définition du site Web «du trafic élevé» pourrait être utile.


La performance est relative, différents ormes effectuent différemment en fonction des caractéristiques d'utilisation. La base de données est-elle grande ou petite? Combien de joints / tables / relations? Avez-vous presque seulement sélectionné ou avez-vous une quantité importante d'inserts ou de mises à jour aussi? Un site d'informations sur le trafic élevé aura des caractéristiques différentes d'un site forum / collaboration élevé (BBC.CO.UK! = EN.Wikipedia.org), donc j'appelle BS sur n'importe quel appartement "orm x est la" déclaration "la plus rapide" t qualifié avec des repères complets.


6 Réponses :


6
votes

Je sais dans l'un des podcasts, Jeff a mentionné que Stackoverflow utilise LINQ-TO-SQL


0 commentaires

13
votes

Actuellement, la version publiée de EF, V1.0 in .NET 3.5, présente des performances terribles. J'ai fait des tests approfondis et j'ai eu plusieurs longues discussions de courrier électronique avec Microsoft sur le sujet il y a plus d'un an, lorsqu'il a été publié pour la première fois. L'efficacité actuelle d'EF a beaucoup à désirer et, dans de nombreux cas, peut générer des requêtes SQL absolument atroces qui décimrent votre performance.

Entity Framework v4.0 in .NET 4.0 est beaucoup mieux. Ils ont fixé la plupart, sinon tous, des problèmes de génération de SQL pauvres qui pèsent sur EF V1.0 (y compris les problèmes que je leur ai présentés il y a un an.) Si EF v4.0 a la meilleure performance est vraiment à voir. Il est plus complexe que Linq à SQL, car il offre une plus grande flexibilité plus grande. Comme une version de version n'est pas encore disponible, il est impossible de dire si EF v4.0 sera le plus rapide ou non.

Une réponse objective à cela nécessiterait une comparaison oliaxée objective entre les principaux contendeurs Orm, tels que EF, Linq à SQL, NHibernate (de préférence avec un fournisseur LINQ), LLBLGEN et même certains des nouveaux clients, tels que Telerik's Orm, subsonique et similaire.

comme pour les systèmes de production à grande échelle et à grande volume utilisant ORM. Je suggérerais de regarder Stackoverflow.com lui-même, qui utilise Linq vers SQL. Donc, est devenu l'un des, sinon les communautés de programmeurs sur Internet. Volume certainement élevé ici, et ce site effectue merveilleusement. Quant à d'autres sites, je ne pouvais pas vraiment dire. Les détails de la mise en œuvre interne de la plupart des applications Web majeures sont généralement un mystère. La plupart des utilisations de ORM que je connais sont également pour les systèmes internes d'entreprise. Systèmes financiers, soins de santé, etc. Les bases de données d'objet sont également utilisées dans les mêmes types de systèmes, bien qu'ils soient beaucoup moins fréquents. Je voudrais donc des recherches sur les sites Web d'utilisation orm et de volume élevé.

Une chose à noter dans votre recherche. Assurez-vous que les commentaires que vous trouvez sont à jour. La scène ORM a beaucoup changé au cours des deux dernières années. Les performances, l'efficacité, les capacités, la capacité de réglage de la SGBDS de Dynamic SQL, etc. sont tous améliorés de manière significative depuis que ORM a été créée il y a environ une décennie.


2 commentaires

C'est étrange, mon expérience de l'EF était-elle produite des requêtes très optimisées, en particulier avec des jointures, comparées à NHibernate Au moins.


Si je pouvais creuser, j'ai plusieurs threads sur l'ancien forum EF MSDN qui démontrent une partie de la génération SQL vraiment atroceuse que EF v1.0 avait. J'ai comparé la SQL générée de L2S à celle de EF, et non seulement la SQL est une monstruosité de plusieurs niveaux de sélection imbriquée, rejoint sur NULL et d'autres crud gallon ... il a effectué environ 10 ordres de grandeur pire que la requête L2S . Dans un cas, j'essayais de sélectionner 90 enregistrements d'une jointure sur quelques centaines. La requête EF s'est jointe à telle sorte que SQL Server ait dû filtrer 50 milliards de lignes virtuelles en interne.



3
votes

Bien que de ne pas adresser directement à quel orj est plus rapide comme Ayende (Auteur de Nhibernate) peut être très facile à faire de mal à faire ou au moins inclinant la façon dont vous le souhaitez, voici des applications qui utilisent Ormes dans le cadre de leur Applications.

Twitter est (était?) Utiliser Ruby sur Rails (ROR) qui utilise un orj. Le 37 signal Les gars utilisent ror pour leurs applications ... Je sais que ce n'est pas .net mais comme mentionné par Kuoson, L2S est employé de manière et il y a beaucoup de gens là-bas à l'aide de NHibernate comme Jeffrey Palermo et Headspring. Je ne serais pas surpris de trouver de nombreuses applications Web récemment développées utilisent un orj.

Même si une orèse vous coûte un coup de contact sur la performance, la plupart des ORM vous permettent de personnaliser le SQL utilisé si nécessaire. La plupart suggèrent d'utiliser l'ormes, puis de fixer des goulots d'étranglement comme ils se présentent. De plus, une bonne orje résolve tellement pour vous que l'écriture de votre propre dal devienne une vente beaucoup plus sévère ces jours-ci.


2 commentaires

Twitter s'est éteint de ROR pour son traitement de backend, principalement pour des raisons de performance.


Vrai, mais cela ne signifie pas que les ormettes ne peuvent pas effectuer. :)



4
votes

Jrista a raison. Je veux juste ajouter que vous devriez considérer sérieusement que Linq à SQL. D'une simplicité et d'un point de vue de la performance, c'est la meilleure technologie (pour l'instant). C'est très rapide et raisonnablement capable de sortir de la boîte. Si vous souhaitez améliorer encore LINQ vers SQL, consultez le PLINQO Framework .

plinqo est un cadre qui se trouve autour de Standard Linq à SQL et ajoute une tonne de fonctionnalités, notamment des opérations en vrac très élégantes et des fonctionnalités de mise en cache. Le mieux de tout plinqo s'adapte aux modifications de votre schéma de base de données, mais conserve votre code personnalisé. Qui est très slick et, à mon avis, l'aspect le plus précieux.


2 commentaires

Plinqo n'est pas gratuit et Linqtosql a beaucoup de problèmes. Subeonique offre une grande simplicité gratuitement. Nibernate Balances gratuitement.


Ouais, Plinqo est gratuit. CodeMith n'est pas, si c'est ce que vous voulez dire



2
votes

Bien sûr, Reddit utilise des parties de Sqlalchemy (pour des raisons inconnues, je crois qu'ils le réécrit le plus: /). La plupart, sinon tous les grands sites Web de Django, utilisent l'orme (y compris l'ancien peluche et la malédiction).


0 commentaires

6
votes

Les vraiment les sites Web à fort trafic sont en fait en train de s'éloigner des bases de données SQL car avec des charges de travail robustes écrites courantes dans les applications d'aujourd'hui, il est presque impossible de leur faire échouer au-delà d'une machine, ou non de l'or. . Cela a été surnommé " Mouvement NOSQL "

Cependant, alors que c'est un sujet très à la mode, c'est Complètement sans importance Pour les sites qui n'ont pas de milliers d'utilisateurs concurrents actifs. Et se préoccupant de la performance ORM est une question similaire: la plupart des sites ne sont pas en fait de «trafic élevé» suffisamment pour qu'un ormisse de devenir un problème (sauf grossement malimité ou -applied).


1 commentaires

J'aime cette réponse parce que c'est différent du reste.