IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Amazon envisage d'abandonner complètement les SGBD et services d'Oracle d'ici 2020
Oracle serait incapable de répondre à ses besoins de performance

Le , par Stan Adkens

660PARTAGES

19  0 
Pour rappel, Oracle a enregistré déjà des départs de clients à cause de ses tactiques de vente agressives, menaçant les clients de ses logiciels sur site avec des audits d'utilisation potentiellement coûteux et proposant fortement la migration vers sa solution cloud comme une panacée à leurs problèmes. Par ailleurs, d’après les résultats d’une étude réalisée en avril par Jefferies & Company, Oracle s’est fait surclasser sur le marché des infrastructures et plateformes en tant que services (IaaS / PaaS) par Amazon, le leader du marché du cloud, Microsoft et autres. L’annonce de JP Morgan du mois de juin dernier selon laquelle Oracle serait en train de perdre la faveur des acheteurs de technologies pour des principaux fournisseurs de solutions de cloud computing participe à ce que l’on pourrait qualifier de chute de la société de Redwood Shores.

Oracle serait devenu l’un des rivaux d’Amazon, le leader du marché du cloud computing, à cause de ses prouesses en la matière, selon CNBC. Amazon prévoit, par ailleurs, abandonner complètement les logiciels d’Oracle d’ici 2020. La raison principale serait l'incapacité de la technologie de base de données à évoluer pour répondre aux besoins de performances d'Amazon, selon une personne qui a connaissance du dossier. Le plan de retrait intervient aussi dans un contexte où la plupart des infrastructures ont été transférées en interne à Amazon Web Services. La séparation d’avec Oracle serait effective en mi-2019, a déclaré une autre source, qui selon elle, il n’y existerait pas de développement récent de nouvelles technologies basées sur Oracle.


Pour cette raison, Amazon qui avait déjà commencé à déployer ses propres infrastructures en interne, envisage de se séparer complètement de son fournisseur de longue date en base de données sur site, Oracle, d'ici 2020. Ce probable arrêt est un signe de maturité de plus que laisse voir le géant du commerce électronique à ces concurrents. En effet, son fournisseur Oracle ne s’adapterait plus à ses besoins de performance de migration de ses charges vers le cloud abandonnant les solutions sur site d’Oracle.

Amazon doit cette performance à l'expansion d'Amazon Web Services qui lui a, par ailleurs, permis de surclasser Alphabet en début d’année pour devenir la deuxième entreprise cotée en bourse la plus importante au monde. Au second trimestre de cette année, AWS a enregistré une croissance de 49 %. Tandis que les résultats d’Oracle stagnent et les actions continuent de chuter.

Selon l’une des sources, il y a 4 ou 5 ans qu’Amazon a commencé sa migration. Néanmoins, une partie de ses activités de base est toujours hébergée sur Oracle le temps de mener à bien la transition vers ses propres infrastructures. Selon une source d’information, la migration complète interviendrait dans environ 14 à 20 mois.

Toutefois, l’infrastructure d’Amazon n’est pas sans reproche. Une panne d'un programme interne appelé Sable, utilisé par Amazon pour fournir des services de stockage à ses entreprises de détail et numériques a entrainé de nombreuses erreurs lorsque les clients essayaient d’accéder au site lors du Prime Day d'Amazon, le mois dernier, selon CNBC.

A propos des efforts fournis par Amazon pour son autonomie complète, Larry Ellison, président exécutif et directeur technique d'Oracle Corporation objecte en déclarant : « Laissez-moi vous dire qui ne quitte pas Oracle », a déclaré Ellison. « Une société dont vous avez entendu parler nous a donné ce trimestre 50 millions de dollars supplémentaires pour acheter une base de données Oracle et d’autres technologies Oracle. Cette société est Amazon. », a-t-il ajouté, infirmant ainsi les déclarations selon lesquelles Amazon s’apprêterait à se séparer d’avec les solutions Oracle. Ellison a poursuivi, par ailleurs, en soulignant que « les concurrents, qui n’ont aucune raison de nous aimer beaucoup, continuent d’investir et de gérer l’ensemble de leurs activités sur Oracle ».

