En lisant de nombreux articles sur le hub sur la migration rĂ©ussie d'Oracle vers PostgreSQL, un lecteur inexpĂ©rimentĂ© peut avoir l'impression que PostgreSQL n'est ni pire ni mĂȘme meilleur qu'Oracle. Et le choix est Ă©vident. Et les centaines de milliers d'entreprises qui finissent par payer des milliards de dollars Ă Oracle ne font que gaspiller leur argent. Mais je vais essayer de vous rassurer, oĂč, oĂč et dans les grandes entreprises, ils savent compter l'argent. Et leurs dĂ©cisions ne sont nullement erronĂ©es.
Le but de l'article est de créer un grain de doute dans l'ùme d'un lecteur qui essaie de faire un choix entre des bases de données relationnelles qui fonctionnent en mode versionné.
Pourquoi exactement le mode versionné? Ici, le choix n'est pas grand, mais dans les bloqueurs, il y a de dignes concurrents et le choix est encore plus difficile (combien coûte la version gratuite de DB2 pour les petites bases de données?)
Je ne suis pas un expert de la base de données Oracle, bien que je travaille avec cette base de données depuis de nombreuses années et pas seulement avec. Tout ce que je peux faire, c'est utiliser ses avantages et atteindre des performances optimales. De plus, je ne suis pas un expert PostgreSQL (je ne l'ai jamais utilisé en production).
Lire des articles sur une migration rĂ©ussie - Je comprends que ces entreprises n'avaient mĂȘme pas besoin d'Oracle ou que la base de donnĂ©es avait initialement Ă©tĂ© mal sĂ©lectionnĂ©e. Ils n'ont utilisĂ© qu'une petite fraction des capacitĂ©s de cette base de donnĂ©es. Ce n'est qu'ainsi qu'ils pouvaient prendre une dĂ©cision sur la migration et la mettre en Ćuvre. Simplement, si vous utilisez toute la puissance de cette base de donnĂ©es, vous n'aurez jamais envie de migrer car cela revient Ă Ă©crire votre application Ă partir de zĂ©ro.
Parlons enfin des avantages de performances qu'Oracle offre et, sur la base de ces informations, vous trouverez la rĂ©ponse par vous-mĂȘme.
- Partition (8i) . Partition - permet la croissance du volume de donnĂ©es avec pratiquement aucun effet sur les performances globales. Un bonus agrĂ©able et important est le partitionnement des index. Les partitions PostgreSQL n'apparaĂźtront que dans la version 10. Avant cela, l'hĂ©ritage (HĂRITAGES) est un hack sale. Et les capacitĂ©s de partitionnement d'Oracle augmentent avec chaque version.
- Fusionner (8i) . Oui, oui, la mĂȘme fusion qui a Ă©tĂ© dans MSSQL pendant de nombreuses annĂ©es (2008) et qui n'existera mĂȘme pas dans PostgreSQL 11. Elle donne une multiplication par dix de la vitesse par rapport aux opĂ©rations individuelles. Oui, je sais que PostgreSQL prend en charge les sous-requĂȘtes et vous pouvez tout implĂ©menter via Insert Select et la mise Ă jour dĂ©licate. Mais c'est loin d'ĂȘtre pareil.
- RESULT_CACHE (Sélectionnez) (11g). Chez Oracle, cette technologie est apparue relativement récemment. Si vous utilisez cette technologie à bon escient - cela donne un gain à certains égards des dizaines ou des centaines de fois. L'essentiel est d'apprendre à l'utiliser intelligemment.
- Option INMEMORY ( 12 ) Il n'y a pas d'analogue dans PostgreSQL. Une croissance rĂ©elle sur certaines requĂȘtes des centaines de fois.
- Optimiseur + optimisation des requĂȘtes . Ă partir de 11g, il s'est transformĂ© en presque un clic suivant-> suivant dans EM. PostgreSQL est plus compliquĂ© avec cela et le manque d'un homologue EM en gĂ©nĂ©ral est assez inconfortable.
PL / SQL. Oui, je connais la variété des langages de PostgreSQL. Mais Oracle améliore constamment le langage en mettant l'accent sur les performances.
- Compilation . Le bycode se produit lors de la sauvegarde (dans PostgreSQL lors du premier appel de la session + plan de requĂȘte lors de la premiĂšre exĂ©cution). Ă partir de 10g, Oracle peut compiler en code natif.
- Native Integer - accĂ©lĂšre considĂ©rablement le travail avec les nombres. PostgreSQL peut utiliser d'autres langages plus appropriĂ©s (traducteurs). Dans Oracle, cela peut Ă©galement ĂȘtre rĂ©solu en utilisant Java et C.
- Changer le «contexte» de PL / SQL. Oracle est trÚs soucieux d'optimiser cette métrique, de l'améliorer d'une version à l'autre. Pour réduire les retards Changer de «contexte» propose BULK COLLECT et FORALL et plus encore.
Compte tenu de l'Ă©tat des langages PostgreSQL, cette tĂąche n'est pas du tout importante Ă ce stade. - Cache de rĂ©sultat (fonction) (11g) Avec une utilisation appropriĂ©e, la rĂ©activitĂ© de l'application dans son ensemble peut augmenter plusieurs fois sans nĂ©cessiter beaucoup d'efforts. Sur certaines requĂȘtes, des dizaines de fois.
Eh bien, comme on dit, le diable est dans les détails, et Oracle a beaucoup mieux travaillé ces détails. Oracle ne cesse de surprendre avec chaque version. Et peu importe à quelle base de données vous transférez aprÚs Oracle - vous aurez toujours le sentiment: Eh bien, bon sang, depuis longtemps Oracle, ou dans Oracle c'est mieux fait.
Je suis presque sĂ»r qu'avec le mĂȘme matĂ©riel et en utilisant toutes les fonctionnalitĂ©s de PostgreSQL et Oracle, vous pouvez obtenir de meilleures performances, avec moins d'efforts sur ORACLE.
PS En aucun cas ne considérez cet article comme une base de données PR Oracle.
Je comprends bien qu'il y a toujours des choses qui sont mieux faites dans PostgreSQL. Mais en général, Oracle dans ce segment de la base de données numéro 1.
Je n'ai pas spĂ©cifiquement abordĂ© les choses liĂ©es Ă l'administration. Imaginez simplement que vous pouvez transfĂ©rer le fichier de date d'un disque Ă l'autre ou restaurer le «bloc cassé» Ă l'Ă©tat En ligne. Et vous pouvez effectuer la transition vers de nouveaux serveurs sans arrĂȘter la base de donnĂ©es. Et ce ne sont pas de nouvelles fonctionnalitĂ©s. Chez Oracle, tout va bien mieux lĂ -bas, et je ne suis pas administrateur de base de donnĂ©es.
Auparavant, quelque part jusqu'Ă la version 10, l'administrateur Ă©tait presque toujours nĂ©cessaire. Maintenant, le besoin d'administrateur a considĂ©rablement diminuĂ©, bien que les qualifications de l'administrateur soient dĂ©sormais plus Ă©levĂ©es. Peut-ĂȘtre que dans la version 15, le concept de base de donnĂ©es «admin» appartiendra au passĂ© :)
Oui, et Pl / SQL est plus réfléchi que les autres, bien que ce ne soit bien sûr pas C # :). C'est vrai, c'est purement individuel.
Eh bien, je n'ai pas abordé les choses qui aident mal à la vitesse.
PSS Et oui, je me souviens à peine de toutes les possibilités. Seuls ceux qui étaient à la "surface" ajoutent donc dans les commentaires. Je vais inclure dans la mise à jour.