PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Performances HFSQL vs MariaDB
Performances HFSQL vs MariaDB
Débuté par Benjamin, 25 mar. 2019 16:53 - 10 réponses
Posté le 25 mars 2019 - 16:53
Bonjour,

Je trouvais le temps d'exécution des requêtes un peu long sur notre serveur HFSQL. En montant un serveur MariaDB pour tester, avec un gros fichier de données, j'obtiens des temps de réponses très différents.

La même requête toute simple
SELECT uneRubrique FROM monFichier WHERE uneRubriqueCle = 'valeur'
) envoyée via le CCHF sur les 2 serveurs :

HyperFileSQL : 44 sec d'exécution pour 578 000 lignes retournées.
MariaDB : 2,3 sec d'exécution pour 578 000 lignes retournées.

Pour info, le fichier au total contient 1 300 000 lignes. La connexion au serveur MariaDB est faite via l'accès natif MariaDB, dans le CCHF.

Avez-vous déjà rencontré des différences de ce genre ? Le passage par un connecteur natif à une base tierce (plutôt que directement sur une base HFSQL) vous a-t-il posé des contraintes particulières ?
Quel(s) autre(s) SGBD utilisez-vous ?
Membre enregistré
945 messages
Popularité : +53 (63 votes)
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 26 mars 2019 - 07:07
Bonjour,

Perso je n'utilise HFSQL que pour des toutes petites applis. Sinon on a migré sur PostgreSQL pour mon plus grand bonheur. De vrais triggers (c'est tout nouveau), des fonctions de BDD, une base qui répond vite, notamment sur des requêtes un peu complexes.

Le débat sur les performances de HFSQL revient assez souvent et le constat est toujours le même, HFSQL n'est pas des plus vifs.

Après tout dépend de tes besoins, certains s'en accommode et d'autres migrent vers d'autres SGBD...

--
Cordialement,

Philippe SAINT-BERTIN
Posté le 28 mars 2019 - 16:52
Bonjour,

Nous envisageons de passer à MariaDB.
Comment avez-vous gérer les blocages et les transactions? Car cela n'a pas l'air d'être bien gérer via les accès natifs?
Membre enregistré
182 messages
Popularité : +10 (10 votes)
Posté le 29 mars 2019 - 08:16
Sébastien a écrit :
Nous envisageons de passer à MariaDB.
Comment avez-vous gérer les blocages et les transactions? Car cela n'a pas l'air d'être bien gérer via les accès natifs?


Hello,
Chez mon précédent employeur, la base était sous MySQL.
La manière de travailler avec MariaDB est la même, juste le connecteur de l'accès natif qui diffère.

Je n'ai pas essayé de gérer les blocages et les transactions, car la syntaxe des requêtes est bien plus poussée par HFSQL. Ce qui fait qu'on peut se permettre pas mal de choses.
Pour les transactions, j'ai utilisé ce type de syntaxe pour les envois en masse :

https://www.electrictoolbox.com/mysql-insert-multiple-records/
http://www.mysqltutorial.org/mysql-insert-or-update-on-duplicate-key-update/

Pour les blocages, je n'ai pas rencontré de cas.
J'avais mis en place une requête qui indiquait quand une information était en cours de modification, à l'ouverture de la fenêtre.
Et donc si quelqu'un d'autre tentait de l'ouvrir, c'était affiché en lecture seule.
Posté le 29 mars 2019 - 13:52
Je ne connais pas MariaDB mais je travaille régulièrement en HFSQL, SQLserver et MySQL les résultats varient certes mais je ne constate jamais de tels écarts

Je viens de faire un test similaire sur une base de 500.000 records j'obtiens 2s067 pour 380.000 records retourné ( CCHF / I7 / SSD )

Il doit y avoir un soucis au niveau de ton serveur ou de l'infra

pour le reste les connecteurs natifs ne sont pas la panacée, toutes les H ne répondent pas de la même manière (
les rubriques date / durée, blocage, transaction, pas de modif auto, problème avec les connexions qui restent en attente sur SQL serveur lié au fonctionnement de SQLServer mais peuvent saturer un serveur ), bref mieux vaut avoir prévu le coup en surchargeant toutes les fonctions HF que tu utilises afin de les adapter aux spécificités de la DB tierce

Bon Dev
Marc Fastré
www.marc-fastre.be
Posté le 29 mars 2019 - 23:04
Bonjour,

Nous avons réalisé plusieurs tests aujourd'hui sur un fichier de 1 500 000 enregistrements.
La requête retourne tous les temps passés selon un statut. Le résultat attendu est d'environ 527 000 enregistrements.
On est d'accord que retourner un tel nombre d'enregistrements n'est pas pertinent, c'est plus pour tester le serveur.
(nous sommes amenés à réaliser des requêtes de plus en plus complexes qui sont relativement longues)