Les dirigeants d’Amazon continueraient d’investir dans la technologie d’Oracle selon un communiqué d’un porte-parole d’Oracle. Selon Oracle, Amazon ne serait pas prêt pour que ses gros clients puissent migrer vers sa plateforme.

Amazon a réagi aux attaques de son fournisseur de base de données sur site pour défendre son infrastructure. Ses dirigeants ont loué, en 2017, les avantages de coût de l'utilisation du logiciel de base de données d’Amazon. Dans une riposte, le PDG d'AWS, Andy Jassy, a affirmé qu'Oracle était « très loin dans le cloud ».

Cette guerre des mots a commencé avec le lancement d’Aurora, le service de base de données relationnelle d’Amazon ainsi qu’un outil permettant aux entreprises de déplacer des bases de données vers le cloud qui visent le marché d’Oracle et qui attitreraient déjà certains de ses clients.

Cette guerre pourra durer encore longtemps, cependant depuis lors, Oracle n'a pas réussi à conquérir des parts de marché notables dans l'infrastructure cloud. AWS est en tête sur ce marché et est suivie par Microsoft, Google, Alibaba et IBM.

Source : CNBC

Et vous ?

Qu’en pensez-vous ?
Amazon est-il prêt pour son autonomie vis-à-vis de son fournisseur Oracle ?

Voir aussi

Les clients d'Oracle seraient en train de migrer vers SQL Server et d'autres SGBD, Oracle perdrait du terrain sur tous les fronts selon des analystes
Les techniques de vente agressives d'Oracle s'avèrent contre-productives, elles ont tendance à chasser certains clients
Gartner : Le marché des logiciels d'infrastructures et middleware en croissance en 2017, IBM en tête suivi par Oracle et Salesforce

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Anselme45
Membre extrêmement actif https://www.developpez.com
Le 03/08/2018 à 15:21
Citation Envoyé par Mat.M Voir le message
ce qu'il faut en penser ?
moua ha ha je me marre je me marre...
les entreprises qui ont basé leurs système d'information sur cette solution technologique si elles choisissent de changer de techno (indépendamment de l'éditeur Oracle) eh bien le risque c'est de devoir refaire les projets info de A à Z donc ça fera du boulot pour les programmeurs mais une charge pour les entreprises.
Refaire le projet de A à Z? Rien que cela?

Pour info, les "SGBD Oracle", ce n'est rien d'autre que de la base de données SQL! A part de rares exceptions où il serait fait appel à des concepts très exotiques propres à Oracle, le remplacement d'une "SGBD Oracle" par une autre solution de base de données SQL se fait sans problème et surtout en refaisant le projet de la lettre A à ... La lettre B! Pas besoin de passer en revue les 26 lettres de l'alphabet
5  0 
Avatar de pachot
Expert éminent https://www.developpez.com
Le 05/08/2018 à 21:31
Bonjour,

Ce sont des annonces politiques et marketing faites par des companies rivales, bien loin des réalités techniques. C'est trés bien pour la compétition qui fait évoluer les produits. Mais l'inconvénient c'est que, comme toutes les startups et PME on l'habitude de s'identifier avec les géants, tout le monde pense pouvoir faire pareil.

La raison invoquée dans l'article est l'incapacité à suivre la charge:
The primary issue Amazon has faced on Oracle is the inability for the database technology to scale to meet Amazon's performance needs, a person familiar with the matter said.

S'il y a une chose où Oracle a fait ses preuves, c'est sur les très grosses bases critiques (telecom, aerien, retail, CERN, ...). Personne ne peut concurrencer Parallel Query, Partitioning, RAC pour ces très grosses bases.

Le marketing BigData et NoSQL a fait croire que le SQL est dépassé:
Citation Envoyé par commandantFred Voir le message
les disques durs font 4 To et que SQL s’accommodait mieux de volumes 10 à 50 fois inférieurs à ceux qu'on rencontre aujourd'hui. Alors "technologie déclinante" ?
Un peu à cause de sa gestion des index trop aléatoire et l'impossibilité jusqu'ici de mettre une clause WHERE dans un CREATE INDEX (le vieux Xbase le faisait pourtant...)
SQL reste génial mais les gros volumes d'hier sont devenus petits et les SGBD ne sont plus la chasse gardée des deux premiers éditeurs mondiaux. A bons entendeurs, salut.

