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 16/06/2006, 12h45   #1
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Par défaut SQL Server très lent comparé à Mysql ?

Bonjour.
Actuellement, je suis en train de developper une application en php5 qui peut tourner sur Mysql5, 4 et SQLServer 2000. Et je constate qu'il y a une différence de temps d'execution.
Mysql5 > 0.05 seconde en moyenne
SQlServer 1.0 seconde en moyenne.
C'est une requête qui est appeler récurcivement avec une contrainte sur le champs sur SQLServer mais même quand je retire cette contrainte je trouve qu'il y a quand même une lenteur assez bizarre.
Pour 26 enregistrements je trouve que ça fait beaucoup. Je sais que Mysql est rapide mais Sqlserver me semble pas si lent quand je compare. L'appli est entierement objet et le processus pour executer une requête est la même.

Ma config
Athlon 3200+ venise 939
1go RAM.
Une carte mère Gigabite K8NSC-939
c'est pas assez ?

SQL Server
[idcategorie] [int] IDENTITY (1, 1) NOT NULL ,
[idcategorie_mere] [int] NULL ,
[idtraduction] [int] NULL ,
[ordre] [int] NOT NULL ,
[nom] [varchar] (50) COLLATE French_CI_AS NOT NULL ,
[description] [text] COLLATE French_CI_AS NULL ,
[date_crea] [datetime] NULL ,
[date_modif] [datetime] NULL ,
[actif] [bit] NOT NULL ,
[visible] [bit] NOT NULL

Mysql5
`idcategorie` mediumint(10) NOT NULL auto_increment ,
`idcategorie_mere` mediumint(10) NOT NULL default '0' ,
`idtraduction` mediumint(5) default '0' ,
`nom` varchar(255) NOT NULL ,
`description` text COMMENT,
`ordre` tinyint(3) NOT NULL default '0' ,
`date_crea` datetime NOT NULL,
`date_modif` datetime NOT NULL ,
`actif` tinyint(1) NOT NULL default '0' ,
`visible` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`idcategorie`),
KEY `idtraduction` (`idtraduction`)


Quelqu'un aurait une éventuellement explication?
Merci
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 13h23   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
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 959
Points : 17 791
Points : 17 791
Et la requête ???

De plus vous n'avez mi aucune clef sur la table, donc aucun index !

Il faudrait au moins respecter les principes de bases de la modélisation de données, à savoir que toute table doit avoir une clef...

Des index aussi.

De quelle contrainte parlez-vous ?

Tout ceci n'est pas claireet révèle votre manque de connaissance sur le sujet (il est vrai que MySQL avec son pseudo SQL et sa manière de gérer les données se rapproche plus du cobol que d'un vrai SGBDR !)

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 00
Vieux 16/06/2006, 13h30   #3
Membre Expert
 
Avatar de TheLeadingEdge
 
Inscription : mai 2005
Messages : 1 200
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 1 200
Points : 1 260
Points : 1 260
Citation:
SQL Server
...
[actif] [bit] NOT NULL ,
[visible] [bit] NOT NULL

Mysql5
...
`visible` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`idcategorie`),
KEY `idtraduction` (`idtraduction`)
C 1 peu pipé au départ non ?
TheLeadingEdge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 14h17   #4
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 121
Points : 1 121
Je suis en train d'écrire un article sur les différentes méthodes d'accès aux données via PHP.
Je constate de légers écarts entre MySQL et MSSQL. Rien à voir avec ce que vous obtenez. (Je ne dis pas que l'un va plus vite qu'un autre, mes tests ne me garantissent pas actuellement que les deux processus se déroule dans les mêmes conditions environnementales). Mais si il y a avait des écarts de 2000% je les aurais remarqué !

En conclusion, de cet article, je conseille de privilégier l'accès aux bases de données via la nouvelle bibliothèque PDO de PHP.

Néanmoins, une bonne modélisation de votre base et une indexation adéquate, comme l'optimisation du serveur de données sont des points d'optimisation à ne jamais négliger !
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 14h23   #5
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 121
Points : 1 121
Citation:
Envoyé par SQLpro
un vrai SGBDR !)
[Hors-sujet]Pourrait-on discuter à l'occasion de cette définition de SGBDR en privé ?[/Hors-Sujet]
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 14h34   #6
Directeur Marketing
 
Avatar de Marc Lussac
 
Homme Marc Lussac
Responsable marketing opérationnel
Inscription : mars 2002
Messages : 26 358
Détails du profil
Informations personnelles :
Nom : Homme Marc Lussac
Localisation : Canada

Informations professionnelles :
Activité : Responsable marketing opérationnel
Secteur : Communication - Médias

Informations forums :
Inscription : mars 2002
Messages : 26 358
Points : 23 184
Points : 23 184
Mysql est extrémement rapide pour les opérations simples

Ca n'est pas parce que c'est gratuit que c'est forcément plus lent

De plus, si vous utilisez mysql en mode non transactionnel (mode par défaut), parce que vous n'avez pas besoin des transactions (ca peu arriver), mysql est forcément beaucoup plus rapide que tous les autres SGBD qui sont tous en mode transactionnel par défaut
__________________
-> Ne pas me contacter pour le forum et je ne répondrai à aucune question technique -> Comment nous contacter
-> Pour partenariat ou publicité : Mon Email
Marc Lussac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 15h11   #7
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Citation:
Envoyé par SQLpro
Et la requête ???

De plus vous n'avez mi aucune clef sur la table, donc aucun index !

Il faudrait au moins respecter les principes de bases de la modélisation de données, à savoir que toute table doit avoir une clef...

Des index aussi.

De quelle contrainte parlez-vous ?

Tout ceci n'est pas claireet révèle votre manque de connaissance sur le sujet (il est vrai que MySQL avec son pseudo SQL et sa manière de gérer les données se rapproche plus du cobol que d'un vrai SGBDR !)

A +
Sur SqlServeur j'ai placé un index sur le champs idcategorie. Dans la génération du code de la structure j'ai peut être oublié de le faire mentionner.

La lecture de la table se fait de façon linière donc aucune clause. C'est qu'une requête très bateau SELECT * FROM categorie.
J'ai même placé la taille du cache de mysql à 0 .
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 21h50   #8
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 097
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 097
Points : 1 706
Points : 1 706
Citation:
Envoyé par SQLpro
...
Tout ceci n'est pas claire et révèle votre manque de connaissance sur le sujet (il est vrai que MySQL avec son pseudo SQL et sa manière de gérer les données se rapproche plus du cobol que d'un vrai SGBDR !)
Ne dénigrez pas le COBOL SVP ...
Jamais il n'a eu la prétention d'être un SGBDR lui ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 08h13   #9
Membre expérimenté
 
Inscription : mai 2005
Messages : 414
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 414
Points : 589
Points : 589
Bonne remarque Luc

Le Cobol avec une base IMS, y a pas encore plus rapide pour traiter du volume de données.

Par rapport au sujet initial, je suis d'accord. Mysql est rapide mais c'est de la pseudo rapidité car effectivement il n'y a pas de transactionnel, etc.., etc... Il faut comparer ce qui est comparable. Mysql InnoDB / MSSQL peut être serait il plus intéressant. Maintenant, essayez de comparer les temps de mises à jour et d'ajout de données entre Mysql et MSSQL, et là ca fait mal à Mysql !
gregory.broissard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 11h08   #10
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
ok j'étais bien au courant que Mysql était plus rapide que sql server mais dans mon cas pour si peut d'enregistrement et qu'il y ait une seconde pour le SQLsever ça me parait un peut abusé.

berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h15.


 
 
 
 
Partenaires

Hébergement Web