Sur nos portables de développement (Win10, 8Go, SSD, i5) :
-HFCS retourne en moyenne le résultat en 9s
-MariaDB => moins de 2s

Sur un serveur de test (Win2016, 16Go, SATA), (aucun autre utilisateur sur le serveur pendant les tests)
-HFCS => 30s (hier dans les derniers tests, la requête mettait plus d'une minute à chaque fois et au premier chargement entre 12 et 20 minutes)
-MariaDB => 2.5s

Sur un serveur de prod (Win2012r2, 64Go, SSD) (base de données d'environs 500tables/ 55Go de données / 300 connexion à la BDD)
-HFCS => 22s
-mariaDB => aucun test de fait cela reste le serveur de prod quand même!!

PCSoft a fait le test sur le fichier en question (Win10, 16Go, SSD, i7)
-HFCS => 6s
-mariaDB => selon eux les mesures que je leur donne ne sont pas pertinentes car le résultat n'est pas lu via la CCHF....

*** les deux serveurs sont virtualisés mais l'infrastructure semble cohérente

est-ce que les nombreuses connexions au serveur peuvent expliquer une moindre performance que sur un portable ?? (le serveur de prod est dédié à la base de données)
j'avoue que je me doutais qu'HyperFile était plus lent qu'une autre base mais là je trouve ça énorme.

Dans une entreprise, MySQL est plus adapté que MariaDB ?

Cordialement
Sébastien
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 30 mars 2019 - 08:20
Bonjour,

Attention, MySQL n'est pas une forcément gratuite. Elle est gratuite sous certaines conditions. MariaDB, je ne l'ai jamais utilisée. Perso mon coeur balance plutôt du côté de PostgreSQL.

Après, MySQL ou MariaDB, c'est équivalent, MariaDB étant un fork de MySQL

--
Cordialement,

Philippe SAINT-BERTIN
Message modifié, 30 mars 2019 - 08:21
Posté le 30 mars 2019 - 16:45
N'utilisant pas de contexte hf indépendant j'ai rarement plus de 100 connexions sur un serveur hf… donc pas possible de donner un retour avec 300

Mais en ce qui me concerne je déconseille toujours une machine virtuelle pour un serveur DB

J'ai déjà eu et à plusieurs reprises de gros problèmes de perf avec ce genre d'infra, et pas qu'avec du HF c'est idem en SQLServer… dans le genre un serveur domino ou exchange, voir autre DB qui tourne sur une autre VM de la même machine physique, même avec des disques dédiés par VM !

A chaque fois c'est la bagarre avec le service infra… je fini toujours par mettre la DB sur une machine physique de moindre puissance ( une fois je l'ai même mise sur mon portable ) , et comme par hasard à chaque fois les performances sont en nette progression...

C'est mieux de mettre un serveur HF sur une simple machine, un windows 10 pro i7 SSD pas vraiment besoin d'investir dans un serveur, coûteux à l'utilisation et à faire évoluer

Bon Dev
Marc Fastré
www.marc-fastre.be
Posté le 30 mars 2019 - 22:35
Marc Fastré a écrit :
N'utilisant pas de contexte hf indépendant j'ai rarement plus de 100 connexions sur un serveur hf… donc pas possible de donner un retour avec 300

Mais en ce qui me concerne je déconseille toujours une machine virtuelle pour un serveur DB

J'ai déjà eu et à plusieurs reprises de gros problèmes de perf avec ce genre d'infra, et pas qu'avec du HF c'est idem en SQLServer… dans le genre un serveur domino ou exchange, voir autre DB qui tourne sur une autre VM de la même machine physique, même avec des disques dédiés par VM !

A chaque fois c'est la bagarre avec le service infra… je fini toujours par mettre la DB sur une machine physique de moindre puissance ( une fois je l'ai même mise sur mon portable ) , et comme par hasard à chaque fois les performances sont en nette progression...

C'est mieux de mettre un serveur HF sur une simple machine, un windows 10 pro i7 SSD pas vraiment besoin d'investir dans un serveur, coûteux à l'utilisation et à faire évoluer

Bon Dev
Marc Fastré
www.marc-fastre.be


c'est clairement un pb.
la plupart des infra sont sur des VM maintenant.
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 31 mars 2019 - 20:31
Je suis d'accord avec Roger. La majeure partie des infra sont sur des VM. Il suffit de voir SQL Azure pour démontrer que la virtualisation fonctionne très bien.

--
Cordialement,

Philippe SAINT-BERTIN