La particularité du SQL est qu'il travaille sur des ensembles de donnée et non ligne à ligne. Il est basé sur des concepts mathématiques. C'est un language de 4ème génération - un des seul en production aujourd'hui. Il est loin d'être dépassé par des langages de 3ème génération et des modèles hierarchiques (comme OO, XML, JSON) qui ont montré leurs limites il y a 30 ans, d'où l'invention du relationnel. D'ailleurs, Hadoop, Kafka,... se mettent au SQL. L'approche ensembliste est nécessaire aux gros volumes.

@commandantFred J'aimerais bien voir la question sur les 'index trop aléatoires' et les index partiels dans le forum pour répondre la dessus.

Certains pensent que la migration d'un SGBD à l'autre est facile. C'est loin d'être le cas dès qu'on a une application serieuse, multi-utilisateurs, avec un grand historique de données.

Citation Envoyé par Anselme45 Voir le message

Pour info, les "SGBD Oracle", ce n'est rien d'autre que de la base de données SQL! A part de rares exceptions où il serait fait appel à des concepts très exotiques propres à Oracle, le remplacement d'une "SGBD Oracle" par une autre solution de base de données SQL se fait sans problème

Non, même les comportements les plus basiques sont très différentes. Un simple SELECT va verouiller sur certains SGBD, pas sur d'autres, et ne va pas montrer les mêmes données dès qu'il a d'autre utilisateurs en train de faire des modifications. C'est peut-être acceptable pour une appli simple et non-critique, mais pas pour un ERP. Et il est certain que si le but n'est d'utiliser que les fonctionnalités qui se trouvent dans SQLite, il ne faut pas acheter Oracle

Citation Envoyé par Saverok Voir le message
C'est surtout si le projet contient des procédures stockées qu'il y a du taff.
Par contre, pour le SQL de base, c'est particulièrement basique.

Au contraire, lorsque les accès à la base sont encapsulés dans des procédures, il est facile de les réécrire dans une autre langage. Et de tester les procédures de manière unitaire. Lorsque le code applicatif attaque directement les tables, c'est plus compliqué. Le but des vues et des procédures stockées est justement d'avoir une application (couches présentation et parfois business) indépendente de la plateforme.

Citation Envoyé par hotcryx Voir le message
Tout refaire? Non dans le cadre d'un projet classique c'est le plus facile à changer.
Ce n'est qu'un SGBD.
Il y a sacré panel de SGBD SQL (Sql Server, MariaDb, Postgress SQL...).

Ils ont tous des comportements différents, visibles dans les performances mais aussi dans les données. Le travail gigantesque de migration n'est pas dans la réécriture du code mais dans les tests. Et peu d'éditeurs de logiciel on envie de se lancer dans ce travail. Sans parler de l'immense effort de re-design qu'il faudra faire pour retrouver des performances correctes car l'optimiseur d'oracle a, au fur et à mesure des version, intégré plein de workarounds pour des problèmes de performance applicatif. Les vendeurs de progiciels y réfléchissent, mais la réalité les ralentit. Le coût de développement peut être monstueux si l'on compare avec une application APEX par exemple.

Puisque Amazon invoque des limites de performances, il s'agit d'un use-case bien précis où le relationnel a ses limites et où il faut troquer la flexibilité pour une solution dédiée. Ce qu'ont développé Google, Amazon, Facebook... dans des domaines précis est très bien. Mais penser qu'on peut faire pareil pour toutes les applis de toutes les entreprises est utopique. Un exemple: Google a développé Spanner pour remettre un peu de SQL et de relationnel dans son BigTable lorsque le NoSQL a montré ses limites. Mais il n'y a pas de types de donnée décimale. Ca ne pourra jamais remplacer un SGBDR existant sauf pour quelques cas particuliers. Vers PostgreSQL, d'autres problèmes: PostreSQL ne fait pas d'updates mais recopie toute la ligne. Un appli qui fait beucoup de mises à jour ne sera jamais scalable. Et pas d'opérations online: maintenance difficile sur une appli 24/7. Et les autres SGBD où les lectures bloquent les écritures. Il faudra tout réécrire sauf si l'application n'a qu'un seul utilisateur.

