Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2354 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5
Auteur Sujet :

[ question aux gurus sql ] est ce faisable algorithmiquement en sql ?

n°1158914
megadub
Posté le 25-07-2005 à 11:55:13  profilanswer
 

Reprise du message précédent :

docmaboul a écrit :

Ben nan, on s'en fout pas de la configuration des serveurs (sous-entendu des serveurs de bdd, évidemment). Là, il ne donne même pas l'os, les versions utilisées, s'il fait tourner le client sur la même machine que le serveur, ... Bref; à mes yeux, ça ne vaut rien comme résultat.


comme tu veux... c'était juste pour info ;)
 
Effectivement Arjuna, j'ai vu le même mais j'suis pas foutu de le retrouver :/
 
Il y a la question de reprise sur incident qui doit être prise en compte aussi... MySQL n'a pas l'artillerie de SQL Server ou Oracle ;)


Message édité par megadub le 25-07-2005 à 11:59:25
mood
Publicité
Posté le 25-07-2005 à 11:55:13  profilanswer
 

n°1158923
docmaboul
Posté le 25-07-2005 à 11:58:37  profilanswer
 

Arjuna a écrit :

Pas d'accord, un bench, pour être validable doit répondre à l'un des deux cas suivants :
-> AUCUNE optimisation : install classique, et basta.


 
Un bench de serveur non configuré? Autant bencher du hardware en utilisant des pilotes génériques.
 

Citation :

EN AUCUN CAS un DBA doit toucher à une base qui va servir à un test, parceque si un DBA connait bien un SGBD, il ne les connait pas tous, donc les optimisations seront inégales d'une machine à l'autre, donc le bench sera biasé.


 
Taratata. Si on est sérieux, on prend un spécialiste pour chaque sgbd.

n°1158925
megadub
Posté le 25-07-2005 à 11:59:01  profilanswer
 

Arjuna a écrit :

SQL Server aussi sait faire de la réutilisation des plan d'execution. Mais je ne prends pas ce truc en compte, parceque dans la réalité, c'est très rare que tu exécute 25 fois la même requête, hors le buffer qui contient les plan est très limité, donc passé une dizaine de requêtes différentes à la suite, le sgbd ne se souvient plus des requêtes précédentes. Cette optimisation est selon moi inutile.


 
Houla... bah non... tu fais une appli, t'a toutes les chances que les requêtes sur les écrans soient exécuter un bon millier de fois dans la journée :/
Genre l'écran des commandes, t'es sûr que la requête mouline à longueur de journée... c'est tout l'intérêt du cache ;)
 

Citation :

Par contre, Oracle tout comme SQL Server (et ça c'est SUR), compile le plan avant l'éxécution. Il le vérifie par contre lors de l'éxécution, et recompile le cas échéant si les tables utilisées on subit des changements. Comment ça marche exactement, j'en sais rien, je pense que dans le plan il garde un numéro de version interne des objets utilisés, et ce numéro change à chaque modification d'un objet, du coup il sait quand il dfoit recompiler.


 
Evidemment... c'est pas quand tu es arrivé à bon port ou que t'es sur la route que tu regardes par où tu passes ;)
 
En fait, je pense que tous les SGBD marchent de la même manière : parse, execute et fetch
 
parsing : vérification syntaxique, traduction et constitution du plan
execute : lancement de la commanden, collecte des données sur les disques ou en mémoire (ou dans le UNDO pour Oracle)
fetch : restitution du résultat :)

n°1158948
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 12:24:29  profilanswer
 

docmaboul a écrit :

Ben nan, on s'en fout pas de la configuration des serveurs (sous-entendu des serveurs de bdd, évidemment). Là, il ne donne même pas l'os, les versions utilisées, s'il fait tourner le client sur la même machine que le serveur, ... Bref; à mes yeux, ça ne vaut rien comme résultat.


