Vous êtes sur la page 1sur 0

PC SOFT le 14/10/2003

1/6
Hyper File 7 en mode rseau sur un serveur
Windows NT4 / Windows 2000 / Windows 2003 :
Optimisation de la vitesse
I. Prambule
Ce document est fourni titre purement informatif et n'est pas contractuel.
Ces informations sont vrifies la date de rdaction de ce document. En raison de lvolution
permanente des logiciels, aussi bien de PC SOFT que de Microsoft, ces informations peuvent voluer
tout moment.
II. Introduction
La vitesse d'accs des donnes en rseau dpend d'un trs grand nombre de facteurs (repris dans la
partie : "Rseau : De multiples paramtres"). Le facteur le plus important est bien sr le poste serveur et
surtout son systme d'exploitation. Il faut donc s'assurer que le systme d'exploitation du serveur est bien
jour.
Certains utilisateurs de WinDev 7 constatent que lutilisation de Hyper File 7 sur un serveur Windows
produit des performances diffrentes par rapport dautres serveurs. Ce document explique les
diffrences quil est possible dobserver sur un serveur Windows, en fonction du paramtrage du serveur
et de la programmation utilise.

III. Donnes sur un serveur Windows
Afin de vrifier quun serveur Windows est jour, il faut sassurer qu'un service pack rcent est
appliqu. Soit, au 01/10/2003, le service pack 6 pour Windows NT4, le service pack 4 pour Windows
2000, et la version finale de Windows 2003.
A. Les performances constates
Voici un tableau rcapitulatif des performances constates de Hyper File 7 en mode rseau avec un
serveur Windows par rapport Hyper File 7 avec une autre type de serveur :

Hyper File 7 Serveur Windows Autre serveur (Novell, Linux...)
Mono utilisateur

Mcanisme spcifique du systme qui
effectue une optimisation supplmentaire
Performances optimales de
Hyper File 7
Multi-utilisateur
en lecture
Mcanisme spcifique du systme qui
effectue une optimisation supplmentaire
Performances optimales de
Hyper File 7
Multi-utilisateur
en criture/blocage
Performances optimales de
Hyper File 7
Performances optimales de
Hyper File 7

Note aux utilisateurs de Hyper File 5 :
La version 7 de Hyper File est dans tous les cas plus rapide que la version 5.5 de Hyper File.
PC SOFT le 14/10/2003
2/6
B. Explication rsume du mcanisme de verrou opportuniste de
Windows
Le systme de gestion des fichiers des serveurs Windows varie en fonction des accs aux fichiers. Un
mcanisme important des serveurs Windows est le "verrou opportuniste" (ou "opportunistic Locking").
Ce mcanisme est propre aux serveurs Windows et est totalement indpendant de WinDev et de Hyper
File. Depuis Windows NT 4, service Pack 5, ce mcanisme de verrou opportuniste fonctionne
obligatoirement pour les serveurs Windows.
Voici une rapide explication du "verrou opportuniste" travers un exemple :

Un poste client ouvre un fichier prsent sur un serveur Windows. Le mcanisme du verrou opportuniste
de Windows rapatrie tout ou partie du fichier dans le cache local du poste client. Les accs suivants au
fichier nutilisent plus du tout le rseau, mais utilisent le cache local sur le poste client. Les accs sont
donc plus rapides, par contre les donnes du cache pourraient tre diffrentes de celles du serveur.
N postes clients peuvent faire cette manipulation, le mcanisme est identique : chaque poste client
rapatrie tout ou partie du fichier en local.
Si un poste client crit (ou bloque) dans ce mme fichier, le serveur prvient tous les clients de
dsactiver leurs caches locaux afin dassurer lintgrit des donnes. Les prochains accs au fichier par
les postes clients seffectuent via le rseau. La vitesse daccs devient celle du rseau (plus lent). Les
verrous opportunistes sont ractivs uniquement si toutes les applications qui utilisent le fichier
referment ce fichier.

Le mcanisme de verrou opportuniste de Windows ne permet donc doptimiser que les accs
rseau en mode client unique ou en mode clients multiples mais en lecture seule .

Il est important de comprendre que laccs nest pas plus lent en mode multi utilisateur , mais que
cest laccs en mode mono utilisateur qui est optimis par les serveurs Windows rcent !