Cordialement,
Franck.
4  0 
Avatar de pachot
Expert éminent https://www.developpez.com
Le 06/08/2018 à 19:06
Bonjour,

>> théorie des ensembles qu'on a tous appris en 6eme
On va un peu plus loin quand on y ajoute des notions de transaction, cohérence de données,... La base mathématique de l'algèbre relationnelle est à mon avis la raison pour laquelle elle dure plus longtemps que les autres modes (des souvenirs des SGBDOO?) est n'est pas liée à l'époque ou au volume.

>> NoSQL ... pour faire sauter les goulots d'étranglement de SQL
Le retour aux modèles hierarchiques (car pas de jointure) et L3G (procédural) a été nécessaire pour des cas très particulier. Un peu comme certaines applis ont toujours des modules en assembleur pour des parties très critiques en performance. Ces use-cases ont été intégrés dans les SGBDR (objet-relationnel, XML, JSON,...).

>> acrobaties absurdes, non-portables et ALEATOIRES dans leurs comportements
Non, pas aléatoire. Le choix de l'index est fait par l'optimiseur et est complètement déterminé par les moyens d'accès et des statistiques. C'est complètement deterministic, et c'est le seul moyen correct d'avoir un accès performant et prédictible sans avoir à coder chaque cas particulier.

>> index avait été désynchronisé
Quel SGBD? Je pensais que la maintenance des index était toujours synchrone.

>> VIEWS de n'avoir été implémentées que pour simplifier la SYNTAXE
Les vues c'est ni pour la syntaxe ni pour les perfs mais pour une vue logique indépendante de l'implémentation physique

>> les VIEWS mais aussi géniales soient elles, ce ne sont pas des indexes
Les vues matérialisées, elles sont très similaires: stockage redondant, synchrone ou asnychrone, optimisé pour certains types de requêtes.

>> WHERE dans le CREATE INDEX
ça existe sur plusieurs SGBD, pas forcément nécessaire sur d'autres (car partitionnement, materialized views, storage index). Mais surtout, c'est souvent le partitionnement qui répond au besoin d'indexation partiel. La taille d'un index B-Tree n'impacte pas (ou très peu - une page de plus à lire en cache) la performance d'accès par index.
Au passage, Oracle n'implémente pas les index partiels mais l y a des moyens de faire la même chose (cf. https://blog.dbi-services.com/postgres-vs-oracle-access-paths-iii/)