du moment que les conditions sont les mêmes entre chaque test, les résultats sont valides. Et on s'en fout des conditions, normalement, si les produits sont "comparables" ils doivent l'être sur tout type de configuration (sans entrer dans les trucs débiles, genre autant MySQL tourne très bien sur un P100 avec 32 Mo de RAM, autant Oracle ne démarre même pas.

n°1158961
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 12:33:32  profilanswer
 

C'est vrai que les transaction log c'est chiant parceque ça grossi tout le temps et ça relenti tout, mais restaurer une base de données à la milli-seconde près après une grosse connerie, c'est pratique :)

n°1159028
docmaboul
Posté le 25-07-2005 à 14:10:26  profilanswer
 

Arjuna a écrit :

du moment que les conditions sont les mêmes entre chaque test, les résultats sont valides. Et on s'en fout des conditions, normalement, si les produits sont "comparables" ils doivent l'être sur tout type de configuration (sans entrer dans les trucs débiles, genre autant MySQL tourne très bien sur un P100 avec 32 Mo de RAM, autant Oracle ne démarre même pas.


 
Ben voyons... Bencher un sgbd, c'est tout un art et balancer ce genre de conneries, ce n'est pas digne d'un dba. En procédant à base de "youpitroulala, on se fout des conditions du bench", ce que vous benchez, c'est votre pseudo-environnement de bench, ni plus, ni moins, et certainement pas le sgbd.

n°1159035
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 14:20:20  profilanswer
 

tu te fourvoies largement. ce qui est révélent dans un bench, c'est que chacun soit fait dans les mêmes conditions, pas les petits trucs que t'as pu faire pour améliorer les résutlats.
 
bencher un outils sans optimisation, c'est aussi important que de le bencher avec. pour la simple et bonne raison que tu ne pourras jamais optimiser au maximum tous les cas possible, il est donc impératif que l'outils soit capable de s'en sortir tout seul dans des cas peu évidents.
 
ce qui m'intéresse quand j'achète une machine à laver, c'est pas qu'elle sera capable de faire une lessive en 5 minutes en utilisant 2 litres d'eau. ce que je regarde en premier, c'est si elle a des sécurités suffisantes pour ne pas crâmer mon linge ou inonder la maison si le fitre est bouché ou la résistance entartrée. c'est justement la capacité à sortir son épingle du jeu dans les cas difficile qui fait la différence entre un bon et un mauvais produit.
 
exemple des index : t'as 25 requêtes qui tapent dans la même table, chacune nécessite un index différent. t'as le choix entre créer 25 index et rendre tout mouvement dans la table complètement catastrophique, ou créer 5 index pour les requêtes les plus lourdes, et confier au moteur les 20 requêtes suivantes sans index. trop d'optimisation tue l'optimisation, tout DBA le sait. par conséquent, à vouloir trop optimiser, on se retrouve avec des benchs pas du tout représentatifs de la réalité.
 
quant tu testes une carte graphique avec 3DMark, c'est pareil. tu te fous de savoir si le jeu a été optimisé pour telle ou telle carte, il ne l'est d'ailleurs pas. par contre, tu fais tourner le même bench sur des configs identiques avec juste la carte graphique qui change.
 
et pour ta gouverne, un bench avec une install "de base" est très important : quand les "drivers mis à jour" plantent, t'es bien content que les drivers de base soient pas trop pourris. C'est la même chose avec mon exemple des 25 index sur une seule table : bah ça marche pas, c'est donc bien que le sgbd puisse s'en tirer sans indedx.

n°1159074
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 14:55:54  profilanswer
 

En tout cas, un truc qui est bien avec SQL Server, c'est les table hints.
Sous Oracle, ils existent aussi, mais je ne les trouve pas clairs du tout.
 
Sous SQL Server, c'est limpide :bounce:
 

Code :
  1. select *
  2. from asset with(index(ix_asset_orgidassetidlinetype))
  3. where asset.orgid between 2 and 5 and assetid < 1000 and linetype in ('S', 'B')


 
J'avais une requête quelque peut complexe, et l'optimiseur partait dans les choux, faisant un fullscan sur la table la plus grosse de la base (forcément, c'est pas terrible).
 
Avec cette jolie optimisation, le "with(index())", j'ai divisé par 3 le temps d'exécution, et logiquement, n'importe qui devrait être capable de le relire :)
 
J'aime bien la mise en garde dans la doc :

Citation :


Attention  Dans la mesure où l'optimiseur de requêtes de SQL Server sélectionne normalement le meilleur plan d'exécution d'une requête, il est recommandé que <join_hint>, <query_hint> et <table_hint> ne soient utilisés qu'en dernier recours par un administrateur de base de données expérimenté.

n°1159077
megadub
Posté le 25-07-2005 à 15:00:34  profilanswer
 

sous Oracle le hint index existe aussi :D
 

Code :
  1. SELECT /*+ index(tab,mon_index) */
  2. *
  3. FROM matable tab
  4. WHERE col1 = 1;


 
C'est pas plus compliqué :p
 
pour info : http://orafrance.free.fr/tuning_hints.htm

n°1159100
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 15:15:03  profilanswer
 

J'ai pas dit qu'il exitait pas, au contraire, mais il me semble qu'il ne reconnais pas les alias.
 
Du coup, si t'as deux fois la même table, je ne sais pas comment ça marche, il fait comment ?
 
Genre :
 

Code :
  1. select *
  2. from asset a with(index(index1)), asset b with(index(index2))
  3. where ...


 
Sinon, y'a grossomodo les mêmes hints possible, avec :
 
Hints d'index
Hints de lock
Hints de jointure
Hints de vue


Message édité par Arjuna le 25-07-2005 à 15:18:54
mood
Publicité
Posté le 25-07-2005 à 15:15:03  profilanswer
 

n°1159107
Beegee
Posté le 25-07-2005 à 15:17:28  profilanswer
 

Je viens de tester et on peut utiliser des alias à la place des noms de tables ;)
 
Exemple (réel sur une base de prod :D ) :
 

Code :
  1. SELECT /*+ index(chp1, custhasproduct_pk) index(chp2, custhasproduct_ak1) */ *
  2. FROM custhasproduct chp1, custhasproduct chp2
  3. WHERE chp1.customer_ref = chp2.customer_ref
  4. AND chp1.product_seq = chp2.product_seq;
  5. Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop
  6. SELECT STATEMENT Hint=RULE  1     1656                       
  7.   HASH JOIN  1   320   1656                       
  8.     TABLE ACCESS BY INDEX ROWID CUSTHASPRODUCT 2 K 312 K 826                       
  9.       INDEX FULL SCAN CUSTHASPRODUCT_PK 2 K   26                       
  10.     TABLE ACCESS BY INDEX ROWID CUSTHASPRODUCT 2 K 312 K 826                       
  11.       INDEX FULL SCAN CUSTHASPRODUCT_AK1 2 K   26



Message édité par Beegee le 25-07-2005 à 15:18:44
n°1159108
docmaboul
Posté le 25-07-2005 à 15:18:23  profilanswer
 

Arjuna a écrit :

tu te fourvoies largement. ce qui est révélent dans un bench, c'est que chacun soit fait dans les mêmes conditions, pas les petits trucs que t'as pu faire pour améliorer les résutlats.


 
Qu'entendez-vous par les mêmes conditions?

n°1159116
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 15:22:20  profilanswer
 

C'est à dire que si tu décides d'installer ton SGBD comme un porc sur le même disque que le swap, laisser les fichiers de données sur un disque fragmenté et rien optimiser, ça ne doit pas changer les conclusions du bench, à condition qu'on fasse la même chose pour chaque produit.
Idem quant aux requêtes et aux volumes tester.
 
Genre faut pas s'amuser à mettre des index sur des champs de type "CHAR(x)" sur une base, et pas d'index sur des "nvarchar(x)" sur une autre pase, et lancer la même requête dedans. C'est notamment là que c'est très difficile de faire des tests "portables" d'un SGBD à l'autre, parcequ'on se trouve sans arrêt limité par ce genre de trucs, et on peut notamment rarement tester les fonctionalités avancées parcequ'elles ne sont pas les mêmes d'un produit à l'autre.

n°1159123
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 15:28:22  profilanswer
 

Beegee a écrit :

Je viens de tester et on peut utiliser des alias à la place des noms de tables ;)
 
Exemple (réel sur une base de prod :D ) :
 

Code :
  1. SELECT /*+ index(chp1, custhasproduct_pk) index(chp2, custhasproduct_ak1) */ *
  2. FROM custhasproduct chp1, custhasproduct chp2
  3. WHERE chp1.customer_ref = chp2.customer_ref
  4. AND chp1.product_seq = chp2.product_seq;
  5. Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop
  6. SELECT STATEMENT Hint=RULE  1     1656                       
  7.   HASH JOIN  1   320   1656                       
  8.     TABLE ACCESS BY INDEX ROWID CUSTHASPRODUCT 2 K 312 K 826                       
  9.       INDEX FULL SCAN CUSTHASPRODUCT_PK 2 K   26                       
  10.     TABLE ACCESS BY INDEX ROWID CUSTHASPRODUCT 2 K 312 K 826                       
  11.       INDEX FULL SCAN CUSTHASPRODUCT_AK1 2 K   26



OK. Il me semble que j'avais été confronté à un problème avec les alias sur une ancienne version (ou un paramètre qui n'allait pas, je sais pas), mais en tout cas, j'avais pas pu m'en servir comme je voulais, j'avais du passer par des vues afin de mettre mes table-hints sur mes différents alias.

