PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WINDEV 21] - Perte de performance avec SQL Oledb
[WINDEV 21] - Perte de performance avec SQL Oledb
Débuté par Miguel DE MATOS, 03 oct. 2018 17:56 - 2 réponses
Membre enregistré
2 messages
Posté le 03 octobre 2018 - 17:56
Tout d'abord bonjour à tous,

Et oui c'est mon premier sujet :)

j'utilise actuellement Windev 21 pour développer nos applications autour de notre ERP (Base de données Firebird).
Pour des raisons techniques, nous allons migrer la base de données de notre ERP vers SQL Serveur 2014

Nous avons mis en place un Serveur de Test pour effectuer nos tests avant migration

Pour nos applications nous utilisons le pilote ODBC Firebird pour communiquer avec la base actuelle et tout fonctionne à merveille.

Mes premiers tests de connexion via nos applications vers la base SQL Server nous a fait dresser les cheveux concernant la performance.

En effet pour une interface de donnée qui s’affiche actuellement en 8 seconde, le temps d’affichage est passé à 7 minutes sur SQL Server

La chaine de connexion utilisé pour l’ODBC est :
Numconnexion = SQLConnecte("NomSourceODBC", "", "", "", "ODBC")

La chaine de connexion utilisé pour SQL Server est :
Numconnexion = SQLConnecte("SERVEUR-TEST","sa","Mdp","BaseERP","OLEDB",hOledbSQLServer)

Et concernant les requetes je n'est rien changer à et j'utilise les fonction classique SQLExec, SQLAvance, SQLLitCol, SQLFerme

En lisant dans les divers forums, c'est mitigé entre le fait qu'une connexion Natif Windev est plus performante qu'une connexion SQL oledb et du coup on ne sait plus où donner de la tête. Un coup c'est l'un et un coup c'est l'autre.

Mais de là a perdre en perfomance à ce point (50 x moins performant que le l'ODBC Firebird)

En bref, je m'interroge sur cette lenteur car les requêtes et le code n'a en rien changé

Avez-vous déjà été confronté à ce type de lenteur avec SQL Oledb ?

Merci d'avance pour votre participation et pour votre partage d'experience.

Miguel
Membre enregistré
1 614 messages
Posté le 03 octobre 2018 - 18:35
Bonjour,

Je n'ai pas souvenir de si mauvaises performances avec l'oledb SQL Server. Mais une première question me vient à l'esprit, les tables sont-elles correctement indexées ?

--
Cordialement,

Philippe SAINT-BERTIN
Membre enregistré
2 messages
Posté le 05 octobre 2018 - 11:55
Bonjour Philippe,

Effectivement, il y a de quoi s'interroger car ce n'est pas la première fois que j'utilisais l'oledb mais depuis Windev "Oui"

Je te confirme que via l'ERP, j'ai ré-indexé toutes les tables afin d'écarter ce point.

Hier j'ai effectué un autre test mais en créant une connexion ODBC avec le Native SQL Client et la performance était identique (7 min).
Après quelques recherche sur Net, j'ai installé la version 11 du Native SQL Client préconisé pour les versions SQL server 2012 et +

Et là j'ai retrouvé une performance quasi identique à notre base Firebird

Par contre j'ai été étonné de voir que les recorset imbriqués n'était pas accepté pour l'ODBC

SQLExec("Ma requete SQL","REQ1")
TANTQUE SQLAvance("REQ1") = 0
.......
……
SQLExec("Ma requete SQL","REQ2")
TANTQUE SQLAvance("REQ2") = 0
…….
……
FIN
SQLFerme("REQ2")

FIN
SQLFerme("REQ1")

Je pense qu'il va falloir que je revois mon code si j'utilise ce type de connexion

Je continue à chercher car cel m'aurait arrangé de ne pas avoir à créer des connexions odbc sur tous les postes client

En tout cas merci et si vous avez une autre piste.... je suis preneur

Miguel