Maintenant, concrètement, cette requête sur 300 milliards de lignes:
- si on veut récupérer 10 lignes sur les 300M un index B-Tree est parfait pour ça. Disons au pire 5 branches d'index à lire puis 10 accès à la table. 15 x 8 millisecondes si rien n'est en cache et stocké sur un vieux disque mécanique. C'est moins que la latence réseau du 'client situé de l'autre coté de la planète'
- si c'est 1000 lignes, 10000 c'est linéaire. L'accès par index est proportionnel au nombre de lignes lues, pas à la taille de la table
- si on veut récupérer 10 milliards de lignes, pas besoin d'index. Full Table Scan ira beaucoup plus vite. Là ça dépend de la taille de la table et non plus du nombre de lignes retournées.
- 100000 lignes: covering index peut être utile (plus besoin d'aller voir la table pour chaque ligne)
- 500000 lignes: partitionnement. De toute façon, une table de plusieurs millions de lignes devrait être partitionnée déjà pour des raisons de performance.

C'est des exemples mais les SGBD se sont adaptés depuis longtemps (~ 20 ans) à ces volumes avec partitionnement, parallel query, compression,... Les SGBD les plus puissants on aussi du columnar store, storage index, pour ces use cases. Et un optimiseur qui va choisir le plan optimal en fonction du résultat demandé, car le développeur ne sait pas toujours combien de lignes seront retournées par une requête. cf. exemple de plan adaptif sur Oracle qui parle du point d'inflexion entre accès index v. full scan: https://blog.dbi-services.com/oracle...flexion-point/

Mais bien sûr, tout ce qu'on peut faire avec un L4G comme SQL peut se faire avec un L3G. Mais c'est un effort énorme, surtout si on tient compte de tout le cycle de vie des données (sécurité, disponibilité, backups, troubleshooting,...).

Cordialement,
Franck.
4  0 
Avatar de pachot
Expert éminent https://www.developpez.com
Le 07/08/2018 à 12:50
Alors pour ceux qui ont des doutes sur les performances de SQL sur des grosses tables, un exemple sur une base où je passais par hasard ce matin. Je n'ai changé que les noms de table/schema

La table fait 3.5 Tera, contient 400 millions de lignes:

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SQL> select num_rows,blocks from dba_tables where owner='XXX' and table_name='OP';


  NUM_ROWS     BLOCKS
---------- ----------
 398327400  236418039


Elapsed: 00:00:00.01


SQL> select blocks,bytes/1024/1024/1024/1024 TB from dba_segments where owner='XXX' and segment_name='OP';


    BLOCKS         TB
---------- ----------
 238309992  3.5510956
Un requête courante fait un accès par index comme celui-ci:
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11

SQL> select sum(length(data_segment)) from "XXX"."OP" where DECODE("REFERENCE",'0',"ENTITY","REFERENCE") between '000931151470664' and '000931181978026';


SUM(LENGTH(DATA_SEGMENT))
-------------------------
8854698


Elapsed: 00:00:04.03
Donc 4 secondes. Et voici le plan d'exécution avec les statistiques d'exécution:

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SQL> select * from table(dbms_xplan.display_cursor(format=>'allstats last'));


PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------
SQL_ID  cg9fkkb28t3xs, child number 0
-------------------------------------
select sum(length(data_segment)) from "XXX"."OP" where
DECODE("REFERENCE",'0',"ENTITY","REFERENCE") between '000931151470664'
and '000931181978026'


Plan hash value: 2490914298


-------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name                       | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
-------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |                            |      1 |        |      1 |00:00:04.02 |     610 |    608 |
|   1 |  RESULT CACHE                 | 4zy76myzu25zg9f8v75dy3awb0 |      1 |        |      1 |00:00:04.02 |     610 |    608 |
|   2 |   SORT AGGREGATE              |                            |      1 |      1 |      1 |00:00:04.01 |     610 |    608 |
|   3 |    TABLE ACCESS BY INDEX ROWID| OP                         |      1 |      6 |    604 |00:00:04.01 |     610 |    608 |
|*  4 |     INDEX RANGE SCAN          | AK1_OP                     |      1 |      6 |    604 |00:00:00.01 |       6 |      4 |
-------------------------------------------------------------------------------------------------------------------------------
C'est bien un accès à la table, par index. Seulement quelques pages lues (quelques pages d'index puis une page par ligne). Toutes lues sur disque ici. L'index B-Tree a une hauteur de 3 branches ici. Avec 300 milliard de lignes, il aurait peut-être une hauteur de 4 ou 5 -> juste une ou de page de plus à lire -> impact négligeable sur le temps d'exécution.