n°1159127
docmaboul
Posté le 25-07-2005 à 15:32:38  profilanswer
 

Arjuna a écrit :

C'est à dire que si tu décides d'installer ton SGBD comme un porc sur le même disque que le swap, laisser les fichiers de données sur un disque fragmenté et rien optimiser, ça ne doit pas changer les conclusions du bench, à condition qu'on fasse la même chose pour chaque produit.
Idem quant aux requêtes et aux volumes tester.
 
Genre faut pas s'amuser à mettre des index sur des champs de type "CHAR(x)" sur une base, et pas d'index sur des "nvarchar(x)" sur une autre pase, et lancer la même requête dedans. C'est notamment là que c'est très difficile de faire des tests "portables" d'un SGBD à l'autre, parcequ'on se trouve sans arrêt limité par ce genre de trucs, et on peut notamment rarement tester les fonctionalités avancées parcequ'elles ne sont pas les mêmes d'un produit à l'autre.


 
C'est bien ce que je voulais lire: à savoir que les conditions identiques, c'est un non-sens. Retour à la case départ: si on prétend faire une comparaison des sgbd en terme de vitesse, on optimise la config de chaque sgbd au mieux pour le bench et on regarde le résultat. Sinon, autant organiser un 100 mètres en prenant un champion Allemand qui vient de se gaver de choucroute, un champion Marocain qui a fumé ses trois pétards, un Américain gavé de coke, un Chinois en train de se réveiller, un Indien en plein jeûne, un Français qui a passé la nuit à copuler, ... : le résultat n'aura aucun sens.