Il est tout fait normal de constater des diffrences de performances ds la 2 connexion en mode
modification. Notez que les performances, pour un rseau correctement dimensionn, seront identiques
pour 2 ou 50 postes !
Les performances sont alors similaires aux rseaux utilisant dautres logiciels serveurs : Linux, Novell
Cest le mcanisme de gestion du verrou opportuniste de Windows qui implique cela.

Note : le test professionnel des performances dune application multi utilisateur seffectuera bien
entendu en mode multi utilisateur sur des donnes relles. On comprend aisment quun test mono
utilisateur produira des performances optimises mais qui ne correspondent aucune ralit. Le type
daccs en mode mono utilisateur peut masquer des erreurs de conception de lapplication.
(voir plus loin dans ce document).
IV. Quelques conseils pour acclrer les applications
A. Les versions des systmes d'exploitation des postes clients
Les postes clients doivent imprativement tre dots d'une version de Windows approprie.

Windows 95 : Une version B doit au moins tre installe. Une version C est conseille. Il est galement
conseill de vrifier la version "vRedir" : Vredir.vxd version 4.00.1116 du 9/11/97 11:16a,
Vnetsup.vxd 4.00.1112 du 5/30/97 11:12a. Voir article Microsoft : Q174371 : Possible Database File
Damage When Data Is Appended
Windows 98 : Seconde Edition (SE) ncessaire
Windows Millenium : Service Pack 1 ncessaire
PC SOFT le 14/10/2003
3/6
Windows NT4 : Service Pack 6 ncessaire
Windows 2000 : Service Pack 4 ncessaire
Windows XP : Service Pack 1 ncessaire

Note : Pour connatre la version de Windows et le service pack install sur un poste, dans le menu
"Dmarrer..Excuter" de Windows, tapez "winver".

B. Vrification rgulire du rseau
La vrification du rseau (et surtout du serveur) est indispensable lors de la mise en place de
l'application. Il ne faut toutefois pas ngliger des vrifications rgulires suites aux modifications du
rseau (ajout de postes, changement de cbles, .).
N'hsitez pas faire intervenir un spcialiste du rseau ou du systme utilis afin qu'il vrifie votre
configuration.

C. Consultez la "Knowledge Base" Microsoft
De nombreux phnomnes qui ont une influence sur les performances sont lis au systme
d'exploitation. Etant donn que les applications WinDev fonctionnent sous Windows, il est important de
connatre les phnomnes publis par son diteur.
Microsoft met disposition sur son site Internet une base de connaissance avec des articles techniques
sur les phnomnes connus. ("http://support.microsoft.com/support/search" Attention pas de "www")

D. Attention aux crans de veille
Nactivez pas d'crans de veille sur les serveurs. Certains crans de veille consomment pratiquement
100% des ressources du serveur lorsqu'ils sont actifs, et rendent le serveur quasiment inoprant pour les
oprations pour lesquelles il est prvu.

E. Attention aux Antivirus
Les anti-virus sont une cause importante de ralentissement des accs aux fichiers. En cas d'utilisation
d'un anti-virus, il faut demander exclure de la vrification les fichiers avec .FIC, .NDX et .MMO
comme extension. Si des ralentissements sont constats alors quun anti-virus est actif, dsactivez
temporairement cet anti-virus et vrifiez nouveau les performances. Attention de bien vrifier l'anti-
virus du serveur, mais aussi de chacun des postes clients. Un anti-virus sur un seul poste peut diminuer
les performances de tout le rseau.
ATTENTION : Si un anti-virus est dsactiv, il doit tre ractiv aprs les tests et aprs avoir vrifi
et/ou modifi ses paramtres.

F. Vrification des applications, cas derreurs constates
Une application qui est destine fonctionner en rseau doit tre teste en rseau dans des conditions
similaires son utilisation relle (avec des accs concurrentiels et des fichiers de taille relle).
Les performances dun code qui sexcute en local ou en rseau "mono utilisateur", peuvent tre
totalement diffrentes en utilisation relle sur rseau multi-utilisateurs.