Et encore, on n'est pas en parallel query ici, il n'y a aucun partitionnement, aucune compression. On pourrait aller beaucoup plus loin. Et on est dans le cas le pire: rien encache (autant de 'Reads' que de Buffers') et lignes dispersées dans des blocs différents (Buffers=A-rows). C'est une appli qui a plus de 15 ans, utilisée tous les jours et qui tourne sans aucune administration à part rajouter des datafiles, sur un vieux serveur!

Cordialement,
Franck.
4  0 
Avatar de Saverok
Expert éminent https://www.developpez.com
Le 03/08/2018 à 14:53
Citation Envoyé par Stan Adkens Voir le message
Qu’en pensez-vous ?
Travailler avec de gros éditeurs et tjrs une galère.
J'ai été en relation avec MS, SAP, Salesforce, Amazon, IBM et Oracle et le pire de tous est Oracle.
Ils sont d'une arrogance et d'une agressivité que je n'ai jamais vu ailleurs.
Tout est bon pour nous faire raquer et dans des proportions démesurées.

Côté SGBD, ça fait des années que tous les nouveaux projets auquel j'ai participé se font sous Pg et je participe de plus en plus à des projets de migrations d'Oracle vers Postgres.
Rien qu'avec les économies de licences, les ROI de ces projets de migrations sont phénoménaux.

Citation Envoyé par Stan Adkens Voir le message
Amazon est-il prêt pour son autonomie vis-à-vis de son fournisseur Oracle ?
Pas encore mais ça viendra
Amazon a les ressources pour y parvenir et ne l'a jamais caché.
3  0 
Avatar de Saverok
Expert éminent https://www.developpez.com
Le 03/08/2018 à 15:27
Citation Envoyé par Anselme45 Voir le message
Pour info, les "SGBD Oracle", ce n'est rien d'autre que de la base de données SQL! A part de rares exceptions où il serait fait appel à des concepts très exotiques propres à Oracle, le remplacement d'une "SGBD Oracle" par une autre solution de base de données SQL se fait sans problème et surtout en refaisant le projet de la lettre A à ... La lettre B! Pas besoin de passer en revue les 26 lettres de l'alphabet
C'est surtout si le projet contient des procédures stockées qu'il y a du taff.
Par contre, pour le SQL de base, c'est particulièrement basique.

Là où il y a du taf, c'est surtout du côté des administrateurs qui doivent revoir les proc de monitoring, de sauvegarde, d'indexation, vacuum, etc.
Rien de bien méchant mais parfois chronophage.
3  0 
Avatar de kilroyFR
Membre éprouvé https://www.developpez.com
Le 29/11/2018 à 13:32
Citation Envoyé par pachot Voir le message
Passer sur des solutions propiétaires AWS impose de rester sur le cloud.
Oui (petite parenthese) vecu a titre personnel dans une association (internationale) a laquelle j'appartiens.
On est passé d'une solution avec hebergement classique (serveurs chez BigDaddy) a plusieurs centaines de $ a l'année a une solution complete toute hebergée dans AWS a 10 000 $ sur 3 ans.
Maintenant on est ferré chez eux et finalement toutes les technos et autres elements technos mis en avant sur lequel nos admins ont bavé ne sont pas exploités (faut de temps et d'investissement perso pour s'y former).
Ca nous coute un bras par an et pour le moment on est dans une fuite en avant. Une gabegie financiere tout ca pour s'etre fait berné par des potentiels besoins (qu'on n'avait pas et qu'on n'aura jamais). Tous les ans les membres de l'assoc (plusieurs 10aine de milliers de membres heureusement se cotisent pour financer le monstre).
Plus aucun autonomie; on maitrisait tout, on ne maitrise plus rien. Amazon ne vaut pas mieux que les autres.
3  0 
Avatar de Mat.M
Expert éminent sénior https://www.developpez.com
Le 03/08/2018 à 14:15
ce qu'il faut en penser ?
moua ha ha je me marre je me marre...
les entreprises qui ont basé leurs système d'information sur cette solution technologique si elles choisissent de changer de techno (indépendamment de l'éditeur Oracle) eh bien le risque c'est de devoir refaire les projets info de A à Z donc ça fera du boulot pour les programmeurs mais une charge pour les entreprises.

On ne le répètera jamais assez mais dans un projet informatique et dans les lignes de code faites le plus abstrait possible en scindant le code en modules,entités qui ne soient pas dépendantes d'une techno en particulier ( ici Oracle)
Car si vous changez de techno ici un SGBDR là faut réecrire une bonne partie du code
3  1 
Avatar de steel-finger
Membre confirmé https://www.developpez.com
Le 03/08/2018 à 23:36
Nous on s'est fait attaqué pour une histoire de licence qu'ils ont voulus arrangés a leur sauce et depuis ce jour la, les produits Oracles c'est fini !
2  0 
Avatar de SQLpro
Rédacteur https://www.developpez.com
Le 06/08/2018 à 18:28
Citation Envoyé par commandantFred Voir le message
Bon, les "concepts mathématiques" de SQL coté dev, c'est la théorie des ensembles qu'on a tous appris en 6eme... Vous restez sur des notions très théoriques, j'ai travaillé sur une dizaine de front ends Oracle (mais pas que...)