Message édité par docmaboul le 25-07-2005 à 15:33:13
n°1159144
megadub
Posté le 25-07-2005 à 15:46:55  profilanswer
 

Beegee a écrit :

Je viens de tester et on peut utiliser des alias à la place des noms de tables ;)


 
je dirais même qu'il faut mettre l'alias ;)


Message édité par megadub le 25-07-2005 à 15:47:06
n°1159149
Beegee
Posté le 25-07-2005 à 15:48:39  profilanswer
 

pas forcément, tu peux mettre le nom de la table si elle apparait une seule fois ... ;)

n°1159176
megadub
Posté le 25-07-2005 à 16:20:59  profilanswer
 

oui bien sûr ;)

n°1159191
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 16:35:56  profilanswer
 

docmaboul a écrit :

C'est bien ce que je voulais lire: à savoir que les conditions identiques, c'est un non-sens. Retour à la case départ: si on prétend faire une comparaison des sgbd en terme de vitesse, on optimise la config de chaque sgbd au mieux pour le bench et on regarde le résultat. Sinon, autant organiser un 100 mètres en prenant un champion Allemand qui vient de se gaver de choucroute, un champion Marocain qui a fumé ses trois pétards, un Américain gavé de coke, un Chinois en train de se réveiller, un Indien en plein jeûne, un Français qui a passé la nuit à copuler, ... : le résultat n'aura aucun sens.


Ben non, justement, c'est là que t'es à côté de la plaque.
 
Mon test, c'est comme si tu leur demande à tous de fumer avant, ou de bouffer une choucroute.
 
Ainsi, même s'ils ne font pas les meilleurs perfs, tu pourras au moins déduire ceux qui courrent le mieu le vendre plein ou le cerveau enbrumé.
 
Si tu les dopes tous, ben ton indiens sera laisé, parcequ'il n'a pas assez d'argent pour s'acheter la même quantité d'EPO.

n°1159198
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 16:39:50  profilanswer
 

En fait, en optimisant n'importe comment comme tu le préconises, on se retrouve avec des résultats dignes du Tour de France : c'est plus le sportif que tu benches, mais le laboratoire qui produit ses dopants.
 
Là, j'en ai rien à foutre de savoir que le DBA d'Oracle est plus compétent que celui de SQL Server.

n°1159200
cesarr89
Posté le 25-07-2005 à 16:41:20  profilanswer
 

Arjuna a écrit :

En fait, en optimisant n'importe comment comme tu le préconises, on se retrouve avec des résultats dignes du Tour de France : c'est plus le sportif que tu benches, mais le laboratoire qui produit ses dopants.
 
Là, j'en ai rien à foutre de savoir que le DBA d'Oracle est plus compétent que celui de SQL Server.


 
 
+1 Je suis tout à fait d'accord avec toi

n°1159211
docmaboul
Posté le 25-07-2005 à 16:50:42  profilanswer
 

Arjuna a écrit :

En fait, en optimisant n'importe comment comme tu le préconises, on se retrouve avec des résultats dignes du Tour de France : c'est plus le sportif que tu benches, mais le laboratoire qui produit ses dopants.
 
Là, j'en ai rien à foutre de savoir que le DBA d'Oracle est plus compétent que celui de SQL Server.


 
Rien à voir. On utilise un sgbd pour des applications à ce que je sache et on le tune pour ces applications. Pour les benches, c'est pareil et on sait que le résultat du bench ne signifie rien d'autre que vis-à-vis de ce que l'on voulait tester. Pour prendre un exemple qui vous parlera plus, Sybase est longtemps resté avec un lock par défaut en mode page. Allez donc faire un test select+update là-dessus et me soutenir que c'est significatif avec un sgbd en face qui va avoir par défaut un rowlevel locking. Tout ce que le résultat du bench va pouvoir dire, c'est que la config par défaut est pourrie pour cette configuration de bench et rien de plus. Encore une fois, ce que vous testez, ce sont vos environnements de bench, et non pas les sgbd.
 
Edit: et encore en d'autres termes, le résultat de la course va signifier qu'il vaut mieux prendre de la coke avant de courir que manger de la choucroute, pas grand-chose quant aux coureurs.


Message édité par docmaboul le 25-07-2005 à 16:53:09
n°1159229
matthieu_p​hpmv
Posté le 25-07-2005 à 17:16:39  profilanswer
 