Voici une liste non exhaustive derreurs souvent trouves dans des applications existantes. Tous ces cas
sont issus dune exprience relle et ont t constats.
PC SOFT le 14/10/2003
4/6
1 - 90% des cas de lenteurs sont dus des cls inadaptes aux traitements :
Rsolution : Dfinir sous lanalyse les cls adaptes

Dans vos applications, vrifiez les critres des filtres, vues et requtes. Afin d'obtenir de bonnes
performances en excution, les fichiers doivent avoir les cls et cls composes adaptes. Les cls
ncessaires pour obtenir de bonnes performances sont fonctions des conditions des tris. Un examen de
lanalyse, des filtres, vues et requtes doit tre fait pour dterminer les meilleurs cls.
Il est difficile de spcifier le gain de performance, car les situations peuvent tre trs diffrentes. Ce gain
peut varier d'un temps de traitement acclr de 10% jusqu' des temps de traitements diviss par 100
voire plus.

Attention : si le test de performance dune application multi utilisateur est effectu en mode mono
utilisateur, les rsultats du test sont videmment irralistes. Bien videmment une application doit tre
teste dans sa configuration dutilisation.
2 - Les fichiers ne sont pas "optimiss"
Rsolution : Lancer WDOptimiseur, ou prvoir un traitement dans lapplication (HCalculeStat)

Des fichiers pour lesquels les calculs de statistiques (ou re-indexation) ont t effectus rcemment
seront automatiquement plus performants. Cette opration ne ncessite aucun changement dans
l'application. Mais des oprations de maintenance rgulires sont impratives si vous dsirez conserver
des accs rapides une base de donnes. Pour optimiser laccs aux fichiers, utilisez l'outil
WDOptimiseur fournit en standard avec WinDev, ou une des fonctions HCalculeStat, HReindex.
3 - Utilisation abusive de HCreationSiInexistant
Rsolution : Ne pas utiliser HCreationSiInexistant lorsque ce nest pas ncessaire, et utiliser le
paramtre "hOuvertureDiffre" lorsque que HCreationSiInexistant est ncessaire

Il est frquent de retrouver dans des applications une instruction HCrationSiInexistant("*") ou une srie
de HCrationSiInexistant() dans le code d'initialisation du projet. Cette fonction effectue un grand
nombre de vrifications et de recherches, et utilise donc du temps machine. Pour viter ce temps, vous
pouvez demander un contrle diffr en utilisant le paramtre "hOuvertureDiffre" avec la fonction
HCrationSiInexistant. Mieux encore, vous pouvez utiliser cette instruction que pour les fichiers
susceptibles d'tre supprims ou recrs. Ce changement peut faire gagner plusieurs dizaines de
secondes au lancement dune application si elle manipule un grand nombre de fichiers.
4 - Initialisations sans raison ou mal places
Rsolution : Supprimer les initialisations inutiles, ou les dplacer lendroit appropri.

Lorsque vous initialisez des fentres qui contiennent plusieurs plans ou plusieurs onglets, n'initialisez
pas tous les plans et les onglets ds l'ouverture de la fentre. N'excutez les vues et requtes des autres
plans qu'au moment o l'utilisateur y accde.
Par contre utilisez HOptimiseRequte( ) ds le code d'ouverture de la fentre pour que l'excution
ultrieure de ces requtes soit encore plus rapide.

5 - Sources de donnes dynamiques (non dfinies sous lditeur de requtes ou danalyse) mal dfinies
Rsolution : Utiliser le type "Source de donnes" pour chaque source de donnes dynamique.

Lors de la cration de vues par HCreVue, ou de requtes par HExcuteRequteSQL(), il faut indiquer
un nom. Ce nom permet ensuite de manipuler la source de donnes (vue ou requte) comme un fichier.
PC SOFT le 14/10/2003
5/6
Pour rcuprer le contenu des rubriques, il suffit de faire NomVue.NomRubrique ou
NomRequete.NomRubrique.
Sous l'diteur de code NomVue (ou NomRubrique) nest pas reconnu. Pour que le compilateur du W-
Langage reconnaisse vos vues et requtes il est ncessaire de les dclarer. Nous vous conseillons
d'utiliser le type de variable "source de donnes" pour les dclarer (cf. documentation).