Non, le NoSQL n'est pas un mouvement né du marketing. Il est arrivé avec les sites web à très forte charge (10 ^ 8/jour). Les bases noSQL ont été développées en interne chez ces fournisseurs pour faire sauter les goulots d'étranglement de SQL (d'où le nom). Ce n'est qu'ensuite qu'ils ont été mis aux normes pour être distribués et que le marketing s'y est intéressé.
Vous confondez NoSQL et Big Data. Aucun site web marchand n'a 300 milliards de lignes dans ses tables. Et presque tous utilisent des SGBDR Relationnels gérant des transaction pour la partie marchande, même AMAZON... ! Pour info, en France, TOUS les gros sites web marchand sont sur des SGBDR (Fnac, CDiscount, Ventes Privées => SQL Server, tgv.com => Oracle...)


Encore une fois, je n'ai rien contre SQL, au contraire, je continuerai à l'employer à cause de sa formidable facilité d'utilisation. Mais il faut remettre les choses dans le contexte : SQL régnait en maître alors que les bases de données se limitaient aux logiciels spécifiques qui proposaient surtout des formulaires à remplir et des choses comme ça. Les gros volumes de l'époque dépassaient rarement les 10 milliards de lignes.

Aujourd'hui que fait-on avec dix giga-lignes quand ont est un GAFAM.. ?? Pas grand chose...

La limitation structurelle de SQL dans les très gros datasets provient de la conception de ses indexes.
Renseignez-vous il existe des technologies d'indexation pour les très grosses tables. C'est le cas des index columstore de SQL Server qui ne sont réellement utilisable qu'a partir de 100 millions de lignes, car ils travaillent avec des "pages" de 1 million de lignes au minimum...

Disons pour faire simple, que ses concepteurs ont souhaité rendre les indexes aussi transparents que possible. Leur usage dans une recherche est implicite ou encore 'aléatoire' parce qu'il est quasi-impossible de forcer SQL à utiliser un index précis sans passer par les spécificités constructeur. Sous oracle, ça passe par l'ajout d'un hint en commentaire dans la clause select (que le schema d’exécution ne respecte pas toujours). Sur d'autres implémentations, il faut faire des acrobaties absurdes, non-portables et ALEATOIRES dans leurs comportements.

Si vous avez fait un peu de gros volumes (tera-lignes) , vous réaliserez tôt ou tard que les index SQL sont inadaptés.
J'en ai fait la cruelle expérience le mois dernier sur une requête portant sur 300 milliards de lignes dont l'index avait été désynchronisé par un client situé de l'autre coté de la planète. Résultat au lieu de durer 2 heures, la requête s’exécute en ... 15 ans ? 150 ans ? Je n'ai pas attendu pour vérifier...

Le modèle conceptuel de SQL prévoit de limiter la portée des requêtes en passant par les VIEWS mais aussi géniales soient elles, ce ne sont pas des indexes.
Sans doute ne connaissez vous pas le concept de vues indexées ou vues matérialisées....


La performance n'est pas au rendez-vous. Je soupçonne les VIEWS de n'avoir été implémentées que pour simplifier la SYNTAXE des requêtes et non pas les perfs.

J'en reviens donc à ce que je disais plus haut. Tant que SQL n'autorise pas de WHERE dans le CREATE INDEX ni l'ouverture d'un index comme une table (figurer dans une clause SELECT), il sera condamné à rester aux volumes des années 90 (fichiers sécu, impôts et douanes américaines) mais ne pourra pas s’accommoder des volumes d'aujourd'hui.
Révisez vos jugements hâtifs et travaillez avec un vrai SGBDR !!!

A +
2  0