Citation :


 
- Liaisons multi-base
- Liaisons multi-serveur
- Liaisons multi-sgbd (peux-tu faire une jointure entre un table MySQL et une table Oracle directement depuis MySQL ? Avec SQL Server on peut, Oracle très certainement aussi)
- Transactions imbriquées (faut commencer par le commencement)
- Transactions distribuées
- Scripts de transformations de données multi-sources (ensemble des 3 permettant d'importer/exporter des données sans se prendre la tête à faire un programme rien que pour ça)  
 


 
ok pour moi un SGBD qui ne gère pas ces features ne doit pas être traité de bouse infâme comme vous le faites.
J'en ai rien à taper, comme 98% des utilisateurs, de ces fonctionnalités.
 
Pour moi et pour eux, la majorité des utilisateurs de bases de données qui peuvent avoir des besoisn très poussés (sans pour autant vouloir intéragir avec d'autres sgbd ou compenser les faiblesses de leur système en faisant de la liaison multi-base (je trouve cette idée dangereuse)), MySQL est parfait.
 
Je ne suis pas convaincu par vos arguments, sauf celui qui dit que mysql ne tient pas la charge quand on a 10000 requêtes simultanées SANS cluster (avec ça donne quoi ? Vous avez des benchs de moins d'1 an qui auront , eux, une certaine crédibilité ?)

n°1159416
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 19:47:59  profilanswer
 

Parceque les transactions impriquées (et distribuées) c'est pas important ? Ben franchement, moi j'ai pas envie de bosser avec un outil qui ne les supporte pas...
 
Sinon, vais tâcher de te trouver un bench d'une source un peu plus sûr que "www.i-love-linux.com"

n°1159423
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 25-07-2005 à 19:54:10  profilanswer
 

Arjuna a écrit :

j'ai pas dit "le logiciel libre c'est nul c'est buggé", j'ai dit que MySQL était victime ce que qu'on trouve souvent dans ce type de méthode de développement. y'a une légère nuance que tu n'as pas l'air de vouloir saisir.

heu c'est pas n'importe qui qui dev MySQL, seul des gars embauché pour bosser dessus ont le droit de faire des modifs dessus.
Qui plus est y a un système de testsuite assez au point mis en place, qui permet justement d'éviter le problème qui tu as décrit.
Et dire que sur une appli commerciale ce genre de problème n'existe pas, fait moi rire :lol:
 

n°1159424
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 19:54:37  profilanswer
 

En tout cas, DocMaboul, à vouloir optimiser à fond ta base, tu dénigre totalement l'équipe de MySQL.
 
Issu de la doc de MySQL :
 

Citation :


 Notez que Oracle n'est pas inclus dans ces tests car ils ont demandé à être retirés. Tous les tests d'Oracle doivent être faits par Oracle! Nous croyons que cette politique va biaiser fortement les tests en faveur de Oracle, car les tests ci-dessus sont supposés montrer ce qu'une installation simple peut faire pour un client simple.


 
Ils repprochent à Oracle de ne pas être présent dans le bench parcequ'ils veulent optimiser eux-même... L'équipe de MySQL se lève contre cette idée en spécifiant que leur test n'est valable qu'en installation "de base".
 
Je ne publie pas le test en question, car :
- On n'a pas les versions des produits testés
- L'architecture choisie, NT 4.0, n'est clairement pas à l'avantage de SQL Server 2000 (et c'est certainement pas le seul) qui utilise les pipe internes de Windows, qui ne sont pas du tout bons pour SQL Server. Il est même spécifié dans la doc de ce dernier qu'il est non recommandé de l'installer sur NT4
- A part MySQL qui est testé "en natif", tous les autres sont testés via ODBC
- Les tests se résument à lire des données brutes (select *) et insérer des données en masse, deux domaines où MySQL excèle, et qui ne sont pas du tout représentatifs de l'utilisation d'un SGBD (autant lire et écrire dans un fichier, ce sera encore plus rapide)

n°1159433
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 20:00:22  profilanswer
 

Sinon, cet article parle de Oracle et MySQL (pas de chiffres, mais j'aime bien la petite phrase de Michel Allaire, DSI chez TF1).

n°1159475
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 20:18:55  profilanswer
 

C'est balo, le seul bench récent que je trouve ne parle pas de MySQL. Et niveau optimisation, ça l'est, puisque ce sont des installations de SAP qui sont benchés :
 
http://www.microsoft.com/sql/evalu [...] Sales.mspx
 
A noter d'ailleurs que ce petit bench utilisant SAP confirmerait bien les rumeurs sur le rapprochement de SAP vers Microsoft, afin de remplacer leur outils "navision" par un SAP "lite".

n°1159477
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2005 à 20:22:08  profilanswer
 

On voit d'ailleurs que DB2 sort son épingule du jeu, puisqu'il arrive deux fois avant Oracle surle détail du "bench".
 
http://www50.sap.com/benchmarkdata/sd3tier.asp
 
Seul hic, ce ne sont pas réellement des benchs, mais des cartification de montée en charge pour une configuration donnée, donc on peut imaginer qu'à chaque nouveau serveur sur le marché, chaque éditeur s'empresse de sur-enchérir.

n°1159529
docmaboul
Posté le 25-07-2005 à 21:20:24  profilanswer
 

Arjuna a écrit :

En tout cas, DocMaboul, à vouloir optimiser à fond ta base, tu dénigre totalement l'équipe de MySQL.


 
Hum. J'ai failli le dire dans un message précédent: ça m'a fait doucement ricaner de les voir faire des benchmarks avec des installations de base sans aucun tuning derrière. J'ai longtemps travaillé avec Sybase et c'est un parfait non-sens car la config par défaut est parfaitement pourrie. Si ma mémoire est bonne, il arrivait d'ailleurs bon dernier. C'est du même niveau de ce bench qu'il me semble avoir vu passer sur ce topic où mysql ne s'en sort pas avec dix ou cent connexions concurrents en select/update contre postgres. Forcément, si on prend le type de table où il ne sait faire que du table-level locking, ce n'est pas bien difficile que de l'envoyer au tapis et de généraliser derrière avec des "mysql? mais c'est une belle daube mon bon monsieur..."
 
Mais bon, contrairement à certains, je ne suis qu'un pauvre développeur avec un cap d'informatique: faut pas m'en vouloir si je n'ai aucune méthodologie... [:rhetorie du chaos]

n°1159533
docmaboul
Posté le 25-07-2005 à 21:27:22  profilanswer
 

Arjuna a écrit :


- Les tests se résument à lire des données brutes (select *) et insérer des données en masse, deux domaines où MySQL excèle, et qui ne sont pas du tout représentatifs de l'utilisation d'un SGBD (autant lire et écrire dans un fichier, ce sera encore plus rapide)


 
Où mysql excelle? Même sur sql server, je suis sûr qu'un coup de bulk-copy est dix fois plus rapide... :sarcastic:

n°1159575
matthieu_p​hpmv
Posté le 25-07-2005 à 22:28:35  profilanswer
 

Arjuna tu me fais marrer, tu critiques les benchs (nanana i-love-linux et les seules endroits ou tu trouves tes benchs, c'est sur la MSDN ou sur microsoft.com !  :pt1cable: )
 
bref, si personne édite de bench intéressant tant pis, mais je suis maintenant encore plus convaincu de la puissance de MySQL dans le domaine.
Et je vais maintenant complètement mépriser les gens qui n'ont rien de mieux à dire que "c'est de la bouse infâme".
 
 :hello:
 
ps : je précise que pour les besoins que j'ai, et qui sont communs à 99% des utilisateurs de bases de données, on se tape complet des benchs qui testent les performances en présence de 100000 utilisateurs par jour ou 10000 à la seconde. Dans ces cas effectivement ça vaut peut être le coup de débourser 10000€  :lol:


Message édité par matthieu_phpmv le 25-07-2005 à 22:30:37
n°1159747
docmaboul
Posté le 26-07-2005 à 05:53:42  profilanswer
 


 
J'ai relu la discussion histoire de vérifier que c'était bien ici que j'avais vu passer ce bench et lire ça un peu plus attentivement histoire de vérifier si ma supposition était bonne. Du coup, à mes yeux ce passage incarne à merveille toute la malhonnêteté intellectuelle qu'on peut trouver dans le milieu des sgbd. L'auteur du bench, quant à lui, était un peu plus honnête (à peine):
 

Citation :


To be fair, this is a test where we fully expected MySQL would fail - because of its table-level locking. The "My Personal Page" joins several times against our "Groups" table, which was being updated frequently in this test. While it was being updated, of course MySQL would have to wait to get a table-level lock, while PostgreSQL would simply move along using its "better than row level" locking.


(http://www.phpbuilder.com/columns/ [...] hp3?page=3)
 
Là, il nous dit clairement qu'il voulait faire un bench pour mettre mysql à genoux mais au moins, il le dit. Après, ce n'est pas bien difficile de faire ce genre de bench. Maintenant, il faut aussi dire à sa décharge qu'à l'époque, le moteur InnoDB n'était pas encore supporté (ce bench date manifestement de 5 ans, version 3.23.26 beta alors que InnoDB n'apparaît qu'en version 3.23.34). L'article de développez date d'avril 2004. Là, il n'y a plus d'excuse. C'est juste, au mieux, de la malhonnêteté intellectuelle de bas étage et au pire, une belle preuve d'incompétence de Frédéric Brouard (l'auteur sur développez, expert SQL, décoré honoris causa par krosoft et tutti quanti): on prend un bench antédiluvien qui ne teste qu'un des moteurs de mysql (MyIsam), on oublie BerkeleyDB et InnoDB, et on généralise abusivement sur "mysql" dans son ensemble. Dans tous les cas, c'est pitoyable et tellement symptômatique de ce qu'on trouve bien trop souvent dans le milieu des sgbd...
 
Au fait, j'ai aussi vérifié: on peut aussi faire des sauvegardes à chaud sur mysql via le moteur InnoDB et un outil externe (mais payant).


Message édité par docmaboul le 26-07-2005 à 05:58:40
n°1159749
megadub
Posté le 26-07-2005 à 07:36:31  profilanswer
 

matthieu_phpmv a écrit :


ok pour moi un SGBD qui ne gère pas ces features ne doit pas être traité de bouse infâme comme vous le faites.
J'en ai rien à taper, comme 98% des utilisateurs, de ces fonctionnalités.
 
Pour moi et pour eux, la majorité des utilisateurs de bases de données qui peuvent avoir des besoisn très poussés (sans pour autant vouloir intéragir avec d'autres sgbd ou compenser les faiblesses de leur système en faisant de la liaison multi-base (je trouve cette idée dangereuse)), MySQL est parfait.
 
Je ne suis pas convaincu par vos arguments, sauf celui qui dit que mysql ne tient pas la charge quand on a 10000 requêtes simultanées SANS cluster (avec ça donne quoi ? Vous avez des benchs de moins d'1 an qui auront , eux, une certaine crédibilité ?)


 
Nous parlons bien de SGBD professionnel où ces options sont bien plus utilisés que tu ne le penses. La majorité des utilisateurs... sur les sites web peut-être mais pas ailleurs ;)

n°1159751
megadub
Posté le 26-07-2005 à 07:40:17  profilanswer
 

matthieu_phpmv a écrit :


ps : je précise que pour les besoins que j'ai, et qui sont communs à 99% des utilisateurs de bases de données, on se tape complet des benchs qui testent les performances en présence de 100000 utilisateurs par jour ou 10000 à la seconde. Dans ces cas effectivement ça vaut peut être le coup de débourser 10000€  :lol:


 
tu te fourres le doigt dans l'oeil, la majorité des utilisateurs sont les entreprises qui aiment bien voir ce que va donner leur SGBD à 30000€ la license et plusieurs M€ d'installation... tout le monde ne se choisis pas des SGBD gratos au support technique inexistant :/

n°1159752
megadub
Posté le 26-07-2005 à 07:43:55  profilanswer
 

docmaboul a écrit :

JMaintenant, il faut aussi dire à sa décharge qu'à l'époque, le moteur InnoDB n'était pas encore supporté (ce bench date manifestement de 5 ans, version 3.23.26 beta alors que InnoDB n'apparaît qu'en version 3.23.34). L'article de développez date d'avril 2004. Là, il n'y a plus d'excuse. C'est juste, au mieux, de la malhonnêteté intellectuelle de bas étage et au pire, une belle preuve d'incompétence de Frédéric Brouard (l'auteur sur développez, expert SQL, décoré honoris causa par krosoft et tutti quanti): on prend un bench antédiluvien qui ne teste qu'un des moteurs de mysql (MyIsam), on oublie BerkeleyDB et InnoDB, et on généralise abusivement sur "mysql" dans son ensemble. Dans tous les cas, c'est pitoyable et tellement symptômatique de ce qu'on trouve bien trop souvent dans le milieu des sgbd...


 
c'est bien précisé :
 

Citation :

A l'heure ou j'écris ces lignes un nouvel article vient semer le trouble en présentant MySQL et ses transactions (version béta) aussi rapide qu'Oracle 9i et bien plus véloce que MS SQL Server et Sybase ASE http://www.eweek.com/article2/0,3959,293,00.asp le tout sur plateforme Windows 2000 server. Néanmoins on ne sait pas quel niveau d'isolation a été pris en compte pour chaque SGBDR. Par défaut celui d'Oracle est maximum et celui de MS SQL Server est "READ COMMITED". Notons en outre que la connexion JDBC n'est quand même pas le standard qu'adopte la majorité des développeurs SGBDR aujourd'hui !


 
Il remet bien en cause son analyse avec l'arrivée des nouvelles versions ;)
 
Et ensuite, il ne fait que comparer 2 SGBD gratuit et là on ne peut être que d'accord, PostgreSQL est plus performant que MySQL ;)

n°1159759
docmaboul
Posté le 26-07-2005 à 08:25:29  profilanswer
 

megadub a écrit :

c'est bien précisé :
 

Citation :

A l'heure ou j'écris ces lignes un nouvel article vient semer le trouble en présentant MySQL et ses transactions (version béta) aussi rapide qu'Oracle 9i et bien plus véloce que MS SQL Server et Sybase ASE http://www.eweek.com/article2/0,3959,293,00.asp le tout sur plateforme Windows 2000 server. Néanmoins on ne sait pas quel niveau d'isolation a été pris en compte pour chaque SGBDR. Par défaut celui d'Oracle est maximum et celui de MS SQL Server est "READ COMMITED". Notons en outre que la connexion JDBC n'est quand même pas le standard qu'adopte la majorité des développeurs SGBDR aujourd'hui !


 
Il remet bien en cause son analyse avec l'arrivée des nouvelles versions ;)


 
Son analyse? Un dba qui fait des "analyses" de ce genre, je l'enverrais volontiers analyser l'anpe [:rhetorie du chaos] En plus, InnoDB était supporté par MySQL en 2002 et pas en version beta. A mon avis, c'est et de la malhonnêteté et de l'incompétence. Pour finir, il a manifestement écrit son article en 2002 et celui-ci a été reposté en 2004 sans la moindre mise à jour. Et après, il y a des gus dans votre genre qui viennent les citer dans des discussions comme celle-ci... :pfff:
 

Citation :

Et ensuite, il ne fait que comparer 2 SGBD gratuit et là on ne peut être que d'accord, PostgreSQL est plus performant que MySQL ;)


 
Ca dépend comment on bench, comme toujours.


Message édité par docmaboul le 26-07-2005 à 08:26:19
n°1159763
megadub
Posté le 26-07-2005 à 08:40:02  profilanswer
 

docmaboul a écrit :

Son analyse? Un dba qui fait des "analyses" de ce genre, je l'enverrais volontiers analyser l'anpe [:rhetorie du chaos] En plus, InnoDB était supporté par MySQL en 2002 et pas en version beta. A mon avis, c'est et de la malhonnêteté et de l'incompétence. Pour finir, il a manifestement écrit son article en 2002 et celui-ci a été reposté en 2004 sans la moindre mise à jour. Et après, il y a des gus dans votre genre qui viennent les citer dans des discussions comme celle-ci... :pfff:


 
Il ne fait qu'interpréter les résultats d'un bench qu'il n'a pas fait lui-même et pondère ses propos par ce que j'ai cité... je ne vois pas ce qu'il y a de si incompétent dans cette analyse :/

n°1159765
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 26-07-2005 à 08:44:05  profilanswer
 

megadub a écrit :

tu te fourres le doigt dans l'oeil, la majorité des utilisateurs sont les entreprises qui aiment bien voir ce que va donner leur SGBD à 30000€ la license et plusieurs M€ d'installation... tout le monde ne se choisis pas des SGBD gratos au support technique inexistant :/

tu parles de MySQL :??:
Parce que si c'est le cas les revenus de MySQL se font justement principalement sur le support technique, donc bon :D
 

n°1159784
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-07-2005 à 09:37:41  profilanswer
 

docmaboul a écrit :

Où mysql excelle? Même sur sql server, je suis sûr qu'un coup de bulk-copy est dix fois plus rapide... :sarcastic:


Euh...
1/ C'est quoi la différence entre un bulk/copy et des insertions de masse ?
2/ T'en fait souvent dans ton code ? J'aimerais pas le voir
 
Un SGBD, c'est pas fait pour coller des millions de lignes juste pour le plaisir et les relire brute de fondrie juste pour le fun.
Fait-mois une requête joingnant 20 tables dont la moitié en OUTER, avec des regroupements sur différents niveau - avec des count(distinct champ)) par exemple - et des critères conditionnels "si champ1 = x alors je prends champ2 sinon je prends champ3".
 
Après on en reparle.
Un application classique n'utilise que ce type de requêtes, et là, y'a pas photo, MySQL en chie grave là où ça passe comment dans du beurre avec SQL Server ou Oracle.

n°1159786
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-07-2005 à 09:39:39  profilanswer
 

matthieu_phpmv a écrit :


bref, si personne édite de bench intéressant tant pis, mais je suis maintenant encore plus convaincu de la puissance de MySQL dans le domaine.
Et je vais maintenant complètement mépriser les gens qui n'ont rien de mieux à dire que "c'est de la bouse infâme".


Ben méprise-moi alors, avec un peu de pot tu ne m'adresseras plus la parole, et même mieu, tu ne viendra plus.
 
Si seul Microsoft fait des benchs "dignes de ce nom", c'est peut-être parceque c'est les seuls à pouvoir s'en venter... Je dis ça moi, je dis rien hein, c'est comme tu le sens.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5

Aller à :
Ajouter une réponse
 

Sujets relatifs
vbs et html question (a priori)question générale
question sur les array()J'ai une question sur le onMouseOver
[Python] Question de débutant, entrée stdin dans un scriptQuestion for beginners!
question sur chaines de caracteresQuestion de prix ?
question VIQuestion XML / XSL
Plus de sujets relatifs à : [ question aux gurus sql ] est ce faisable algorithmiquement en sql ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)