6 - Utilisation dindirection sur rubrique, sans en prciser le type
Rsolution : Prciser le type de lindirection

En WinDev 7, il est possible d'utiliser l'indirection (les accolades { } ) pour construire dynamiquement
un nom rubrique (ou de variable...). Les indirections permettent de crer des codes gnriques, mais ces
codes sont un peu plus lents. Ainsi un code qui fait des lectures, modifications ou ajouts et qui utilise
l'indirection peut tre plus lent dans la rsolution des indirections que dans les oprations relles sur les
fichiers Hyper File. Afin d'acclrer les traitements qui utilisent l'indirection, il est possible de spcifier
le type d'indirection. Exemple :
{NomFichier+"."+NomRubrique,indRubrique}=5

7 Les autres cas
Rsolution : Rechercher l'origine de la lenteur, et adapter le code ou l'analyse.

Il existe dautres types derreur ne pas commettre (parcours ou initialisations inutilement multiples),
ou dautres types doptimisation possible (sur un rseau lent, utilisation des fonctionnalits de l'accs
distant Hyper File (RPC) par exemple. Chaque cas est un cas particulier, mais la rgle gnrale est que
lorsquune lenteur est dtecte, celle-ci peut tre limine en recherchant lorigine.

G. PC SOFT peut vous aider optimiser
Si vous dsirez que PC SOFT tudie une application et son code source, 2 solutions sont envisageables :
- Souscription d'un contrat Assistance Directe (dtail & tarif disponibles sur
http://www.pcsoft.fr/ad/index.html)
- Intervention sur site dun ingnieur spcialis de PC SOFT.
N'hsitez pas contacter le service commercial de PC SOFT afin de recevoir une proposition
commerciale.
Notez toutefois que les interventions de PC SOFT ne concernent que les logiciels dits par PC SOFT,
et que nos ingnieurs ninterviennent pas dans les configurations rseau ou paramtrages de Windows
par exemple (mme si leur exprience leur permet souvent de donner des conseils pertinents dans le
domaine de l'utilisation d'un rseau donn).

V. Paramtrage d'un rseau
A. De multiples paramtres

Un rseau est constitu d'un grand nombre d'lments, et chacun de ces lments peut tre l'origine de
ralentissement ou d'un dysfonctionnement du rseau. Exemples :
- 2 cartes TCP/IP avec la mme adresse,
- Pilote de carte vido entrant en conflit,
- Pilote d'imprimante entrant en conflit,
- Type et vitesse du disque dur,
PC SOFT le 14/10/2003
6/6
- Serveur de rseau prsentant des bugs (voir sur le site de l'diteur la prsence de service pack
installer),
- Les performances d'un rseau 100 mgas bits peuvent tre totalement effondres par une simple carte
d'un PC 10 mgabits,
- La prsence de perturbations lectromagntiques proximit des cbles (machine outil, transformateur,
aimant, ...)
- etc.
Chaque serveur rseau a des incompatibilits (cartes rseau, versions de Windows, imprimantes ...),
vrifiez-les rgulirement sur le site de l'diteur de votre serveur.

En cas de doutes, faites appel une socit spcialise, agre par l'diteur de votre serveur de rseau.
Un rseau ne s'installe pas comme un PC isol, cela demande des comptences particulires.

B. Cas frquent des cartes rseau
Certaines cartes rseau sont beaucoup plus performantes que dautres cartes, il est donc important de
vrifier les cartes rseau installes.
Par ailleurs les cartes rseau utilisent des drivers pour lesquels des mises jour importantes peuvent
exister. Consultez le site de leurs constructeurs.
Un pilote trop ancien peut tre l'origine de ralentissement important (frquemment un facteur 2).

Exemple des cartes 3 COM 3C590
Article Microsoft Q139731 : Network Errors Using 3COM 3C590 NIC In Windows NT

VI. Moteur Hyper File en technologie "Client/Serveur"

Afin de s'affranchir de certaines contraintes lies l'installation du rseau, nous vous rappelons qu'un
moteur Hyper File Client/Serveur pour Windows et pour Linux est annonc pour 2004. Ce moteur
Client/Serveur utilisera (entre autre) de nombreuses nouvelles optimisations pour obtenir des rsultats
toujours plus rapides, dans toutes les situations.